(** [set (x := y)] is about 50x slower than it needs to be in Coq 8.4, but is about 4x faster than the alternatives in 8.5. See https://coq.inria.fr/bugs/show_bug.cgi?id=3280 (comment 13) for more details. *) Ltac fast_set' x y := set (x := y). Ltac fast_set'_in x y H := set (x := y) in H. Tactic Notation "fast_set" "(" ident(x) ":=" constr(y) ")" := fast_set' x y. Tactic Notation "fast_set" "(" ident(x) ":=" constr(y) ")" "in" hyp(H) := fast_set'_in x y H.