reconsider GS = addLoopStr(# (product (carr G)),[:(addop G):],(zeros G) #) as non empty addLoopStr ;
A1: now
let i be Element of dom (carr G); :: thesis: (carr G) . i = H1(G . i)
dom G = Seg (len G) by FINSEQ_1:def 3
.= Seg (len (carr G)) by Def12
.= dom (carr G) by FINSEQ_1:def 3 ;
hence (carr G) . i = H1(G . i) by Def12; :: thesis: verum
end;
now
let i be Element of dom (carr G); :: thesis: (addop G) . i is associative
( (addop G) . i = H2(G . i) & (carr G) . i = H1(G . i) ) by A1, Def13;
hence (addop G) . i is associative by FVSUM_1:2; :: thesis: verum
end;
then A2: [:(addop G):] is associative by Th26;
now
let i be Element of dom (carr G); :: thesis: (zeros G) . i is_a_unity_wrt (addop G) . i
A3: (carr G) . i = H1(G . i) by A1;
( (addop G) . i = H2(G . i) & (zeros G) . i = H4(G . i) ) by Def13, Def15;
hence (zeros G) . i is_a_unity_wrt (addop G) . i by A3, Th3; :: thesis: verum
end;
then A4: zeros G is_a_unity_wrt [:(addop G):] by Th27;
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
now
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 = H2(G . i) & (complop G) . i = H3(G . i) ) by Def13, Def14;
( H4(G . i) is_a_unity_wrt H2(G . i) & (carr G) . i = H1(G . i) ) by A1, Th3;
hence ( (complop G) . i is_an_inverseOp_wrt (addop G) . i & (addop G) . i is having_a_unity ) by A6, Th4, SETWISEO:def 2; :: thesis: verum
end;
then Frege (complop G) is_an_inverseOp_wrt [:(addop G):] by Th28;
then x + y = the_unity_wrt [:(addop G):] by FINSEQOP:def 1;
hence x + y = 0. GS by A4, BINOP_1:def 8; :: thesis: verum
end;
now
let i be Element of dom (carr G); :: thesis: (addop G) . i is commutative
( (addop G) . i = H2(G . i) & (carr G) . i = H1(G . i) ) by A1, Def13;
hence (addop G) . i is commutative by FVSUM_1:1; :: thesis: verum
end;
then ( 0. GS = zeros G & [:(addop G):] is commutative ) by Th25;
hence addLoopStr(# (product (carr G)),[:(addop G):],(zeros G) #) is strict AbGroup by A2, A4, A5, Lm2, Lm3; :: thesis: verum