Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
I
iris
Manage
Activity
Members
Labels
Plan
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
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
Paolo G. Giarrusso
iris
Commits
37fdb619
Commit
37fdb619
authored
7 months ago
by
Robbert Krebbers
Browse files
Options
Downloads
Patches
Plain Diff
Update documentation.
parent
8d2dfa63
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
docs/proof_mode.md
+15
-7
15 additions, 7 deletions
docs/proof_mode.md
with
15 additions
and
7 deletions
docs/proof_mode.md
+
15
−
7
View file @
37fdb619
...
...
@@ -240,18 +240,26 @@ Induction
+
`iLöb as "IH" forall (x1 ... xn) "selpat"`
: perform Löb induction,
generalizing over the Coq level variables
`x1 ... xn`
, the hypotheses given by
the selection pattern
`selpat`
, and the spatial context as usual.
-
`iInduction x as cpat "IH" "selpat"`
: perform induction on
the Coq term
`x`
. The Coq introduction pattern
`cpat`
is used to name the introduced
variables. The induction hypotheses are inserted into the intuitionistic
context and given fresh names prefixed
`IH`
.
+
`iInduction x as cpat "IH" forall (x1 ... xn) "selpat"`
: perform induction,
-
`iInduction x as cpat "selpat"`
: perform induction on the Coq term
`x`
. The
Coq introduction pattern
`cpat`
is used to name the introduced variables,
including the induction hypotheses which are introduced into the proof mode
context. Note that induction hypotheses should not be put into string
quotation marks
`".."`
, e.g., use
`iInduction n as [|n IH]`
to perform
induction on a natural number
`n`
. An implementation caveat is that the names
of the induction hypotheses should be fresh in both the Coq context and the
proof mode context.
+
`iInduction x as cpat forall (x1 ... xn) "selpat"`
: perform induction,
generalizing over the Coq level variables
`x1 ... xn`
, the hypotheses given by
the selection pattern
`selpat`
, and the spatial context.
+
`iInduction x as cpat
"IH"
using t`
: perform induction using the induction
+
`iInduction x as cpat using t`
: perform induction using the induction
scheme
`t`
. Common examples of induction schemes are
`map_ind`
,
`set_ind_L`
,
and
`gmultiset_ind`
for
`gmap`
,
`gset`
, and
`gmultiset`
.
+
`iInduction x as cpat
"IH"
using t forall (x1 ... xn) "selpat"`
: the above
+
`iInduction x as cpat using t forall (x1 ... xn) "selpat"`
: the above
variants combined.
+
`iInduction x as cpat "IH" "selpat"`
: ignore the names of the induction
hypotheses from
`cpat`
and call them
`IH`
,
`IH1`
,
`IH2`
, etc. Here "IH" is
a string (in string quotation marks). This is
*legacy*
syntax that might be
deprecated in the future. Similar legacy syntax exists for all variants above.
Rewriting / simplification
--------------------------
...
...
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