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
Simcha van Collem
Iris
Commits
805e564a
Commit
805e564a
authored
8 years ago
by
Robbert Krebbers
Browse files
Options
Downloads
Patches
Plain Diff
Update proof mode docs.
parent
97bd63aa
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
+37
-23
37 additions, 23 deletions
ProofMode.md
with
37 additions
and
23 deletions
ProofMode.md
+
37
−
23
View file @
805e564a
...
@@ -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:
...
...
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