Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Tej Chajed
iris
Commits
1f53f0a4
Commit
1f53f0a4
authored
Apr 19, 2016
by
Ralf Jung
Browse files
some more playing around with the proof mode.
parent
0243cbd4
Changes
2
Hide whitespace changes
Inline
Side-by-side
heap_lang/lifting.v
View file @
1f53f0a4
...
@@ -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
Φ
:
...
...
program_logic/hoare.v
View file @
1f53f0a4
...
@@ -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
Φ
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment