Skip to content
Snippets Groups Projects
Commit abdf4fa5 authored by Yusuke Matsushita's avatar Yusuke Matsushita Committed by Ralf Jung
Browse files

Fix typos

parent 25818962
No related branches found
No related tags found
No related merge requests found
...@@ -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
VScoq](https://marketplace.visualstudio.com/items?itemName=maximedenes.vscoq). VSCoq](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:
``` ```
......
...@@ -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 - `iExists 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 hypothesis 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` : solves 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"` : performs 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"` : performs `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 hypotheses when it is timeless and the goal is either a `WP` a later from the hypothesis 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 hypothesis that are not framed are carried over to the hypotheses. Spatial hypotheses 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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment