diff options
| author | Clément Pit-Claudel | 2019-02-06 11:42:13 -0500 |
|---|---|---|
| committer | Clément Pit-Claudel | 2019-02-06 11:42:13 -0500 |
| commit | 7886c6d8e0663ba346fff52837012c7fc952ecc1 (patch) | |
| tree | 6328dcd9a7abf1ebb79aab558461edd0c1acdd77 | |
| parent | 177a438806f811901ad0aeab4ed69014e9d2af26 (diff) | |
| parent | 4031789bd30dabdfad941f6ca3a77862057fae58 (diff) | |
Merge PR #9124: Document the possibility of declaring a Ltac name_goal.
Reviewed-by: cpitclaudel
| -rw-r--r-- | doc/sphinx/proof-engine/proof-handling.rst | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/doc/sphinx/proof-engine/proof-handling.rst b/doc/sphinx/proof-engine/proof-handling.rst index 590d71b5f3..24645a8cc3 100644 --- a/doc/sphinx/proof-engine/proof-handling.rst +++ b/doc/sphinx/proof-engine/proof-handling.rst @@ -346,11 +346,46 @@ Navigation in the proof tree Goals are just existential variables and existential variables do not get a name by default. You can give a name to a goal by using :n:`refine ?[@ident]`. + You may also wrap this in an Ltac-definition like: + + .. coqtop:: in + + Ltac name_goal name := refine ?[name]. .. seealso:: :ref:`existential-variables` .. example:: + This first example uses the Ltac definition above, and the named goals + only serve for documentation. + + .. coqtop:: all + + Goal forall n, n + 0 = n. + Proof. + induction n; [ name_goal base | name_goal step ]. + [base]: { + + .. coqtop:: all + + reflexivity. + + .. coqtop:: in + + } + + .. coqtop:: all + + [step]: { + + .. coqtop:: all + + simpl. + f_equal. + assumption. + } + Qed. + This can also be a way of focusing on a shelved goal, for instance: .. coqtop:: all |
