Definition intern := forall x y : S, G x -> G y -> G (Add x y).Definition commutativity := forall x y : S, Add x y = Add y x.Definition associativity :=
  forall x y z : S, Add x (Add y z) = Add (Add x y) z :>S.Definition neutral (S : Set) (G : S -> Prop) (Add : S -> S -> S) 
  (O : S) := G O /\ (forall x : S, G x -> Add x O = x /\ Add O x = x).

(* Specifications: *)
Lemma neutral_add : neutral S G Add O -> O = Add O O.