reconsider GS = addLoopStr(# (product (carr G)),[:(addop G):],(zeros G) #) as non empty addLoopStr ;

A5: GS is right_complementable

hence ( product G is add-associative & product G is right_zeroed & product G is right_complementable & not product G is empty & product G is Abelian ) by A2, A4, A5, BINOP_1:3; :: thesis: verum

A1: now :: thesis: for i being Element of dom (carr G) holds (carr G) . i = H_{1}(G . i)

let i be Element of dom (carr G); :: thesis: (carr G) . i = H_{1}(G . i)

dom G = Seg (len G) by FINSEQ_1:def 3

.= Seg (len (carr G)) by Def10

.= dom (carr G) by FINSEQ_1:def 3 ;

hence (carr G) . i = H_{1}(G . i)
by Def10; :: thesis: verum

end;dom G = Seg (len G) by FINSEQ_1:def 3

.= Seg (len (carr G)) by Def10

.= dom (carr G) by FINSEQ_1:def 3 ;

hence (carr G) . i = H

now :: thesis: for i being Element of dom (carr G) holds (addop G) . i is associative

then A2:
[:(addop G):] is associative
by Th18;let i be Element of dom (carr G); :: thesis: (addop G) . i is associative

( (addop G) . i = H_{2}(G . i) & (carr G) . i = H_{1}(G . i) )
by A1, Def11;

hence (addop G) . i is associative by FVSUM_1:2; :: thesis: verum

end;( (addop G) . i = H

hence (addop G) . i is associative by FVSUM_1:2; :: thesis: verum

now :: thesis: for i being Element of dom (carr G) holds (zeros G) . i is_a_unity_wrt (addop G) . i

then A4:
zeros G is_a_unity_wrt [:(addop G):]
by Th19;let i be Element of dom (carr G); :: thesis: (zeros G) . i is_a_unity_wrt (addop G) . i

A3: (carr G) . i = H_{1}(G . i)
by A1;

( (addop G) . i = H_{2}(G . i) & (zeros G) . i = H_{4}(G . i) )
by Def11, Def13;

hence (zeros G) . i is_a_unity_wrt (addop G) . i by A3, Th1; :: thesis: verum

end;A3: (carr G) . i = H

( (addop G) . i = H

hence (zeros G) . i is_a_unity_wrt (addop G) . i by A3, Th1; :: thesis: verum

A5: GS is right_complementable

proof

let x be Element of GS; :: according to ALGSTR_0:def 16 :: thesis: x is right_complementable

reconsider y = (Frege (complop G)) . x as Element of GS by FUNCT_2:5;

take y ; :: according to ALGSTR_0:def 11 :: thesis: x + y = 0. GS

then x + y = the_unity_wrt [:(addop G):] ;

hence x + y = 0. GS by A4, BINOP_1:def 8; :: thesis: verum

end;reconsider y = (Frege (complop G)) . x as Element of GS by FUNCT_2:5;

take y ; :: according to ALGSTR_0:def 11 :: thesis: x + y = 0. GS

now :: thesis: for i being Element of dom (carr G) holds

( (complop G) . i is_an_inverseOp_wrt (addop G) . i & (addop G) . i is having_a_unity )

then
Frege (complop G) is_an_inverseOp_wrt [:(addop G):]
by Th20;( (complop G) . i is_an_inverseOp_wrt (addop G) . i & (addop G) . i is having_a_unity )

let i be Element of dom (carr G); :: thesis: ( (complop G) . i is_an_inverseOp_wrt (addop G) . i & (addop G) . i is having_a_unity )

A6: ( (addop G) . i = H_{2}(G . i) & (complop G) . i = H_{3}(G . i) )
by Def11, Def12;

( H_{4}(G . i) is_a_unity_wrt H_{2}(G . i) & (carr G) . i = H_{1}(G . i) )
by A1, Th1;

hence ( (complop G) . i is_an_inverseOp_wrt (addop G) . i & (addop G) . i is having_a_unity ) by A6, Th2, SETWISEO:def 2; :: thesis: verum

end;A6: ( (addop G) . i = H

( H

hence ( (complop G) . i is_an_inverseOp_wrt (addop G) . i & (addop G) . i is having_a_unity ) by A6, Th2, SETWISEO:def 2; :: thesis: verum

then x + y = the_unity_wrt [:(addop G):] ;

hence x + y = 0. GS by A4, BINOP_1:def 8; :: thesis: verum

now :: thesis: for i being Element of dom (carr G) holds (addop G) . i is commutative

then
( 0. GS = zeros G & [:(addop G):] is commutative )
by Th17;let i be Element of dom (carr G); :: thesis: (addop G) . i is commutative

( (addop G) . i = H_{2}(G . i) & (carr G) . i = H_{1}(G . i) )
by A1, Def11;

hence (addop G) . i is commutative by FVSUM_1:1; :: thesis: verum

end;( (addop G) . i = H

hence (addop G) . i is commutative by FVSUM_1:1; :: thesis: verum

hence ( product G is add-associative & product G is right_zeroed & product G is right_complementable & not product G is empty & product G is Abelian ) by A2, A4, A5, BINOP_1:3; :: thesis: verum