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

Add variant of mapsto_mapsto_ne that does not require further fraction reasoning

parent af752fbe
No related branches found
No related tags found
No related merge requests found
...@@ -130,6 +130,8 @@ With this release, we dropped support for Coq 8.9. ...@@ -130,6 +130,8 @@ With this release, we dropped support for Coq 8.9.
`⌜✓ (q1 + q2)%Qp ∧ v1 = v2⌝`. `⌜✓ (q1 + q2)%Qp ∧ v1 = v2⌝`.
* Change `gen_heap_init` to also return ownership of the points-to facts for the * Change `gen_heap_init` to also return ownership of the points-to facts for the
initial heap. initial heap.
* Rename `mapsto_mapsto_ne` to `mapsto_frac_ne`, and add a simpler
`mapsto_ne` that does not require reasoning about fractions.
**Changes in `program_logic`:** **Changes in `program_logic`:**
...@@ -159,6 +161,8 @@ s/\bauth_both_frac_valid\b/auth_both_frac_valid_discrete/g ...@@ -159,6 +161,8 @@ s/\bauth_both_frac_valid\b/auth_both_frac_valid_discrete/g
# gen_heap_ctx and proph_map_ctx # gen_heap_ctx and proph_map_ctx
s/\bgen_heap_ctx\b/gen_heap_interp/g s/\bgen_heap_ctx\b/gen_heap_interp/g
s/\bproph_map_ctx\b/proph_map_interp/g s/\bproph_map_ctx\b/proph_map_interp/g
# other gen_heap changes
s/\bmapsto_mapsto_ne\b/mapsto_frac_ne/g
EOF EOF
``` ```
......
...@@ -172,12 +172,14 @@ Section gen_heap. ...@@ -172,12 +172,14 @@ Section gen_heap.
iCombine "Hl1 Hl2" as "Hl". eauto with iFrame. iCombine "Hl1 Hl2" as "Hl". eauto with iFrame.
Qed. Qed.
Lemma mapsto_mapsto_ne l1 l2 q1 q2 v1 v2 : Lemma mapsto_frac_ne l1 l2 q1 q2 v1 v2 :
¬ (q1 + q2 1)%Qp l1 {q1} v1 -∗ l2 {q2} v2 -∗ l1 l2⌝. ¬ (q1 + q2 1)%Qp l1 {q1} v1 -∗ l2 {q2} v2 -∗ l1 l2⌝.
Proof. Proof.
iIntros (?) "Hl1 Hl2"; iIntros (->). iIntros (?) "Hl1 Hl2"; iIntros (->).
by iDestruct (mapsto_valid_2 with "Hl1 Hl2") as %[??]. by iDestruct (mapsto_valid_2 with "Hl1 Hl2") as %[??].
Qed. Qed.
Lemma mapsto_ne l1 l2 q2 v1 v2 : l1 v1 -∗ l2 {q2} v2 -∗ l1 l2⌝.
Proof. apply mapsto_frac_ne, Qp_not_add_le_l. Qed.
(** General properties of [meta] and [meta_token] *) (** General properties of [meta] and [meta_token] *)
Global Instance meta_token_timeless l N : Timeless (meta_token l N). Global Instance meta_token_timeless l N : Timeless (meta_token l N).
......
...@@ -294,9 +294,11 @@ Proof. ...@@ -294,9 +294,11 @@ Proof.
iCombine "Hl1 Hl2" as "Hl". eauto with iFrame. iCombine "Hl1 Hl2" as "Hl". eauto with iFrame.
Qed. Qed.
Lemma mapsto_mapsto_ne l1 l2 q1 q2 v1 v2 : Lemma mapsto_frac_ne l1 l2 q1 q2 v1 v2 :
¬ (q1 + q2 1)%Qp l1 {q1} v1 -∗ l2 {q2} v2 -∗ l1 l2⌝. ¬ (q1 + q2 1)%Qp l1 {q1} v1 -∗ l2 {q2} v2 -∗ l1 l2⌝.
Proof. apply mapsto_mapsto_ne. Qed. Proof. apply mapsto_frac_ne. Qed.
Lemma mapsto_ne l1 l2 q2 v1 v2 : l1 v1 -∗ l2 {q2} v2 -∗ l1 l2⌝.
Proof. apply mapsto_ne. Qed.
Global Instance inv_mapsto_own_proper l v : Global Instance inv_mapsto_own_proper l v :
Proper (pointwise_relation _ iff ==> ()) (inv_mapsto_own l v). Proper (pointwise_relation _ iff ==> ()) (inv_mapsto_own l v).
......
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