Commit 8b4c7038 by Robbert Krebbers

### Misc logic.v stuff.

parent edff0fe3
 ... ... @@ -164,9 +164,6 @@ Program Definition uPred_valid {M : cmraT} (a : M) : uPred M := {| uPred_holds n x := validN n a |}. Solve Obligations with naive_solver eauto 2 using cmra_valid_le. Definition uPred_fixpoint {M} (P : uPred M → uPred M) `{!Contractive P} : uPred M := fixpoint P (uPred_const True). Delimit Scope uPred_scope with I. Bind Scope uPred_scope with uPred. Arguments uPred_holds {_} _%I _ _. ... ... @@ -184,6 +181,7 @@ Notation "∃ x .. y , P" := (uPred_exist (λ x, .. (uPred_exist (λ y, P)) ..)) : uPred_scope. Notation "▷ P" := (uPred_later P) (at level 20) : uPred_scope. Notation "□ P" := (uPred_always P) (at level 20) : uPred_scope. Infix "≡" := uPred_eq : uPred_scope. Section logic. Context {M : cmraT}. ... ... @@ -197,6 +195,13 @@ Proof. * intros HPQ; split; intros x i; apply HPQ. * by intros [HPQ HQP]; intros x i ?; split; [apply HPQ|apply HQP]. Qed. Global Instance uPred_entails_proper : Proper ((≡) ==> (≡) ==> iff) ((⊆) : relation (uPred M)). Proof. intros P1 P2 HP Q1 Q2 HQ; rewrite uPred_equiv_spec in HP, HQ; split; intros. * by rewrite (proj2 HP), <-(proj1 HQ). * by rewrite (proj1 HP), <-(proj2 HQ). Qed. (** Non-expansiveness *) Global Instance uPred_const_proper : Proper (iff ==> (≡)) (@uPred_const M). ... ... @@ -285,6 +290,8 @@ Global Instance uPred_own_proper : Proper ((≡) ==> (≡)) (@uPred_own M) := ne_proper _. (** Introduction and elimination rules *) Lemma uPred_const_intro P (Q : Prop) : Q → P ⊆ uPred_const Q. Proof. by intros ???. Qed. Lemma uPred_True_intro P : P ⊆ True%I. Proof. done. Qed. Lemma uPred_False_elim P : False%I ⊆ P. ... ... @@ -457,9 +464,4 @@ Lemma uPred_own_valid (a : M) : uPred_own a ⊆ uPred_valid a. Proof. intros x n Hv [a' Hx]; simpl; rewrite Hx in Hv; eauto using cmra_valid_op_l. Qed. (* Fix *) Lemma uPred_fixpoint_unfold (P : uPred M → uPred M) `{!Contractive P} : uPred_fixpoint P ≡ P (uPred_fixpoint P). Proof. apply fixpoint_unfold. Qed. End logic.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!