Commit 1f53f0a4 authored by Ralf Jung's avatar Ralf Jung

some more playing around with the proof mode.

parent 0243cbd4
Pipeline #486 failed with stage
...@@ -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 Φ :
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment