aboutsummaryrefslogtreecommitdiff
path: root/doc/sphinx/proof-engine
diff options
context:
space:
mode:
Diffstat (limited to 'doc/sphinx/proof-engine')
-rw-r--r--doc/sphinx/proof-engine/ltac.rst130
-rw-r--r--doc/sphinx/proof-engine/tactics.rst60
2 files changed, 95 insertions, 95 deletions
diff --git a/doc/sphinx/proof-engine/ltac.rst b/doc/sphinx/proof-engine/ltac.rst
index 1071682ead..3629b5c5ec 100644
--- a/doc/sphinx/proof-engine/ltac.rst
+++ b/doc/sphinx/proof-engine/ltac.rst
@@ -70,88 +70,88 @@ mode but it can also be used in toplevel definitions as shown below.
.. productionlist:: coq
expr : `expr` ; `expr`
- : | [> `expr` | ... | `expr` ]
- : | `expr` ; [ `expr` | ... | `expr` ]
- : | `tacexpr3`
- tacexpr3 : do (`natural` | `ident`) tacexpr3
- : | progress `tacexpr3`
- : | repeat `tacexpr3`
- : | try `tacexpr3`
- : | once `tacexpr3`
- : | exactly_once `tacexpr3`
- : | timeout (`natural` | `ident`) `tacexpr3`
- : | time [`string`] `tacexpr3`
- : | only `selector`: `tacexpr3`
- : | `tacexpr2`
+ : [> `expr` | ... | `expr` ]
+ : `expr` ; [ `expr` | ... | `expr` ]
+ : `tacexpr3`
+ tacexpr3 : do (`natural` | `ident`) `tacexpr3`
+ : progress `tacexpr3`
+ : repeat `tacexpr3`
+ : try `tacexpr3`
+ : once `tacexpr3`
+ : exactly_once `tacexpr3`
+ : timeout (`natural` | `ident`) `tacexpr3`
+ : time [`string`] `tacexpr3`
+ : only `selector`: `tacexpr3`
+ : `tacexpr2`
tacexpr2 : `tacexpr1` || `tacexpr3`
- : | `tacexpr1` + `tacexpr3`
- : | tryif `tacexpr1` then `tacexpr1` else `tacexpr1`
- : | `tacexpr1`
+ : `tacexpr1` + `tacexpr3`
+ : tryif `tacexpr1` then `tacexpr1` else `tacexpr1`
+ : `tacexpr1`
tacexpr1 : fun `name` ... `name` => `atom`
- : | let [rec] `let_clause` with ... with `let_clause` in `atom`
- : | match goal with `context_rule` | ... | `context_rule` end
- : | match reverse goal with `context_rule` | ... | `context_rule` end
- : | match `expr` with `match_rule` | ... | `match_rule` end
- : | lazymatch goal with `context_rule` | ... | `context_rule` end
- : | lazymatch reverse goal with `context_rule` | ... | `context_rule` end
- : | lazymatch `expr` with `match_rule` | ... | `match_rule` end
- : | multimatch goal with `context_rule` | ... | `context_rule` end
- : | multimatch reverse goal with `context_rule` | ... | `context_rule` end
- : | multimatch `expr` with `match_rule` | ... | `match_rule` end
- : | abstract `atom`
- : | abstract `atom` using `ident`
- : | first [ `expr` | ... | `expr` ]
- : | solve [ `expr` | ... | `expr` ]
- : | idtac [ `message_token` ... `message_token`]
- : | fail [`natural`] [`message_token` ... `message_token`]
- : | fresh [ `component` … `component` ]
- : | context `ident` [`term`]
- : | eval `redexpr` in `term`
- : | type of `term`
- : | constr : `term`
- : | uconstr : `term`
- : | type_term `term`
- : | numgoals
- : | guard `test`
- : | assert_fails `tacexpr3`
- : | assert_succeeds `tacexpr3`
- : | `atomic_tactic`
- : | `qualid` `tacarg` ... `tacarg`
- : | `atom`
+ : let [rec] `let_clause` with ... with `let_clause` in `atom`
+ : match goal with `context_rule` | ... | `context_rule` end
+ : match reverse goal with `context_rule` | ... | `context_rule` end
+ : match `expr` with `match_rule` | ... | `match_rule` end
+ : lazymatch goal with `context_rule` | ... | `context_rule` end
+ : lazymatch reverse goal with `context_rule` | ... | `context_rule` end
+ : lazymatch `expr` with `match_rule` | ... | `match_rule` end
+ : multimatch goal with `context_rule` | ... | `context_rule` end
+ : multimatch reverse goal with `context_rule` | ... | `context_rule` end
+ : multimatch `expr` with `match_rule` | ... | `match_rule` end
+ : abstract `atom`
+ : abstract `atom` using `ident`
+ : first [ `expr` | ... | `expr` ]
+ : solve [ `expr` | ... | `expr` ]
+ : idtac [ `message_token` ... `message_token`]
+ : fail [`natural`] [`message_token` ... `message_token`]
+ : fresh [ `component` … `component` ]
+ : context `ident` [`term`]
+ : eval `redexpr` in `term`
+ : type of `term`
+ : constr : `term`
+ : uconstr : `term`
+ : type_term `term`
+ : numgoals
+ : guard `test`
+ : assert_fails `tacexpr3`
+ : assert_succeeds `tacexpr3`
+ : `atomic_tactic`
+ : `qualid` `tacarg` ... `tacarg`
+ : `atom`
atom : `qualid`
- : | ()
- : | `integer`
- : | ( `expr` )
+ : ()
+ : `integer`
+ : ( `expr` )
component : `string` | `qualid`
message_token : `string` | `ident` | `integer`
tacarg : `qualid`
- : | ()
- : | ltac : `atom`
- : | `term`
+ : ()
+ : ltac : `atom`
+ : `term`
let_clause : `ident` [`name` ... `name`] := `expr`
context_rule : `context_hyp`, ..., `context_hyp` |- `cpattern` => `expr`
- : | `cpattern` => `expr`
- : | |- `cpattern` => `expr`
- : | _ => `expr`
+ : `cpattern` => `expr`
+ : |- `cpattern` => `expr`
+ : _ => `expr`
context_hyp : `name` : `cpattern`
- : | `name` := `cpattern` [: `cpattern`]
+ : `name` := `cpattern` [: `cpattern`]
match_rule : `cpattern` => `expr`
- : | context [ident] [ `cpattern` ] => `expr`
- : | _ => `expr`
+ : context [`ident`] [ `cpattern` ] => `expr`
+ : _ => `expr`
test : `integer` = `integer`
- : | `integer` (< | <= | > | >=) `integer`
+ : `integer` (< | <= | > | >=) `integer`
selector : [`ident`]
- : | `integer`
- : | (`integer` | `integer` - `integer`), ..., (`integer` | `integer` - `integer`)
+ : `integer`
+ : (`integer` | `integer` - `integer`), ..., (`integer` | `integer` - `integer`)
toplevel_selector : `selector`
- : | all
- : | par
- : | !
+ : all
+ : par
+ : !
.. productionlist:: coq
top : [Local] Ltac `ltac_def` with ... with `ltac_def`
ltac_def : `ident` [`ident` ... `ident`] := `expr`
- : | `qualid` [`ident` ... `ident`] ::= `expr`
+ : `qualid` [`ident` ... `ident`] ::= `expr`
.. _ltac-semantics:
diff --git a/doc/sphinx/proof-engine/tactics.rst b/doc/sphinx/proof-engine/tactics.rst
index 59602581c7..695e1ea833 100644
--- a/doc/sphinx/proof-engine/tactics.rst
+++ b/doc/sphinx/proof-engine/tactics.rst
@@ -36,7 +36,7 @@ language will be described in Chapter :ref:`ltac`.
.. _invocation-of-tactics:
Invocation of tactics
--------------------------
+~~~~~~~~~~~~~~~~~~~~~
A tactic is applied as an ordinary command. It may be preceded by a
goal selector (see Section :ref:`ltac-semantics`). If no selector is
@@ -44,9 +44,9 @@ specified, the default selector is used.
.. _tactic_invocation_grammar:
- .. productionlist:: `sentence`
- tactic_invocation : toplevel_selector : tactic.
- : |tactic .
+ .. productionlist:: sentence
+ tactic_invocation : `toplevel_selector` : `tactic`.
+ : `tactic` .
.. opt:: Default Goal Selector "@toplevel_selector"
:name: Default Goal Selector
@@ -79,14 +79,14 @@ bindings_list`` where ``bindings_list`` may be of two different forms:
.. _bindings_list_grammar:
.. productionlist:: `bindings_list`
- bindings_list : (ref := `term`) ... (ref := `term`)
+ bindings_list : (`ref` := `term`) ... (`ref` := `term`)
: `term` ... `term`
-+ In a bindings list of the form :n:`{* (ref:= term)}`, :n:`ref` is either an
++ In a bindings list of the form :n:`{+ (@ref:= @term)}`, :n:`@ref` is either an
:n:`@ident` or a :n:`@num`. The references are determined according to the type of
- ``term``. If :n:`ref` is an identifier, this identifier has to be bound in the
+ ``term``. If :n:`@ref` is an identifier, this identifier has to be bound in the
type of ``term`` and the binding provides the tactic with an instance for the
- parameter of this name. If :n:`ref` is some number ``n``, this number denotes
+ parameter of this name. If :n:`@ref` is some number ``n``, this number denotes
the ``n``-th non dependent premise of the ``term``, as determined by the type
of ``term``.
@@ -113,11 +113,11 @@ Occurrence sets and occurrence clauses
An occurrence clause is a modifier to some tactics that obeys the
following syntax:
- .. productionlist:: `sentence`
+ .. productionlist:: sentence
occurrence_clause : in `goal_occurrences`
- goal_occurrences : [`ident` [`at_occurrences`], ... , ident [`at_occurrences`] [|- [* [`at_occurrences`]]]]
- :| * |- [* [`at_occurrences`]]
- :| *
+ goal_occurrences : [`ident` [`at_occurrences`], ... , `ident` [`at_occurrences`] [|- [* [`at_occurrences`]]]]
+ : * |- [* [`at_occurrences`]]
+ : *
at_occurrences : at `occurrences`
occurrences : [-] `num` ... `num`
@@ -3586,15 +3586,15 @@ The general command to add a hint to some databases :n:`{+ @ident}` is
the following. Beware, there is no operator precedence during parsing, one can
check with :cmd:`Print HintDb` to verify the current cut expression:
- .. productionlist:: `regexp`
- e : ident hint or instance identifier
- :| _ any hint
- :| e\|e′ disjunction
- :| e e′ sequence
- :| e * Kleene star
- :| emp empty
- :| eps epsilon
- :| ( e )
+ .. productionlist:: regexp
+ e : `ident` hint or instance identifier
+ : _ any hint
+ : `e` | `e` disjunction
+ : `e` `e` sequence
+ : `e` * Kleene star
+ : emp empty
+ : eps epsilon
+ : ( `e` )
The `emp` regexp does not match any search path while `eps`
matches the empty path. During proof search, the path of
@@ -4299,15 +4299,15 @@ Automating
.. _btauto_grammar:
- .. productionlist:: `sentence`
- t : x
- :∣ true
- :∣ false
- :∣ orb t1 t2
- :∣ andb t1 t2
- :∣ xorb t1 t2
- :∣ negb t
- :∣ if t1 then t2 else t3
+ .. productionlist:: sentence
+ t : `x`
+ : true
+ : false
+ : orb `t` `t`
+ : andb `t` `t`
+ : xorb `t` `t`
+ : negb `t`
+ : if `t` then `t` else `t`
Whenever the formula supplied is not a tautology, it also provides a
counter-example.