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

Remove useless notion ValidTimeless.

parent b853c0af
No related branches found
No related tags found
No related merge requests found
...@@ -134,14 +134,6 @@ Proof. ...@@ -134,14 +134,6 @@ Proof.
split; simpl; [apply ra_empty_valid|]. split; simpl; [apply ra_empty_valid|].
by intros x; constructor; simpl; rewrite (left_id _ _). by intros x; constructor; simpl; rewrite (left_id _ _).
Qed. Qed.
Global Instance auth_frag_valid_timeless (x : A) :
ValidTimeless x ValidTimeless ( x).
Proof. by intros ??; apply (valid_timeless x). Qed.
Global Instance auth_valid_timeless `{Empty A, !RAIdentity A} (x : A) :
ValidTimeless x ValidTimeless ( x).
Proof.
by intros ? [??]; split; [apply ra_empty_least|apply (valid_timeless x)].
Qed.
Lemma auth_frag_op (a b : A) : (a b) a b. Lemma auth_frag_op (a b : A) : (a b) a b.
Proof. done. Qed. Proof. done. Qed.
Lemma auth_includedN' n (x y : authC A) : Lemma auth_includedN' n (x y : authC A) :
......
...@@ -116,13 +116,6 @@ Definition cmra_update {A : cmraT} (x y : A) := ∀ z n, ...@@ -116,13 +116,6 @@ Definition cmra_update {A : cmraT} (x y : A) := ∀ z n,
Infix "⇝" := cmra_update (at level 70). Infix "⇝" := cmra_update (at level 70).
Instance: Params (@cmra_update) 3. Instance: Params (@cmra_update) 3.
(** Timeless validity *)
(* Not sure whether this is useful, see the rule [uPred_valid_elim_timeless]
in logic.v *)
Class ValidTimeless {A : cmraT} (x : A) :=
valid_timeless : validN 1 x valid x.
Arguments valid_timeless {_} _ {_} _.
(** Properties **) (** Properties **)
Section cmra. Section cmra.
Context {A : cmraT}. Context {A : cmraT}.
...@@ -275,8 +268,6 @@ Section discrete. ...@@ -275,8 +268,6 @@ Section discrete.
Qed. Qed.
Definition discreteRA : cmraT := Definition discreteRA : cmraT :=
CMRAT discrete_cofe_mixin discrete_cmra_mixin discrete_extend_mixin. CMRAT discrete_cofe_mixin discrete_cmra_mixin discrete_extend_mixin.
Global Instance discrete_timeless (x : A) : ValidTimeless (x : discreteRA).
Proof. by intros ?. Qed.
Lemma discrete_updateP (x : A) (P : A Prop) `{!Inhabited (sig P)} : Lemma discrete_updateP (x : A) (P : A Prop) `{!Inhabited (sig P)} :
( z, (x z) y, P y (y z)) (x : discreteRA) ⇝: P. ( z, (x z) y, P y (y z)) (x : discreteRA) ⇝: P.
Proof. Proof.
...@@ -344,9 +335,6 @@ Section prod. ...@@ -344,9 +335,6 @@ Section prod.
Qed. Qed.
Canonical Structure prodRA : cmraT := Canonical Structure prodRA : cmraT :=
CMRAT prod_cofe_mixin prod_cmra_mixin prod_cmra_extend_mixin. CMRAT prod_cofe_mixin prod_cmra_mixin prod_cmra_extend_mixin.
Instance pair_timeless (x : A) (y : B) :
ValidTimeless x ValidTimeless y ValidTimeless (x,y).
Proof. by intros ?? [??]; split; apply (valid_timeless _). Qed.
End prod. End prod.
Arguments prodRA : clear implicits. Arguments prodRA : clear implicits.
......
...@@ -127,8 +127,6 @@ Proof. ...@@ -127,8 +127,6 @@ Proof.
Qed. Qed.
Canonical Structure exclRA : cmraT := Canonical Structure exclRA : cmraT :=
CMRAT excl_cofe_mixin excl_cmra_mixin excl_cmra_extend_mixin. CMRAT excl_cofe_mixin excl_cmra_mixin excl_cmra_extend_mixin.
Global Instance excl_valid_timeless (x : excl A) : ValidTimeless x.
Proof. by destruct x; intros ?. Qed.
(* Updates *) (* Updates *)
Lemma excl_update (x : A) y : y Excl x y. Lemma excl_update (x : A) y : y Excl x y.
......
...@@ -151,25 +151,6 @@ Proof. ...@@ -151,25 +151,6 @@ Proof.
Qed. Qed.
Canonical Structure mapRA : cmraT := Canonical Structure mapRA : cmraT :=
CMRAT map_cofe_mixin map_cmra_mixin map_cmra_extend_mixin. CMRAT map_cofe_mixin map_cmra_mixin map_cmra_extend_mixin.
Global Instance map_empty_valid_timeless : ValidTimeless ( : gmap K A).
Proof. by intros ??; rewrite lookup_empty. Qed.
Global Instance map_ra_insert_valid_timeless (m : gmap K A) i x:
ValidTimeless x ValidTimeless m m !! i = None
ValidTimeless (<[i:=x]>m).
Proof.
intros ?? Hi Hm j; destruct (decide (i = j)); simplify_map_equality.
{ specialize (Hm j); simplify_map_equality. by apply (valid_timeless _). }
generalize j; clear dependent j; rapply (valid_timeless m).
intros j; destruct (decide (i = j)); simplify_map_equality;[by rewrite Hi|].
by specialize (Hm j); simplify_map_equality.
Qed.
Global Instance map_ra_singleton_valid_timeless (i : K) x :
ValidTimeless x ValidTimeless {[ i x ]}.
Proof.
intros ?; apply (map_ra_insert_valid_timeless _ _ _ _ _).
by rewrite lookup_empty.
Qed.
End cmra. End cmra.
Arguments mapRA _ {_ _} _. Arguments mapRA _ {_ _} _.
......
...@@ -706,12 +706,15 @@ Lemma own_valid (a : M) : uPred_own a ⊆ (✓ a)%I. ...@@ -706,12 +706,15 @@ Lemma own_valid (a : M) : uPred_own a ⊆ (✓ a)%I.
Proof. move => x n Hv [a' ?]; cofe_subst; eauto using cmra_valid_op_l. Qed. Proof. move => x n Hv [a' ?]; cofe_subst; eauto using cmra_valid_op_l. Qed.
Lemma valid_intro {A : cmraT} (a : A) : a True%I ( a : uPred M)%I. Lemma valid_intro {A : cmraT} (a : A) : a True%I ( a : uPred M)%I.
Proof. by intros ? x n ? _; simpl; apply cmra_valid_validN. Qed. Proof. by intros ? x n ? _; simpl; apply cmra_valid_validN. Qed.
Lemma valid_elim_timeless {A : cmraT} (a : A) : Lemma valid_elim {A : cmraT} (a : A) : ¬ {1} a ( a : uPred M)%I False%I.
ValidTimeless a ¬ a ( a : uPred M)%I False%I.
Proof. Proof.
intros ? Hvalid x [|n] ??; [done|apply Hvalid]. intros Ha x [|n] ??; [|apply Ha, cmra_valid_le with (S n)]; auto with lia.
apply (valid_timeless _), cmra_valid_le with (S n); auto with lia.
Qed. Qed.
Lemma valid_mono {A B : cmraT} (a : A) (b : B) :
( n, {n} a {n} b) ( a)%I ( b : uPred M)%I.
Proof. by intros ? x n ?; simpl; auto. Qed.
Lemma own_invalid (a : M) : ¬ {1} a uPred_own a False%I.
Proof. by intros; rewrite ->own_valid, ->valid_elim. Qed.
(* Big ops *) (* Big ops *)
Global Instance uPred_big_and_proper : Proper (() ==> ()) (@uPred_big_and M). Global Instance uPred_big_and_proper : Proper (() ==> ()) (@uPred_big_and M).
......
...@@ -142,12 +142,6 @@ Lemma option_op_positive_dist_l n x y : x ⋅ y ={n}= None → x ={n}= None. ...@@ -142,12 +142,6 @@ Lemma option_op_positive_dist_l n x y : x ⋅ y ={n}= None → x ={n}= None.
Proof. by destruct x, y; inversion_clear 1. Qed. Proof. by destruct x, y; inversion_clear 1. Qed.
Lemma option_op_positive_dist_r n x y : x y ={n}= None y ={n}= None. Lemma option_op_positive_dist_r n x y : x y ={n}= None y ={n}= None.
Proof. by destruct x, y; inversion_clear 1. Qed. Proof. by destruct x, y; inversion_clear 1. Qed.
Global Instance None_valid_timeless : ValidTimeless (@None A).
Proof. done. Qed.
Global Instance Some_valid_timeless x :
ValidTimeless x ValidTimeless (Some x).
Proof. by intros ? y; apply (valid_timeless x). Qed.
End cmra. End cmra.
Arguments optionRA : clear implicits. Arguments optionRA : clear implicits.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment