Skip to content

Add `and_own` lemma for handling `own γ x ∧ own γ y`

tjhance requested to merge tjhance/iris:and-own-rule into master

The main purpose is to add the following result:

  Lemma and_own (γ : gname) (x y : A) :
    (own γ x  own γ y)   z , own γ z 
         Some x  Some z
         Some y  Some z.

The reason we use Some x ≼ Some z is because we need the comparison to be reflexive.

Here, the is defined to be an iProp version of the normal :

Definition uPred_cmra_included {Σ: gFunctors} {M: cmra} (a b : M) : iProp Σ :=  c , b  a  c.
Infix "≼" := uPred_cmra_included (at level 70) : bi_scope.

We also prove some corollaries of and_own, e.g., for a discrete unital camera we have:

  Lemma and_own_discrete_ucmra_specific {D : CmraDiscrete A} (γ : gname) (x y z : A) :
    ( w ,  w  x  w  y  w  z  w) 
    (own γ x  own γ y)  own γ z.

  Lemma and_own_discrete_ucmra_contradiction {D : CmraDiscrete A} (γ : gname) (x y : A) :
    ( w ,  w  x  w  y  w  False) 
    (own γ x  own γ y)  False.

All the new code is in own.v; I think the new should probably go somewhere else but I wasn't quite sure where.

Merge request reports