let D be non empty set ; for A, M being BinOp of D
for F being non-empty non empty FinSequence of D * st len F = 1 & M is commutative & M is associative & A is commutative & A is associative holds
M $$ (([#] (dom F)),(A "**" F)) = A $$ (([#] (dom (App F))),(M "**" (App F)))
let A, M be BinOp of D; for F being non-empty non empty FinSequence of D * st len F = 1 & M is commutative & M is associative & A is commutative & A is associative holds
M $$ (([#] (dom F)),(A "**" F)) = A $$ (([#] (dom (App F))),(M "**" (App F)))
let F be non-empty non empty FinSequence of D * ; ( len F = 1 & M is commutative & M is associative & A is commutative & A is associative implies M $$ (([#] (dom F)),(A "**" F)) = A $$ (([#] (dom (App F))),(M "**" (App F))) )
set F1 = F . 1;
assume that
A1:
len F = 1
and
A2:
( M is commutative & M is associative & A is commutative & A is associative )
; M $$ (([#] (dom F)),(A "**" F)) = A $$ (([#] (dom (App F))),(M "**" (App F)))
A3:
F = <*(F . 1)*>
by A1, FINSEQ_1:40;
then
dom F = {1}
by FINSEQ_1:38, FINSEQ_1:2;
then A4:
( [#] (dom F) = {.1.} & 1 is Element of dom F )
by TARSKI:def 1;
then
M $$ (([#] (dom F)),(A "**" F)) = (A "**" F) . 1
by A2, SETWISEO:17;
then A5:
M $$ (([#] (dom F)),(A "**" F)) = A "**" (F . 1)
by A4, Def10;
set f = M "**" (App F);
set X = dom (App F);
A6:
dom (App F) = doms F
by Def9;
consider G being Function of (Fin (dom (App F))),D such that
A7:
A $$ (([#] (dom (App F))),(M "**" (App F))) = G . ([#] (dom (App F)))
and
for e being Element of D st e is_a_unity_wrt A holds
G . {} = e
and
A8:
for x being Element of dom (App F) holds G . {x} = (M "**" (App F)) . x
and
A9:
for B9 being Element of Fin (dom (App F)) st B9 c= [#] (dom (App F)) & B9 <> {} holds
for x being Element of dom (App F) st x in ([#] (dom (App F))) \ B9 holds
G . (B9 \/ {x}) = A . ((G . B9),((M "**" (App F)) . x))
by A2, SETWISEO:def 3;
A10:
len (F . 1) >= 1 + 0
by A4, NAT_1:13;
then consider s being sequence of D such that
A11:
s . 1 = (F . 1) . 1
and
A12:
for n being Nat st 0 <> n & n < len (F . 1) holds
s . (n + 1) = A . ((s . n),((F . 1) . (n + 1)))
and
A13:
A "**" (F . 1) = s . (len (F . 1))
by FINSOP_1:1;
deffunc H1( Nat) -> set = { <*i*> where i is Element of NAT : i in Seg $1 } ;
defpred S1[ Nat] means ( $1 <= len (F . 1) implies for B9 being Element of Fin (dom (App F)) st B9 = H1($1) holds
G . B9 = s . $1 );
A14:
S1[1]
proof
assume A15:
1
<= len (F . 1)
;
for B9 being Element of Fin (dom (App F)) st B9 = H1(1) holds
G . B9 = s . 1
let B9 be
Element of
Fin (dom (App F));
( B9 = H1(1) implies G . B9 = s . 1 )
assume A16:
B9 = H1(1)
;
G . B9 = s . 1
A17:
1
in dom (F . 1)
by A15, FINSEQ_3:25;
then
(
(F . 1) . 1
in rng (F . 1) &
rng (F . 1) c= D )
by FUNCT_1:def 3;
then reconsider F11 =
(F . 1) . 1 as
Element of
D ;
A18:
H1(1)
c= {<*1*>}
{<*1*>} c= H1(1)
then A20:
H1(1)
= {<*1*>}
by A18;
A21:
(
<*1*> in B9 &
B9 c= dom (App F) )
by A16, A20, TARSKI:def 1, FINSUB_1:def 5;
then
G . B9 = (M "**" (App F)) . <*1*>
by A16, A20, A8;
then
G . B9 = M "**" ((App F) . <*1*>)
by A21, Def10;
then
G . B9 = M "**" <*F11*>
by A3, Th60, A17;
hence
G . B9 = s . 1
by A11, FINSOP_1:11;
verum
end;
A22:
for j being Nat st 1 <= j & S1[j] holds
S1[j + 1]
proof
let j be
Nat;
( 1 <= j & S1[j] implies S1[j + 1] )
assume that A23:
1
<= j
and A24:
S1[
j]
;
S1[j + 1]
set j1 =
j + 1;
assume A25:
j + 1
<= len (F . 1)
;
for B9 being Element of Fin (dom (App F)) st B9 = H1(j + 1) holds
G . B9 = s . (j + 1)
j + 1
in dom (F . 1)
by NAT_1:11, A25, FINSEQ_3:25;
then
(
(F . 1) . (j + 1) in rng (F . 1) &
rng (F . 1) c= D )
by FUNCT_1:def 3;
then reconsider F1j1 =
(F . 1) . (j + 1) as
Element of
D ;
let B9 be
Element of
Fin (dom (App F));
( B9 = H1(j + 1) implies G . B9 = s . (j + 1) )
assume A26:
B9 = H1(
j + 1)
;
G . B9 = s . (j + 1)
A27:
j < len (F . 1)
by A25, NAT_1:13;
H1(
j)
c= dom (App F)
then reconsider Rj =
H1(
j) as
Element of
Fin (dom (App F)) by FINSUB_1:def 5;
A30:
Rj c= B9
j + 1
in Seg (j + 1)
by FINSEQ_1:4;
then
<*(j + 1)*> in B9
by A26;
then A33:
{<*(j + 1)*>} c= B9
by ZFMISC_1:31;
B9 c= Rj \/ {<*(j + 1)*>}
then A35:
B9 = Rj \/ {<*(j + 1)*>}
by A33, A30, XBOOLE_1:8;
A36:
G . Rj = s . j
by A24, A25, NAT_1:13;
A37:
Rj c= [#] (dom (App F))
by FINSUB_1:def 5;
j in Seg j
by A23;
then A38:
<*j*> in Rj
;
A39:
(
<*(j + 1)*> . 1
in dom (F . 1) &
len <*(j + 1)*> = 1 &
<*(j + 1)*> . 1
= j + 1 )
by NAT_1:11, A25, FINSEQ_1:40, FINSEQ_3:25;
then reconsider J =
<*(j + 1)*> as
Element of
dom (App F) by A6, A3, Th51;
(M "**" (App F)) . J = M "**" ((App F) . <*(j + 1)*>)
by Def10;
then
(M "**" (App F)) . J = M "**" <*F1j1*>
by A3, A39, Th60;
then A40:
(M "**" (App F)) . J = F1j1
by FINSOP_1:11;
not
J in Rj
then
J in ([#] (dom (App F))) \ Rj
by XBOOLE_0:def 5;
then
G . B9 = A . (
(s . j),
F1j1)
by A40, A36, A35, A37, A38, A9;
hence
G . B9 = s . (j + 1)
by A12, A25, NAT_1:13, A23;
verum
end;
A42:
for i being Nat st 1 <= i holds
S1[i]
from NAT_1:sch 8(A14, A22);
H1( len (F . 1)) = dom (App F)
hence
M $$ (([#] (dom F)),(A "**" F)) = A $$ (([#] (dom (App F))),(M "**" (App F)))
by A5, A13, A7, A42, A10; verum