Parameter find: t -> elt -> elt * t.

(* Specifications: *)
Axiom find_repr:
forall uf a, fst (find uf a) = repr uf a.
Axiom find_unchanged:
forall uf a x, repr (snd (find uf a)) x = repr uf x.
Axiom sameclass_find_1:
forall uf a x y, sameclass (snd (find uf a)) x y <-> sameclass uf x y.
Axiom sameclass_find_2:
forall uf a, sameclass uf a (fst (find uf a)).
Axiom sameclass_find_3:
forall uf a, sameclass (snd (find uf a)) a (fst (find uf a)).
Axiom find_repr:
forall uf a, fst (find uf a) = repr uf a.
Axiom find_unchanged:
forall uf a x, repr (snd (find uf a)) x = repr uf x.
Axiom sameclass_find_1:
forall uf a x y, sameclass (snd (find uf a)) x y <-> sameclass uf x y.
Axiom sameclass_find_2:
forall uf a, sameclass uf a (fst (find uf a)).
Axiom sameclass_find_3:
forall uf a, sameclass (snd (find uf a)) a (fst (find uf a)).