aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoqbot-app[bot]2020-09-18 15:04:32 +0000
committerGitHub2020-09-18 15:04:32 +0000
commit6b991f6111006cf4635b3321232d61c4f5c54f40 (patch)
tree7d899ca49d94c935e85cbc07ae2270e76d1d8cac
parent5bdd954f57aa9e7154258f38619c6be7b6ba2d7c (diff)
parentb6a925806f5eccf7510fe53416c52192c2ffb0a1 (diff)
Merge PR #13051: Improve `simple apply` example
Reviewed-by: Zimmi48
-rw-r--r--doc/sphinx/proof-engine/tactics.rst12
1 files changed, 4 insertions, 8 deletions
diff --git a/doc/sphinx/proof-engine/tactics.rst b/doc/sphinx/proof-engine/tactics.rst
index 2f505e7448..e276a0edcb 100644
--- a/doc/sphinx/proof-engine/tactics.rst
+++ b/doc/sphinx/proof-engine/tactics.rst
@@ -732,12 +732,13 @@ Applying theorems
does not succeed because it would require the conversion of ``id ?foo`` and
:g:`O`.
+ .. _simple_apply_ex:
.. example::
.. coqtop:: all
Definition id (x : nat) := x.
- Parameter H : forall y, id y = y.
+ Parameter H : forall x y, id x = y.
Goal O = O.
Fail simple apply H.
@@ -907,13 +908,8 @@ Applying theorems
.. tacv:: simple apply @term in @ident
This behaves like :tacn:`apply … in` but it reasons modulo conversion
- only on subterms that contain no variables to instantiate. For instance,
- if :g:`id := fun x:nat => x` and :g:`H: forall y, id y = y -> True` and
- :g:`H0 : O = O` then :g:`simple apply H in H0` does not succeed because it
- would require the conversion of :g:`id ?x` and :g:`O` where :g:`?x` is
- an existential variable to instantiate.
- Tactic :n:`simple apply @term in @ident` does not
- either traverse tuples as :n:`apply @term in @ident` does.
+ only on subterms that contain no variables to instantiate and does not
+ traverse tuples. See :ref:`the corresponding example <simple_apply_ex>`.
.. tacv:: {? simple} apply {+, @term {? with @bindings_list}} in @ident {? as @simple_intropattern}
{? simple} eapply {+, @term {? with @bindings_list}} in @ident {? as @simple_intropattern}