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

update comments concerning the BI interface

parent 186ffb07
No related branches found
No related tags found
No related merge requests found
...@@ -496,7 +496,7 @@ Proof. ...@@ -496,7 +496,7 @@ Proof.
intros P Q. move: (uPred_persistently P)=> P'. intros P Q. move: (uPred_persistently P)=> P'.
unseal; split; intros n x ? (x1&x2&?&?&_); ofe_subst; unseal; split; intros n x ? (x1&x2&?&?&_); ofe_subst;
eauto using uPred_mono, cmra_includedN_l. eauto using uPred_mono, cmra_includedN_l.
- (* bi_persistently P ∧ Q ⊢ (emp ∧ P) ∗ Q *) - (* bi_persistently P ∧ Q ⊢ P ∗ Q *)
intros P Q. unseal; split=> n x ? [??]; simpl in *. intros P Q. unseal; split=> n x ? [??]; simpl in *.
exists (core x), x; rewrite ?cmra_core_l; auto. exists (core x), x; rewrite ?cmra_core_l; auto.
Qed. Qed.
......
...@@ -49,8 +49,9 @@ Section bi_mixin. ...@@ -49,8 +49,9 @@ Section bi_mixin.
model satisfying all these axioms. For this model, we extend RAs with an model satisfying all these axioms. For this model, we extend RAs with an
arbitrary partial order, and up-close resources wrt. that order (instead of arbitrary partial order, and up-close resources wrt. that order (instead of
extension order). We demand composition to be monotone wrt. the order: [x1 ≼ extension order). We demand composition to be monotone wrt. the order: [x1 ≼
x2 → x1 ⋅ y ≼ x2 ⋅ y]. We define [emp := λ r, ε ≼ r]; persisently is still x2 → x1 ⋅ y ≼ x2 ⋅ y]. We define [emp := λ r, ε ≼ r]; persistently is still
defined with the core: [□ P := λ r, P (core r)]. *) defined with the core: [persistently P := λ r, P (core r)]. This is uplcosed
because the core is monotone. *)
Record BiMixin := { Record BiMixin := {
bi_mixin_entails_po : PreOrder bi_entails; bi_mixin_entails_po : PreOrder bi_entails;
...@@ -110,9 +111,9 @@ Section bi_mixin. ...@@ -110,9 +111,9 @@ Section bi_mixin.
bi_mixin_plainly_forall_2 {A} (Ψ : A PROP) : bi_mixin_plainly_forall_2 {A} (Ψ : A PROP) :
( a, bi_plainly (Ψ a)) bi_plainly ( a, Ψ a); ( a, bi_plainly (Ψ a)) bi_plainly ( a, Ψ a);
(* The following two laws are very similar, and indeed they hold (* The following two laws are very similar, and indeed they hold not just
not just for □ and ■, but for any modality defined as for persistently and plainly, but for any modality defined as `M P n x :=
`M P n x := ∀ y, R x y → P n y`. *) ∀ y, R x y → P n y`. *)
bi_mixin_persistently_impl_plainly P Q : bi_mixin_persistently_impl_plainly P Q :
(bi_plainly P bi_persistently Q) bi_persistently (bi_plainly P Q); (bi_plainly P bi_persistently Q) bi_persistently (bi_plainly P Q);
bi_mixin_plainly_impl_plainly P Q : bi_mixin_plainly_impl_plainly P Q :
...@@ -122,7 +123,7 @@ Section bi_mixin. ...@@ -122,7 +123,7 @@ Section bi_mixin.
bi_mixin_plainly_absorbing P Q : bi_plainly P Q bi_plainly P; bi_mixin_plainly_absorbing P Q : bi_plainly P Q bi_plainly P;
(* Persistently *) (* Persistently *)
(* In the ordered RA model: `core` is monotone *) (* In the ordered RA model: Holds without further assumptions. *)
bi_mixin_persistently_mono P Q : bi_mixin_persistently_mono P Q :
(P Q) bi_persistently P bi_persistently Q; (P Q) bi_persistently P bi_persistently Q;
(* In the ordered RA model: `core` is idempotent *) (* In the ordered RA model: `core` is idempotent *)
...@@ -131,15 +132,16 @@ Section bi_mixin. ...@@ -131,15 +132,16 @@ Section bi_mixin.
bi_mixin_plainly_persistently_1 P : bi_mixin_plainly_persistently_1 P :
bi_plainly (bi_persistently P) bi_plainly P; bi_plainly (bi_persistently P) bi_plainly P;
(* In the ordered RA model [P ⊢ emp] (which can currently still be derived (* In the ordered RA model [P ⊢ persisently emp] (which can currently still
from the plainly axioms, which will be removed): `ε ≼ core x` *) be derived from the plainly axioms, which will be removed): `ε ≼ core x` *)
bi_mixin_persistently_forall_2 {A} (Ψ : A PROP) : bi_mixin_persistently_forall_2 {A} (Ψ : A PROP) :
( a, bi_persistently (Ψ a)) bi_persistently ( a, Ψ a); ( a, bi_persistently (Ψ a)) bi_persistently ( a, Ψ a);
bi_mixin_persistently_exist_1 {A} (Ψ : A PROP) : bi_mixin_persistently_exist_1 {A} (Ψ : A PROP) :
bi_persistently ( a, Ψ a) a, bi_persistently (Ψ a); bi_persistently ( a, Ψ a) a, bi_persistently (Ψ a);
(* In the ordered RA model: [x ≼ₑₓₜ y → core x ≼ core y] *) (* In the ordered RA model: [core x ≼ core (x ⋅ y)].
Note that this implies that the core is monotone. *)
bi_mixin_persistently_absorbing P Q : bi_mixin_persistently_absorbing P Q :
bi_persistently P Q bi_persistently P; bi_persistently P Q bi_persistently P;
(* In the ordered RA model: [x ⋅ core x = core x]. *) (* In the ordered RA model: [x ⋅ core x = core 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