Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Jonas Kastberg
iris
Commits
f6ad3a33
Commit
f6ad3a33
authored
Feb 16, 2016
by
Robbert Krebbers
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use > for wp_tactics that do not strip later.
parent
0a44697a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
10 additions
and
10 deletions
+10
-10
heap_lang/tests.v
heap_lang/tests.v
+2
-2
heap_lang/wp_tactics.v
heap_lang/wp_tactics.v
+8
-8
No files found.
heap_lang/tests.v
View file @
f6ad3a33
...
...
@@ -62,7 +62,7 @@ Section LiftingTests.
revert
n1
;
apply
l
ö
b_all_1
=>
n1
.
rewrite
(
comm
uPred_and
(
■
_
)%
I
)
assoc
;
apply
const_elim_r
=>?.
(* first need to do the rec to get a later *)
wp_rec
!
.
wp_rec
>
.
(* FIXME: ssr rewrite fails with "Error: _pattern_value_ is used in conclusion." *)
rewrite
->(
later_intro
(
Q
_
))
;
rewrite
-!
later_and
;
apply
later_mono
.
wp_rec
.
wp_bin_op
.
wp_rec
.
wp_bin_op
=>
?.
...
...
@@ -74,7 +74,7 @@ Section LiftingTests.
Lemma
Pred_spec
n
E
Q
:
▷
Q
(
LitV
(
n
-
1
))
⊑
wp
E
(
Pred
'
n
)%
L
Q
.
Proof
.
wp_rec
!
;
apply
later_mono
;
wp_bin_op
=>
?.
wp_rec
>
;
apply
later_mono
;
wp_bin_op
=>
?.
-
wp_if
.
wp_un_op
.
wp_bin_op
.
wp_focus
(
FindPred
_
_
)
;
rewrite
-
FindPred_spec
.
apply
and_intro
;
first
auto
with
I
omega
.
...
...
heap_lang/wp_tactics.v
View file @
f6ad3a33
...
...
@@ -24,7 +24,7 @@ Tactic Notation "wp_value" :=
match
goal
with
|
|-
_
⊑
wp
?E
?e
?Q
=>
etransitivity
;
[|
eapply
wp_value
;
reflexivity
]
;
simpl
end
.
Tactic
Notation
"wp_rec"
"
!
"
:
=
Tactic
Notation
"wp_rec"
"
>
"
:
=
match
goal
with
|
|-
_
⊑
wp
?E
?e
?Q
=>
reshape_expr
e
ltac
:
(
fun
K
e'
=>
match
eval
cbv
in
e'
with
...
...
@@ -32,8 +32,8 @@ Tactic Notation "wp_rec" "!" :=
wp_bind
K
;
etransitivity
;
[|
eapply
wp_rec
;
reflexivity
]
;
wp_finish
end
)
end
.
Tactic
Notation
"wp_rec"
:
=
wp_rec
!
;
wp_strip_later
.
Tactic
Notation
"wp_bin_op"
"
!
"
:
=
Tactic
Notation
"wp_rec"
:
=
wp_rec
>
;
wp_strip_later
.
Tactic
Notation
"wp_bin_op"
"
>
"
:
=
match
goal
with
|
|-
_
⊑
wp
?E
?e
?Q
=>
reshape_expr
e
ltac
:
(
fun
K
e'
=>
match
eval
cbv
in
e'
with
...
...
@@ -45,8 +45,8 @@ Tactic Notation "wp_bin_op" "!" :=
end
)
end
.
Tactic
Notation
"wp_bin_op"
:
=
wp_bin_op
!
;
wp_strip_later
.
Tactic
Notation
"wp_un_op"
"
!
"
:
=
Tactic
Notation
"wp_bin_op"
:
=
wp_bin_op
>
;
wp_strip_later
.
Tactic
Notation
"wp_un_op"
"
>
"
:
=
match
goal
with
|
|-
_
⊑
wp
?E
?e
?Q
=>
reshape_expr
e
ltac
:
(
fun
K
e'
=>
match
eval
cbv
in
e'
with
...
...
@@ -54,8 +54,8 @@ Tactic Notation "wp_un_op" "!" :=
wp_bind
K
;
etransitivity
;
[|
eapply
wp_un_op
;
reflexivity
]
;
wp_finish
end
)
end
.
Tactic
Notation
"wp_un_op"
:
=
wp_un_op
!
;
wp_strip_later
.
Tactic
Notation
"wp_if"
"
!
"
:
=
Tactic
Notation
"wp_un_op"
:
=
wp_un_op
>
;
wp_strip_later
.
Tactic
Notation
"wp_if"
"
>
"
:
=
try
wp_value
;
match
goal
with
|
|-
_
⊑
wp
?E
?e
?Q
=>
reshape_expr
e
ltac
:
(
fun
K
e'
=>
...
...
@@ -65,7 +65,7 @@ Tactic Notation "wp_if" "!" :=
etransitivity
;
[|
apply
wp_if_true
||
apply
wp_if_false
]
;
wp_finish
end
)
end
.
Tactic
Notation
"wp_if"
:
=
wp_if
!
;
wp_strip_later
.
Tactic
Notation
"wp_if"
:
=
wp_if
>
;
wp_strip_later
.
Tactic
Notation
"wp_focus"
open_constr
(
efoc
)
:
=
match
goal
with
|
|-
_
⊑
wp
?E
?e
?Q
=>
reshape_expr
e
ltac
:
(
fun
K
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