Skip to content
Snippets Groups Projects
Commit cf9f43cb authored by Robbert Krebbers's avatar Robbert Krebbers
Browse files

Expand comment in `select`; based on `iSelect` in Iris.

parent 06531b45
No related branches found
No related tags found
1 merge request!221Fix documentation of `select` to state that it selects the "last" hypothesis.
...@@ -519,7 +519,11 @@ hypothesis due to limitations in the Ltac1 tactic runtime (see ...@@ -519,7 +519,11 @@ hypothesis due to limitations in the Ltac1 tactic runtime (see
https://gitter.im/coq/coq?at=5e96c82f85b01628f04bbb89). *) https://gitter.im/coq/coq?at=5e96c82f85b01628f04bbb89). *)
Tactic Notation "select" open_constr(pat) tactic3(tac) := Tactic Notation "select" open_constr(pat) tactic3(tac) :=
lazymatch goal with lazymatch goal with
(* The [unify] is necessary, otherwise holes in [pat] stay as side-conditions *) (** Before running [tac] on the hypothesis [H] we must first unify the
pattern [pat] with the term it matched against. This forces every evar
coming from [pat] (and in particular from the holes [_] it contains and
from the implicit arguments it uses) to be instantiated. If we do not do
so then shelved goals are produced for every such evar. *)
| H : pat |- _ => let T := (type of H) in unify T pat; tac H | H : pat |- _ => let T := (type of H) in unify T pat; tac H
end. end.
(** [select_revert] reverts the first hypothesis matching [pat]. *) (** [select_revert] reverts the first hypothesis matching [pat]. *)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment