Commit 805e564a authored by Robbert Krebbers's avatar Robbert Krebbers
Browse files

Update proof mode docs.

parent 97bd63aa
...@@ -237,29 +237,43 @@ _specification patterns_ to express splitting of hypotheses: ...@@ -237,29 +237,43 @@ _specification patterns_ to express splitting of hypotheses:
- `H` : use the hypothesis `H` (it should match the premise exactly). If `H` is - `H` : use the hypothesis `H` (it should match the premise exactly). If `H` is
spatial, it will be consumed. spatial, it will be consumed.
- `[H1 ... Hn]` : generate a goal with the (spatial) hypotheses `H1 ... Hn` and
all persistent hypotheses. The spatial hypotheses among `H1 ... Hn` will be - `[H1 .. Hn]` and `[H1 .. Hn //]` : generate a goal for the premise with the
consumed. Hypotheses may be prefixed with a `$`, which results in them being (spatial) hypotheses `H1 ... Hn` and all persistent hypotheses. The spatial
framed in the generated goal for the premise. hypotheses among `H1 ... Hn` will be consumed, and will not be available for
- `[-H1 ... Hn]` : negated form of the above pattern. subsequent goals. Hypotheses prefixed with a `$` will be framed in the
- `[> H1 ... Hn]` : same as the above pattern, but can only be used if the goal goal for the premise. The pattern can be terminated with a `//`, which causes
is a modality, in which case the modality will be kept in the generated goal `done` to be called to close the goal (after framing).
for the premise will be wrapped into the modality. - `[-H1 ... Hn]` and `[-H1 ... Hn //]` : the negated forms of the above
- `[> -H1 ... Hn]` : negated form of the above pattern. patterns, where the goal for the premise will have all spatial premises except
- `[#]` : This pattern can be used when eliminating `P -∗ Q` with `P` being `H1 .. Hn`.
persistent. Using this pattern, all hypotheses are available in the goal for
`P`, as well the remaining goal. The pattern can optionally contain - `[> H1 ... Hn]` and `[> H1 ... Hn //]` : like the above patterns, but these
hypotheses prefixed with a `$`, which results in them being framed in the patterns can only be used if the goal is a modality `M`, in which case
generated goal for the premise. the goal for the premise will be wrapped in the modality `M`.
- `[%]` : This pattern can be used when eliminating `P -∗ Q` when `P` is pure. - `[> -H1 ... Hn]` and `[> -H1 ... Hn //]` : the negated forms of the above
It will generate a Coq goal for `P` and does not consume any hypotheses. patterns.
- `[$]` :
- `[# $]` : - `[# $H1 .. $Hn]` and `[# $H1 .. $Hn //]` : generate a goal for a persistent
- `>[$]` : premise in which all hypotheses are available. This pattern does not consume
any hypotheses; all hypotheses are available in the goal for the premise, as
The specialization patterns `[H1 .. H2]`, `[-H1 ... Hn]`, `>[H1 ... Hn]`, well in the subsequent goal. The hypotheses `$H1 ... $Hn` will be framed in
`>[H1 ... Hn]`, `[#]` and `[%]` can optionally be ended with a `//`. This causes the goal for the premise. These patterns can be terminated with a `//`, which
the `done` tactic being called to close the goal (after framing). causes `done` to be called to close the goal (after framing).
- `[%]` and `[% //]` : generate a Coq goal for a pure premise. This pattern
does not consume any hypotheses. The pattern can be terminated with a `//`,
which causes `done` to be called to close the goal.
- `[$]` : solve the premise by framing. It will first repeatedly frame the
spatial hypotheses, and then repeatedly frame the persistent hypotheses.
Spatial hypothesis that are not framed are carried over to the subsequent
goal.
- `[> $]` : 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
in the modality `M` before framing.
- `[# $]` : solve the persistent premise by framing. It will first repeatedly
frame the spatial hypotheses, and then repeatedly frame the persistent
hypotheses. This pattern does not consume any hypotheses.
For example, given: For example, given:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment