Library HoTT.Tactics.Nameless
Building blocks for a globally nameless style of tactic reasoning
hyp returns any hypothesis, with subsequent failures backtracking through all hypotheses
Ltac hyp := multimatch goal with H : _ |- _ ⇒ constr:(H) end.
Tactic Notation "enforce" open_constr(term) := idtac.
Tactic Notation "syntax_enforce" "[" constr(H) ":=" open_constr(body) "]" := let H' := (eval unfold H in H) in constr_eq H' body.
Tactic Notation "enforce" "[" open_constr(x) "=" open_constr(y) "]" := unify x y.
An example