File tree Expand file tree Collapse file tree 3 files changed +27
-0
lines changed Expand file tree Collapse file tree 3 files changed +27
-0
lines changed Original file line number Diff line number Diff line change 22
22
opam update
23
23
opam pin coq 8.19.1 --confirm-level=yes
24
24
opam pin coq-iris 4.2.0 --confirm-level=yes
25
+ opam pin coq-iris-heap-lang 4.2.0 --confirm-level=yes
25
26
26
27
- name : Run check
27
28
run : |
Original file line number Diff line number Diff line change @@ -45,6 +45,7 @@ src/examples/seqs.v
45
45
src/examples/main.v
46
46
src/examples/fractional.v
47
47
src/examples/counting.v
48
+ src/examples/heap_lang_wp_load_shared.v
48
49
49
50
-arg -w -arg -argument-scope-delimiter
50
51
-arg -w -arg -notation-overridden
Original file line number Diff line number Diff line change
1
+ From iris.prelude Require Import options.
2
+ From iris.program_logic Require Export weakestpre.
3
+ From iris.heap_lang Require Export lang proofmode notation.
4
+
5
+ Require Import guarding.guard.
6
+ Require Import guarding.tactics.
7
+
8
+ (* Derivation for Heap-Read-Shared law for HeapLang. *)
9
+
10
+ Section HeapLangWpLoadShared.
11
+
12
+ Context `{!heapGS Σ}.
13
+
14
+ Lemma wp_load_shared s E F l dq v G : (F ⊆ E) →
15
+ {{{ G ∗ (G &&{F}&&> l ↦{dq} v) }}} Load (Val $ LitV $ LitLoc l) @ s; E {{{ RET v; G }}}.
16
+ Proof .
17
+ intros Hfe.
18
+ iIntros (Φ) "[G #g] HΦ".
19
+ leaf_open "g" with "G" as "[Hpt Hback]". { set_solver. }
20
+ wp_load.
21
+ iMod ("Hback" with "Hpt") as "G".
22
+ iModIntro. iApply "HΦ". iFrame "G".
23
+ Qed .
24
+
25
+ End HeapLangWpLoadShared.
You can’t perform that action at this time.
0 commit comments