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
Dmitry Khalanskiy
Iris
Commits
b5fcf2eb
Commit
b5fcf2eb
authored
May 04, 2016
by
Robbert Krebbers
Browse files
More consistent specialization patterns for iAssert.
parent
c7bd7639
Changes
1
Hide whitespace changes
Inline
Side-by-side
proofmode/tactics.v
View file @
b5fcf2eb
...
...
@@ -694,14 +694,14 @@ Tactic Notation "iLöb" "{" ident(x1) ident(x2) ident(x3) ident(x4)
(** * Assert *)
Tactic
Notation
"iAssert"
constr
(
Q
)
"as"
constr
(
pat
)
"with"
constr
(
Hs
)
:
=
let
H
:
=
iFresh
in
let
Hs
:
=
spec_pat
.
parse
_one
Hs
in
let
Hs
:
=
spec_pat
.
parse
Hs
in
lazymatch
Hs
with
|
SAssert
?lr
?Hs
=>
|
[
SAssert
?lr
?Hs
]
=>
eapply
tac_assert
with
_
_
_
lr
Hs
H
Q
;
(* (js:=Hs) (j:=H) (P:=Q) *)
[
env_cbv
;
reflexivity
||
fail
"iAssert:"
Hs
"not found"
|
env_cbv
;
reflexivity
|
|
iDestructHyp
H
as
pat
]
|
SPersistent
=>
|
[
SAssert
true
[]
::
SAlways
]
=>
eapply
tac_assert_persistent
with
_
H
Q
;
(* (j:=H) (P:=Q) *)
[
apply
_
||
fail
"iAssert:"
Q
"not persistent"
|
env_cbv
;
reflexivity
|
...
...
Write
Preview
Supports
Markdown
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