deffunc H1( addLoopStr ) -> Element of the carrier of G = the ZeroF of G;
reconsider GS = RLSStruct(# (product (carr G)),(zeros G),[:(addop G):],[:(multop G):] #) as non empty RLSStruct ;
deffunc H2( 1-sorted ) -> set = the carrier of G;
deffunc H3( addLoopStr ) -> Element of bool [:[: the carrier of G, the carrier of G:], the carrier of G:] = the addF of G;
then A2:
[:(addop G):] is associative
by PRVECT_1:18;
then A4:
zeros G is_a_unity_wrt [:(addop G):]
by PRVECT_1:19;
A5:
GS is right_complementable
then
[:(addop G):] is commutative
by PRVECT_1:17;
hence
( product G is Abelian & product G is add-associative & product G is right_zeroed & product G is right_complementable & product G is vector-distributive & product G is scalar-distributive & product G is scalar-associative & product G is scalar-unital )
by A2, A4, A5, Lm1, Lm2, Lm5; verum