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
803d4b3d
Commit
803d4b3d
authored
Mar 19, 2018
by
Ralf Jung
Browse files
update iIntoEmpValid docs
parent
42655ec9
Changes
1
Hide whitespace changes
Inline
Side-by-side
theories/proofmode/tactics.v
View file @
803d4b3d
...
@@ -666,15 +666,23 @@ Tactic Notation "iSpecialize" open_constr(t) "as" "#" :=
...
@@ -666,15 +666,23 @@ Tactic Notation "iSpecialize" open_constr(t) "as" "#" :=
iSpecializeCore
t
as
true
.
iSpecializeCore
t
as
true
.
(** * Pose proof *)
(** * Pose proof *)
(* The tactic [iIntoEmpValid] tactic solves a goal [
uPred
_valid Q]. The
(* The tactic [iIntoEmpValid] tactic solves a goal [
bi_emp
_valid Q]. The
argument
s
[t]
is
a Coq term whose type is of the following shape:
argument [t]
must be
a Coq term whose type is of the following shape:
- [∀ (x_1 : A_1) .. (x_n : A_n), uPred_valid Q]
[∀ (x_1 : A_1) .. (x_n : A_n), φ]
- [∀ (x_1 : A_1) .. (x_n : A_n), P1 ⊢ P2], in which case [Q] becomes [P1 -∗ P2]
- [∀ (x_1 : A_1) .. (x_n : A_n), P1 ⊣⊢ P2], in which case [Q] becomes [P1 ↔ P2]
and so that we have an instance `AsValid φ Q`.
Examples of such [φ]s are
- [bi_emp_valid P], in which case [Q] should be [P]
- [P1 ⊢ P2], in which case [Q] should be [P1 -∗ P2]
- [P1 ⊣⊢ P2], in which case [Q] should be [P1 ↔ P2]
The tactic instantiates each dependent argument [x_i] with an evar and generates
The tactic instantiates each dependent argument [x_i] with an evar and generates
a goal [P] for non-dependent arguments [x_i : P]. *)
a goal [R] for each non-dependent argument [x_i : R]. For example, if the
original goal was [Q] and [t] has type [∀ x, P x → Q], then it generates an evar
[?x] for [x] and a subgoal [P ?x]. *)
Tactic
Notation
"iIntoEmpValid"
open_constr
(
t
)
:
=
Tactic
Notation
"iIntoEmpValid"
open_constr
(
t
)
:
=
let
rec
go
t
:
=
let
rec
go
t
:
=
(* We try two reduction tactics for the type of t before trying to
(* We try two reduction tactics for the type of t before trying to
...
...
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