simpl in |- *; auto with algebra.
Qed.

(* Specifications: *)
Lemma inj_part_included_injective :
forall (A B : part_set E) (p : included A B),
injective (inj_part_included p).
Lemma eunitr : unit_r f e.
red in |- *.
Lemma eunitl : unit_l f e.
red in |- *.
Lemma invl : inverse_l f e inv.
red in |- *.
Lemma compl_comp :
forall A B : part_set E, Equal A B -> Equal (compl A) (compl B).
Lemma compl_included :
forall A B : part_set E, included A B -> included (compl B) (compl A).
Lemma in_image :
forall (A : part_set E) (x : E) (y : F),
in_part x A -> Equal y (f x) -> in_part y (image A).
Lemma group_hom_unit_prop :
forall x : G, Equal (monoid_unit group_hom x) (monoid_unit G').
Lemma group_hom_inv_prop :
forall (f : group_hom) (x : G),
Equal (group_inverse group_hom f x) (group_inverse G' (f x)).
Lemma eunitr : unit_r f e.
red in |- *.
Lemma eunitl : unit_l f e.
red in |- *.
Lemma restrict_prop_in_part :
forall (A : part_set E) (x : A), Equal (restrict A x) (f (A x)).
Lemma in_invimage :
forall (A : part_set F) (x : E), in_part (f x) A -> in_part x (invimage f A).