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

changelog and comments

parent f5a5f1f1
No related branches found
No related tags found
No related merge requests found
...@@ -7,6 +7,7 @@ Coq development, but not every API-breaking change is listed. Changes marked ...@@ -7,6 +7,7 @@ Coq development, but not every API-breaking change is listed. Changes marked
Changes in and extensions of the theory: Changes in and extensions of the theory:
* [#] Add new modality: ■ ("plainly").
* [#] Camera morphisms have to be homomorphisms, not just monotone functions. * [#] Camera morphisms have to be homomorphisms, not just monotone functions.
* [#] A proof that `f` has a fixed point if `f^k` is contractive. * [#] A proof that `f` has a fixed point if `f^k` is contractive.
* Constructions for least and greatest fixed points over monotone predicates * Constructions for least and greatest fixed points over monotone predicates
......
...@@ -97,6 +97,9 @@ Definition uPred_wand {M} := unseal uPred_wand_aux M. ...@@ -97,6 +97,9 @@ Definition uPred_wand {M} := unseal uPred_wand_aux M.
Definition uPred_wand_eq : Definition uPred_wand_eq :
@uPred_wand = @uPred_wand_def := seal_eq uPred_wand_aux. @uPred_wand = @uPred_wand_def := seal_eq uPred_wand_aux.
(* Equivalently, this could be `∀ y, P n y`. That's closer to the intuition
of "embedding the step-indexed logic in Iris", but the two are equivalent
because Iris is afine. The following is easier to work with. *)
Program Definition uPred_plainly_def {M} (P : uPred M) : uPred M := Program Definition uPred_plainly_def {M} (P : uPred M) : uPred M :=
{| uPred_holds n x := P n ε |}. {| uPred_holds n x := P n ε |}.
Solve Obligations with naive_solver eauto using uPred_closed, ucmra_unit_validN. Solve Obligations with naive_solver eauto using uPred_closed, ucmra_unit_validN.
...@@ -480,6 +483,8 @@ Proof. ...@@ -480,6 +483,8 @@ Proof.
by rewrite cmra_core_l cmra_core_idemp. by rewrite cmra_core_l cmra_core_idemp.
Qed. Qed.
(* The following two laws are very similar, and indeed they hold not just for □
and ■, but for any modality defined as `M P n x := ∀ y, R x y → P n y`. *)
Lemma persistently_impl_plainly P Q : ( P Q) ( P Q). Lemma persistently_impl_plainly P Q : ( P Q) ( P Q).
Proof. Proof.
unseal; split=> /= n x ? HPQ n' x' ????. unseal; split=> /= n x ? HPQ n' x' ????.
......
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