(***************************)
Section The_exercise_itself.
Variable E : Set.
Variable a : E.
Variable o : E -> E -> E.
Hypothesis o_assoc : associative o.
Hypothesis o_onto_r : forall x : E, onto (fun y : E => o x y).
Hypothesis o_onto_l : forall x : E, onto (fun y : E => o y x).
Hint Resolve o_assoc o_onto_r o_onto_l.
(********************************** Building the neutral element ... ************************************)

(*****************************)
Lemma Ea : {ea : E | o a ea = a}.
Definition e := let (e, _) := Ea in e.