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

some more playing around with the proof mode.

parent 0243cbd4
Branches
Tags
No related merge requests found
...@@ -2,6 +2,7 @@ From iris.program_logic Require Export ectx_weakestpre. ...@@ -2,6 +2,7 @@ From iris.program_logic Require Export ectx_weakestpre.
From iris.program_logic Require Import ownership. (* for ownP *) From iris.program_logic Require Import ownership. (* for ownP *)
From iris.heap_lang Require Export lang. From iris.heap_lang Require Export lang.
From iris.heap_lang Require Import tactics. From iris.heap_lang Require Import tactics.
From iris.proofmode Require Import weakestpre.
Import uPred. Import uPred.
Local Hint Extern 0 (head_reducible _ _) => do_head_step eauto 2. Local Hint Extern 0 (head_reducible _ _) => do_head_step eauto 2.
...@@ -32,14 +33,16 @@ Proof. ...@@ -32,14 +33,16 @@ Proof.
ef = None e' = Loc l σ' = <[l:=v]>σ σ !! l = None). ef = None e' = Loc l σ' = <[l:=v]>σ σ !! l = None).
rewrite -(wp_lift_atomic_head_step (Alloc e) φ σ) // /φ; rewrite -(wp_lift_atomic_head_step (Alloc e) φ σ) // /φ;
last (by intros; inv_head_step; eauto 8); last (by simpl; eauto). last (by intros; inv_head_step; eauto 8); last (by simpl; eauto).
apply sep_mono, later_mono; first done. iIntros "[HP HΦ]". iFrame "HP". iNext.
apply forall_intro=>v2; apply forall_intro=>σ2; apply forall_intro=>ef. iIntros {v2 σ2 ef} "[% HP]".
apply wand_intro_l. (* FIXME: I should not have to refer to "H0". *)
rewrite always_and_sep_l -assoc -always_and_sep_l. destruct H0 as (l & -> & ? & -> & ?).
apply const_elim_l=>-[l [-> [Hl [-> ?]]]]. rewrite -(of_to_val (Loc l) (LocV l)) // in H0.
rewrite (forall_elim l) right_id const_equiv // left_id wand_elim_r. apply of_val_inj in H0 as ->.
rewrite -(of_to_val (Loc l) (LocV l)) // in Hl. simpl. iSplitL; last done.
by apply of_val_inj in Hl as ->. (* FIXME: I should be able to do [iSpecialize "HΦ" l]. *)
(* FIXME: I should be able to do [iApply "HΦ" l]. *)
iApply "HΦ". iSplit; done.
Qed. Qed.
Lemma wp_load_pst E σ l v Φ : Lemma wp_load_pst E σ l v Φ :
......
...@@ -115,7 +115,7 @@ Proof. ...@@ -115,7 +115,7 @@ Proof.
- iPvs "Hvs1" "HR" as "HR"; first by set_solver. - iPvs "Hvs1" "HR" as "HR"; first by set_solver.
iPvsIntro. iNext. iPvs "Hvs2" "HR" as "HR"; first by set_solver. iPvsIntro. iNext. iPvs "Hvs2" "HR" as "HR"; first by set_solver.
iPvsIntro. iApply "HR". iPvsIntro. iApply "HR".
- iApply "Hwp". done. - iApply "Hwp" "HP".
Qed. Qed.
Lemma ht_frame_step_r E E1 E2 P R1 R2 R3 e Φ : Lemma ht_frame_step_r E E1 E2 P R1 R2 R3 e Φ :
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment