Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
I
iris-coq
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Dan Frumin
iris-coq
Commits
07dbe5ed
Commit
07dbe5ed
authored
8 years ago
by
Robbert Krebbers
Browse files
Options
Downloads
Patches
Plain Diff
Rename trm → pm_trm in proof mode documentation.
This makes clear that we do not range over Coq terms.
parent
44dd5fae
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
ProofMode.md
+15
-14
15 additions, 14 deletions
ProofMode.md
with
15 additions
and
14 deletions
ProofMode.md
+
15
−
14
View file @
07dbe5ed
...
@@ -6,8 +6,8 @@ Applying hypotheses and lemmas
...
@@ -6,8 +6,8 @@ Applying hypotheses and lemmas
-
`iExact "H"`
: finish the goal if the conclusion matches the hypothesis
`H`
-
`iExact "H"`
: finish the goal if the conclusion matches the hypothesis
`H`
-
`iAssumption`
: finish the goal if the conclusion matches any hypothesis
-
`iAssumption`
: finish the goal if the conclusion matches any hypothesis
-
`iApply trm`
: match the conclusion of the current goal against the
-
`iApply
pm_
trm`
: match the conclusion of the current goal against the
conclusion of
`trm`
and generates goals for the premises of
`trm`
. See
conclusion of
`
pm_
trm`
and generates goals for the premises of
`
pm_
trm`
. See
proof mode terms below.
proof mode terms below.
Context management
Context management
...
@@ -23,9 +23,10 @@ Context management
...
@@ -23,9 +23,10 @@ Context management
`x1 ... xn`
into universal quantifiers. The symbol
`★`
can be used to revert
`x1 ... xn`
into universal quantifiers. The symbol
`★`
can be used to revert
the entire spatial context.
the entire spatial context.
-
`iRename "H1" into "H2"`
: rename the hypothesis
`H1`
into
`H2`
.
-
`iRename "H1" into "H2"`
: rename the hypothesis
`H1`
into
`H2`
.
-
`iSpecialize trm`
: instantiate universal quantifiers and eliminate
-
`iSpecialize pm_trm`
: instantiate universal quantifiers and eliminate
implications/wands of a hypothesis
`trm`
. See proof mode terms below.
implications/wands of a hypothesis
`pm_trm`
. See proof mode terms below.
-
`iPoseProof trm as "H"`
: put
`trm`
into the context as a new hypothesis
`H`
.
-
`iPoseProof pm_trm as "H"`
: put
`pm_trm`
into the context as a new hypothesis
`H`
.
-
`iAssert P with "spat" as "ipat"`
: create a new goal with conclusion
`P`
and
-
`iAssert P with "spat" as "ipat"`
: create a new goal with conclusion
`P`
and
put
`P`
in the context of the original goal. The specialization pattern
put
`P`
in the context of the original goal. The specialization pattern
`spat`
specifies which hypotheses will be consumed by proving
`P`
and the
`spat`
specifies which hypotheses will be consumed by proving
`P`
and the
...
@@ -52,11 +53,11 @@ Elimination of logical connectives
...
@@ -52,11 +53,11 @@ Elimination of logical connectives
----------------------------------
----------------------------------
-
`iExFalso`
: Ex falso sequitur quod libet.
-
`iExFalso`
: Ex falso sequitur quod libet.
-
`iDestruct trm as (x1 ... xn) "spat1 ... spatn"`
: elimination of
existential
-
`iDestruct
pm_
trm as (x1 ... xn) "spat1 ... spatn"`
: elimination of
quantifiers using Coq introduction patterns
`x1 ... xn`
and
elimination of
existential
quantifiers using Coq introduction patterns
`x1 ... xn`
and
object level connectives using the proof mode introduction
patterns
elimination of
object level connectives using the proof mode introduction
`ipat1 ... ipatn`
.
patterns
`ipat1 ... ipatn`
.
-
`iDestruct trm as %cpat`
: elimination of a pure hypothesis using the Coq
-
`iDestruct
pm_
trm as %cpat`
: elimination of a pure hypothesis using the Coq
introduction pattern
`cpat`
.
introduction pattern
`cpat`
.
Separating logic specific tactics
Separating logic specific tactics
...
@@ -75,15 +76,15 @@ The later modality
...
@@ -75,15 +76,15 @@ The later modality
Rewriting
Rewriting
---------
---------
-
`iRewrite trm`
: rewrite an equality in the conclusion.
-
`iRewrite
pm_
trm`
: rewrite an equality in the conclusion.
-
`iRewrite trm in "H"`
: rewrite an equality in the hypothesis
`H`
.
-
`iRewrite
pm_
trm in "H"`
: rewrite an equality in the hypothesis
`H`
.
Iris
Iris
----
----
-
`iPvsIntro`
: introduction of a primitive view shift. Generates a goal if
-
`iPvsIntro`
: introduction of a primitive view shift. Generates a goal if
the masks are not syntactically equal.
the masks are not syntactically equal.
-
`iPvs trm as (x1 ... xn) "ipat"`
: runs a primitive view shift
`trm`
.
-
`iPvs
pm_
trm as (x1 ... xn) "ipat"`
: runs a primitive view shift
`
pm_
trm`
.
-
`iInv N as (x1 ... xn) "ipat"`
: open the invariant
`N`
.
-
`iInv N as (x1 ... xn) "ipat"`
: open the invariant
`N`
.
-
`iInv> N as (x1 ... xn) "ipat"`
: open the invariant
`N`
and establish that
-
`iInv> N as (x1 ... xn) "ipat"`
: open the invariant
`N`
and establish that
it is timeless so no laters have to be added.
it is timeless so no laters have to be added.
...
@@ -186,7 +187,7 @@ Many of the proof mode tactics (such as `iDestruct`, `iApply`, `iRewrite`) can
...
@@ -186,7 +187,7 @@ Many of the proof mode tactics (such as `iDestruct`, `iApply`, `iRewrite`) can
take both hypotheses and lemmas, and allow one to instantiate universal
take both hypotheses and lemmas, and allow one to instantiate universal
quantifiers and implications/wands of these hypotheses/lemmas on the fly.
quantifiers and implications/wands of these hypotheses/lemmas on the fly.
The syntax for the arguments, called _proof mode terms_,
of these tactics
is:
The syntax for the arguments
of these tactics
, called _proof mode terms_, is:
(H $! t1 ... tn with "spat1 .. spatn")
(H $! t1 ... tn with "spat1 .. spatn")
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment