diff --git a/theories/tactics.v b/theories/tactics.v index ece653ff4ad57a3b12c9aa2e85e7e70ebd3c5cd5..cc6b86866622b8d5241686e079e35e68efb956fb 100644 --- a/theories/tactics.v +++ b/theories/tactics.v @@ -207,9 +207,9 @@ Ltac f_lia := end. Ltac f_lia' := csimpl in *; f_lia. -Ltac setoid_subst_l x := +Ltac setoid_subst_aux R x := match goal with - | H : x ≡ ?y |- _ => + | H : R x ?y |- _ => is_var x; try match y with x _ => fail 2 end; repeat match goal with @@ -223,8 +223,8 @@ Ltac setoid_subst_l x := Ltac setoid_subst := repeat match goal with | _ => progress simplify_equality' - | H : ?x ≡ _ |- _ => setoid_subst_l x - | H : _ ≡ ?x |- _ => symmetry in H; setoid_subst_l x + | H : @equiv _ ?e ?x _ |- _ => setoid_subst_aux (@equiv _ e) x + | H : @equiv _ ?e _ ?x |- _ => symmetry in H; setoid_subst_aux (@equiv _ e) x end. (** Given a tactic [tac2] generating a list of terms, [iter tac1 tac2]