Skip to content
Snippets Groups Projects
Commit 33c3788f authored by Ralf Jung's avatar Ralf Jung
Browse files

no more wand

parent 6f629be0
No related branches found
No related tags found
No related merge requests found
...@@ -7,13 +7,13 @@ Import uPred. ...@@ -7,13 +7,13 @@ Import uPred.
the logic. *) the logic. *)
Definition uPred_mono_pred {M A} (F : (A uPred M) (A uPred M)) := Definition uPred_mono_pred {M A} (F : (A uPred M) (A uPred M)) :=
P Q, (( x, P x -∗ Q x) -∗ x, F P x -∗ F Q x)%I. P Q, (( x, P x Q x) x, F P x F Q x)%I.
Definition uPred_least_fixpoint {M A} (F : (A uPred M) (A uPred M)) (x : A) : uPred M := Definition uPred_least_fixpoint {M A} (F : (A uPred M) (A uPred M)) (x : A) : uPred M :=
( P, ( x, F P x -∗ P x) P x)%I. ( P, ( x, F P x P x) P x)%I.
Definition uPred_greatest_fixpoint {M A} (F : (A uPred M) (A uPred M)) (x : A) : uPred M := Definition uPred_greatest_fixpoint {M A} (F : (A uPred M) (A uPred M)) (x : A) : uPred M :=
( P, ( x, P x -∗ F P x) P x)%I. ( P, ( x, P x F P x) P x)%I.
Section least. Section least.
Context {M : ucmraT} {A} (F : (A uPred M) (A uPred M)) (Hmono : uPred_mono_pred F). Context {M : ucmraT} {A} (F : (A uPred M) (A uPred M)) (Hmono : uPred_mono_pred F).
...@@ -40,7 +40,7 @@ Section least. ...@@ -40,7 +40,7 @@ Section least.
Qed. Qed.
Lemma uPred_least_fixpoint_ind (P : A uPred M) : Lemma uPred_least_fixpoint_ind (P : A uPred M) :
( y, F P y -∗ P y) -∗ x, uPred_least_fixpoint F x -∗ P x. ( y, F P y P y) x, uPred_least_fixpoint F x P x.
Proof. iIntros "#HP" (x) "HF". iApply "HF". done. Qed. Proof. iIntros "#HP" (x) "HF". iApply "HF". done. Qed.
End least. End least.
...@@ -61,7 +61,7 @@ Section greatest. ...@@ -61,7 +61,7 @@ Section greatest.
Proof. Proof.
iIntros "HF". iExists (F (uPred_greatest_fixpoint F)). iIntros "HF". iExists (F (uPred_greatest_fixpoint F)).
iIntros "{$HF} !#"; iIntros (y) "Hy". iApply (Hmono with "[] Hy"). iIntros "{$HF} !#"; iIntros (y) "Hy". iApply (Hmono with "[] Hy").
iAlways. iIntros (z). by iApply greatest_fixpoint_implies_F_fix. iAlways. iIntros (z) "?". by iApply greatest_fixpoint_implies_F_fix.
Qed. Qed.
Corollary uPred_greatest_fixpoint_unfold x : Corollary uPred_greatest_fixpoint_unfold x :
...@@ -71,6 +71,6 @@ Section greatest. ...@@ -71,6 +71,6 @@ Section greatest.
Qed. Qed.
Lemma uPred_greatest_fixpoint_coind (P : A uPred M) : Lemma uPred_greatest_fixpoint_coind (P : A uPred M) :
( y, P y -∗ F P y) -∗ x, P x -∗ uPred_greatest_fixpoint F x. ( y, P y F P y) x, P x uPred_greatest_fixpoint F x.
Proof. iIntros "#HP" (x) "Hx". iExists P. by iIntros "{$Hx} !#". Qed. Proof. iIntros "#HP" (x) "Hx". iExists P. by iIntros "{$Hx} !#". Qed.
End greatest. End greatest.
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