intros.
red in |- *.
intros f g h.
unfold func_plus in |- *.
simpl in |- *.
red in |- *.
intro a.
unfold func_plus_fun in |- *.
simpl in |- *.
apply SGROUP_assoc.
Qed.
Definition func_sgroup (A : Setoid) (B : sgroup) : SGROUP :=
Build_sgroup (Build_sgroup_on (func_plus_associative (A:=A) (B:=B))).

(* Specifications: *)
Lemma func_plus_commutative :
forall (A : Setoid) (B : abelian_sgroup), commutative (func_plus A B).