Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Iris
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
Package Registry
Model registry
Operate
Terraform modules
Monitor
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
Pierre Roux
Iris
Commits
abdf4fa5
Commit
abdf4fa5
authored
4 years ago
by
Yusuke Matsushita
Committed by
Ralf Jung
4 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Fix typos
parent
25818962
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
docs/editor.md
+2
-2
2 additions, 2 deletions
docs/editor.md
docs/proof_mode.md
+10
-10
10 additions, 10 deletions
docs/proof_mode.md
with
12 additions
and
12 deletions
docs/editor.md
+
2
−
2
View file @
abdf4fa5
...
@@ -364,7 +364,7 @@ Here is a `coqide.bindings` file for a variety of symbols used in Iris:
...
@@ -364,7 +364,7 @@ Here is a `coqide.bindings` file for a variety of symbols used in Iris:
### VSCoq setup
### VSCoq setup
The recommended extension as of December 2019 is
[
Maxime Dénès's
The recommended extension as of December 2019 is
[
Maxime Dénès's
VS
c
oq
](
https://marketplace.visualstudio.com/items?itemName=maximedenes.vscoq
)
.
VS
C
oq
](
https://marketplace.visualstudio.com/items?itemName=maximedenes.vscoq
)
.
Press
`Ctrl Shift P`
or
`Cmd Shift P`
and then type "coq" to see the list of Coq
Press
`Ctrl Shift P`
or
`Cmd Shift P`
and then type "coq" to see the list of Coq
commands and keyboard shortcuts.
commands and keyboard shortcuts.
...
@@ -382,7 +382,7 @@ Install the [Generic input method
...
@@ -382,7 +382,7 @@ Install the [Generic input method
extension
](
https://marketplace.visualstudio.com/items?itemName=mr-konn.generic-input-method
)
.
extension
](
https://marketplace.visualstudio.com/items?itemName=mr-konn.generic-input-method
)
.
To insert a symbol, type the code for a symbol such as
`\to`
and then press
To insert a symbol, type the code for a symbol such as
`\to`
and then press
`Space`
or
`Tab`
. To enable Iris unicode input support, open your user settings,
`Space`
or
`Tab`
. To enable Iris unicode input support, open your user settings,
press
`Cmd ,`
or
`Ctrl ,`
,
and
type "generic-input-methods.input-methods", then
press
`Cmd ,`
or
`Ctrl ,`
, type "generic-input-methods.input-methods",
and
then
click on "Edit in settings.json" and add the following:
click on "Edit in settings.json" and add the following:
```
```
...
...
This diff is collapsed.
Click to expand it.
docs/proof_mode.md
+
10
−
10
View file @
abdf4fa5
...
@@ -55,7 +55,7 @@ Applying hypotheses and lemmas
...
@@ -55,7 +55,7 @@ Applying hypotheses and lemmas
conclusion of
`pm_trm`
and generates goals for the premises of
`pm_trm`
. See
conclusion of
`pm_trm`
and generates goals for the premises of
`pm_trm`
. See
[
proof mode terms
][
pm-trm
]
below.
[
proof mode terms
][
pm-trm
]
below.
If the applied term has more premises than given specialization patterns, the
If the applied term has more premises than given specialization patterns, the
pattern is extended with
`[] ... []`
.
As a consequence, all unused spatial
pattern is extended with
`[] ... []`
. As a consequence, all unused spatial
hypotheses move to the last premise.
hypotheses move to the last premise.
Context management
Context management
...
@@ -126,7 +126,7 @@ Introduction of logical connectives
...
@@ -126,7 +126,7 @@ Introduction of logical connectives
-
`iSplit`
: split a conjunction
`P ∧ Q`
into two goals. Also works for
-
`iSplit`
: split a conjunction
`P ∧ Q`
into two goals. Also works for
separating conjunction
`P ∗ Q`
provided one of the operands is persistent (and both
separating conjunction
`P ∗ Q`
provided one of the operands is persistent (and both
proofs may use the entire spatial context).
proofs may use the entire spatial context).
-
`iExist t1, .., tn`
: provide a witness for an existential quantifier
`∃ x, ...`
.
`t1
-
`iExist
s
t1, .., tn`
: provide a witness for an existential quantifier
`∃ x, ...`
.
`t1
... tn`
can also be underscores, which are turned into evars. (In fact they
... tn`
can also be underscores, which are turned into evars. (In fact they
can be arbitrary terms with holes, or
`open_constr`
s, and all of the
can be arbitrary terms with holes, or
`open_constr`
s, and all of the
holes will be turned into evars.)
holes will be turned into evars.)
...
@@ -149,7 +149,7 @@ Elimination of logical connectives
...
@@ -149,7 +149,7 @@ Elimination of logical connectives
intuitionistic context, it will not be thrown away.
intuitionistic context, it will not be thrown away.
+
`iDestruct pm_trm as (x1 ... xn) "ipat"`
: combine the above, first
+
`iDestruct pm_trm as (x1 ... xn) "ipat"`
: combine the above, first
specializing
`pm_trm`
, then eliminating existential quantifiers (and pure
specializing
`pm_trm`
, then eliminating existential quantifiers (and pure
conjuncts) with
`x1 ...
xn`
, and finally destructing the resulting term
conjuncts) with
`x1 ... xn`
, and finally destructing the resulting term
using the
[
introduction pattern
][
ipat
]
`ipat`
.
using the
[
introduction pattern
][
ipat
]
`ipat`
.
+
`iDestruct pm_trm as %cpat`
: destruct the pure conclusion of a term
+
`iDestruct pm_trm as %cpat`
: destruct the pure conclusion of a term
`pr_trm`
using the Coq introduction pattern
`cpat`
. When using this tactic,
`pr_trm`
using the Coq introduction pattern
`cpat`
. When using this tactic,
...
@@ -185,10 +185,10 @@ Separation logic-specific tactics
...
@@ -185,10 +185,10 @@ Separation logic-specific tactics
of spatial context that matches pattern
`pat`
.
of spatial context that matches pattern
`pat`
.
-
`iCombine "H1 H2" as "ipat"`
: combine
`H1 : P1`
and
`H2 : P2`
into
`H: P1 ∗
-
`iCombine "H1 H2" as "ipat"`
: combine
`H1 : P1`
and
`H2 : P2`
into
`H: P1 ∗
P2`
or something simplified but equivalent, then destruct the combined
P2`
or something simplified but equivalent, then destruct the combined
hypthesis using
`ipat`
. Some examples of simplifications
`iCombine`
knows
hyp
o
thesis using
`ipat`
. Some examples of simplifications
`iCombine`
knows
about are to combine
`own γ x`
and
`own γ y`
into
`own γ (x ⋅ y)`
, and to
about are to combine
`own γ x`
and
`own γ y`
into
`own γ (x ⋅ y)`
, and to
combine
`l ↦{1/2} v`
and
`l ↦{1/2} v`
into
`l ↦ v`
.
combine
`l ↦{1/2} v`
and
`l ↦{1/2} v`
into
`l ↦ v`
.
-
`iAccu`
: solve
s
a goal that is an evar by instantiating it with all
-
`iAccu`
: solve a goal that is an evar by instantiating it with all
hypotheses from the spatial context joined together with a separating
hypotheses from the spatial context joined together with a separating
conjunction (or
`emp`
in case the spatial context is empty). Not commonly
conjunction (or
`emp`
in case the spatial context is empty). Not commonly
used, but can be extremely useful when combined with automation.
used, but can be extremely useful when combined with automation.
...
@@ -248,7 +248,7 @@ Rewriting / simplification
...
@@ -248,7 +248,7 @@ Rewriting / simplification
equality in the proof mode goal / hypothesis
`H`
.
equality in the proof mode goal / hypothesis
`H`
.
-
`iRewrite -pm_trm`
/
`iRewrite -pm_trm in "H"`
: rewrite in reverse direction
-
`iRewrite -pm_trm`
/
`iRewrite -pm_trm in "H"`
: rewrite in reverse direction
using an internal equality in the proof mode goal / hypothesis
`H`
.
using an internal equality in the proof mode goal / hypothesis
`H`
.
-
`iEval (tac)`
/
`iEval (tac) in "selpat"`
: perform
s
a tactic
`tac`
-
`iEval (tac)`
/
`iEval (tac) in "selpat"`
: perform a tactic
`tac`
on the proof mode goal / hypotheses given by the selection pattern
on the proof mode goal / hypotheses given by the selection pattern
`selpat`
. Using
`%`
as part of the selection pattern is unsupported.
`selpat`
. Using
`%`
as part of the selection pattern is unsupported.
The tactic
`tac`
should be a reduction or rewriting tactic like
The tactic
`tac`
should be a reduction or rewriting tactic like
...
@@ -258,7 +258,7 @@ Rewriting / simplification
...
@@ -258,7 +258,7 @@ Rewriting / simplification
running
`tac`
,
`?evar`
is unified with the resulting
`P`
, which in
running
`tac`
,
`?evar`
is unified with the resulting
`P`
, which in
turn becomes the new proof mode goal / a hypothesis given by
turn becomes the new proof mode goal / a hypothesis given by
`selpat`
. Note that parentheses around
`tac`
are needed.
`selpat`
. Note that parentheses around
`tac`
are needed.
-
`iSimpl`
/
`iSimpl in "selpat"`
: perform
s
`simpl`
on the proof mode
-
`iSimpl`
/
`iSimpl in "selpat"`
: perform
`simpl`
on the proof mode
goal / hypotheses given by the selection pattern
`selpat`
. This is a
goal / hypotheses given by the selection pattern
`selpat`
. This is a
shorthand for
`iEval (simpl)`
.
shorthand for
`iEval (simpl)`
.
...
@@ -315,7 +315,7 @@ Introduction patterns (`ipat`)
...
@@ -315,7 +315,7 @@ Introduction patterns (`ipat`)
==============================
==============================
Introduction patterns are used to perform introductions and eliminations of
Introduction patterns are used to perform introductions and eliminations of
multiple connectives on the fly.
The proof mode supports the following
multiple connectives on the fly. The proof mode supports the following
_introduction patterns_
:
_introduction patterns_
:
-
`H`
: create a hypothesis named
`H`
.
-
`H`
: create a hypothesis named
`H`
.
...
@@ -356,7 +356,7 @@ _introduction patterns_:
...
@@ -356,7 +356,7 @@ _introduction patterns_:
is a no-op. If the hypothesis is not affine, an
`<affine>`
modality is added
is a no-op. If the hypothesis is not affine, an
`<affine>`
modality is added
to the hypothesis.
to the hypothesis.
-
`> ipat`
: eliminate a modality (if the goal permits); commonly used to strip
-
`> ipat`
: eliminate a modality (if the goal permits); commonly used to strip
a later from the hypothes
e
s when it is timeless and the goal is either a
`WP`
a later from the hypothes
i
s when it is timeless and the goal is either a
`WP`
or an update modality
`|={E}=>`
.
or an update modality
`|={E}=>`
.
Apart from this, there are the following introduction patterns that can only
Apart from this, there are the following introduction patterns that can only
...
@@ -435,7 +435,7 @@ _specialization patterns_ to express splitting of hypotheses:
...
@@ -435,7 +435,7 @@ _specialization patterns_ to express splitting of hypotheses:
which causes
`done`
to be called to close the goal.
which causes
`done`
to be called to close the goal.
-
`[$]`
: solve the premise by framing. It will first repeatedly frame and
-
`[$]`
: solve the premise by framing. It will first repeatedly frame and
consume the spatial hypotheses, and then repeatedly frame the intuitionistic
consume the spatial hypotheses, and then repeatedly frame the intuitionistic
hypotheses.
Spatial hypothes
i
s that are not framed are carried over to the
hypotheses. Spatial hypothes
e
s that are not framed are carried over to the
subsequent goal.
subsequent goal.
-
`[> $]`
: like the above pattern, but this pattern can only be used if the
-
`[> $]`
: like the above pattern, but this pattern can only be used if the
goal is a modality
`M`
, in which case the goal for the premise will be wrapped
goal is a modality
`M`
, in which case the goal for the premise will be wrapped
...
...
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