Skip to content
Snippets Groups Projects
Commit 75e50f13 authored by Robbert Krebbers's avatar Robbert Krebbers
Browse files

CMRAs with identity element are inhabited.

parent bee413b8
No related branches found
No related tags found
No related merge requests found
...@@ -128,6 +128,7 @@ Class CMRAIdentity (A : cmraT) `{Empty A} : Prop := { ...@@ -128,6 +128,7 @@ Class CMRAIdentity (A : cmraT) `{Empty A} : Prop := {
cmra_empty_left_id :> LeftId () (); cmra_empty_left_id :> LeftId () ();
cmra_empty_timeless :> Timeless cmra_empty_timeless :> Timeless
}. }.
Instance cmra_identity_inhabited `{CMRAIdentity A} : Inhabited A := populate ∅.
(** * Morphisms *) (** * Morphisms *)
Class CMRAMonotone {A B : cmraT} (f : A B) := { Class CMRAMonotone {A B : cmraT} (f : A B) := {
......
...@@ -16,10 +16,6 @@ Section auth. ...@@ -16,10 +16,6 @@ Section auth.
Hypothesis auth_valid : Hypothesis auth_valid :
forall a b, ( (Auth (Excl a) b) : iProp Λ (globalC Σ)) ( b', a b b'). forall a b, ( (Auth (Excl a) b) : iProp Λ (globalC Σ)) ( b', a b b').
(* FIXME how much would break if we had a global instance from ∅ to Inhabited? *)
Local Instance auth_inhabited : Inhabited A.
Proof. split. exact ∅. Qed.
Definition auth_inv (γ : gname) : iProp Λ (globalC Σ) := Definition auth_inv (γ : gname) : iProp Λ (globalC Σ) :=
( a, own AuthI γ ( a) φ a)%I. ( a, own AuthI γ ( a) φ a)%I.
Definition auth_own (γ : gname) (a : A) : iProp Λ (globalC Σ) := own AuthI γ ( a). Definition auth_own (γ : gname) (a : A) : iProp Λ (globalC Σ) := own AuthI γ ( a).
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment