Some tactics for manipulating Setoid Theory not officially
declared as Setoid.
Ltac trans_st x :=
idtac "trans_st on Setoid_Theory is OBSOLETE";
idtac "use transitivity on Equivalence instead";
match goal with
|
H :
Setoid_Theory _ ?
eqA |- ?
eqA _ _ =>
apply (
Seq_trans _ _ H)
with x;
auto
end.
Ltac sym_st :=
idtac "sym_st on Setoid_Theory is OBSOLETE";
idtac "use symmetry on Equivalence instead";
match goal with
|
H :
Setoid_Theory _ ?
eqA |- ?
eqA _ _ =>
apply (
Seq_sym _ _ H);
auto
end.
Ltac refl_st :=
idtac "refl_st on Setoid_Theory is OBSOLETE";
idtac "use reflexivity on Equivalence instead";
match goal with
|
H :
Setoid_Theory _ ?
eqA |- ?
eqA _ _ =>
apply (
Seq_refl _ _ H);
auto
end.
Definition gen_st :
forall A :
Set,
Setoid_Theory _ (@
eq A).