Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Dan Frumin
iris-coq
Commits
d80e20a8
Commit
d80e20a8
authored
Feb 17, 2016
by
Robbert Krebbers
Browse files
Make wp_strip_later work under separating conjunctions.
parent
d8530574
Changes
1
Hide whitespace changes
Inline
Side-by-side
heap_lang/wp_tactics.v
View file @
d80e20a8
From
heap_lang
Require
Export
tactics
substitution
.
Import
uPred
.
Ltac
wp_strip_later
:=
match
goal
with
|
|-
∀
_
,
_
=>
let
H
:=
fresh
in
intro
H
;
wp_strip_later
;
revert
H
|
|-
_
⊑
▷
_
=>
etransitivity
;
[
|
solve
[
apply
later_intro
]
]
Ltac
revert_intros
tac
:=
lazy
match
goal
with
|
|-
∀
_
,
_
=>
let
H
:=
fresh
in
intro
H
;
revert_intros
tac
;
revert
H
|
|-
_
=>
tac
end
.
Ltac
wp_strip_later
:=
let
rec
go
:=
lazymatch
goal
with
|
|-
_
⊑
(
_
★
_
)
=>
apply
sep_mono
;
go
|
|-
_
⊑
▷
_
=>
apply
later_intro
|
|-
_
⊑
_
=>
reflexivity
end
in
revert_intros
ltac
:
(
etransitivity
;
[
|
go
]).
Ltac
wp_bind
K
:=
lazymatch
eval
hnf
in
K
with
|
[]
=>
idtac
...
...
@@ -14,7 +23,6 @@ Ltac wp_bind K :=
Ltac
wp_finish
:=
let
rec
go
:=
match
goal
with
|
|-
∀
_
,
_
=>
let
H
:=
fresh
in
intro
H
;
go
;
revert
H
|
|-
_
⊑
▷
_
=>
etransitivity
;
[
|
apply
later_mono
;
go
;
reflexivity
]
|
|-
_
⊑
wp
_
_
_
=>
etransitivity
;
[
|
eapply
wp_value
;
reflexivity
];
...
...
@@ -22,7 +30,7 @@ Ltac wp_finish :=
wp_value
if
we
obtain
a
consecutive
wp
*
)
match
goal
with
|-
_
⊑
wp
_
_
_
=>
simpl
|
_
=>
fail
end
|
_
=>
idtac
end
in
simpl
;
go
.
end
in
simpl
;
revert_intros
go
.
Tactic
Notation
"wp_value"
:=
match
goal
with
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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