let D be non empty set ; for F being XFinSequence of D
for b being BinOp of D st ( b is having_a_unity or len F >= 1 ) holds
b "**" F = b "**" (XFS2FS F)
let F be XFinSequence of D; for b being BinOp of D st ( b is having_a_unity or len F >= 1 ) holds
b "**" F = b "**" (XFS2FS F)
let b be BinOp of D; ( ( b is having_a_unity or len F >= 1 ) implies b "**" F = b "**" (XFS2FS F) )
assume A1:
( b is having_a_unity or len F >= 1 )
; b "**" F = b "**" (XFS2FS F)
per cases
( len F >= 1 or ( b is having_a_unity & len F < 1 ) )
by A1;
suppose A2:
len F >= 1
;
b "**" F = b "**" (XFS2FS F)set FS =
XFS2FS F;
len F = len (XFS2FS F)
by AFINSQ_1:def 9;
then consider f being
Function of
NAT,
D such that A3:
f . 1
= (XFS2FS F) . 1
and A4:
for
n being
Element of
NAT st
0 <> n &
n < len F holds
f . (n + 1) = b . (
(f . n),
((XFS2FS F) . (n + 1)))
and A5:
b "**" (XFS2FS F) = f . (len F)
by A2, FINSOP_1:def 1;
consider xf being
Function of
NAT,
D such that A6:
xf . 0 = F . 0
and A7:
for
n being
Nat st
n + 1
< len F holds
xf . (n + 1) = b . (
(xf . n),
(F . (n + 1)))
and A8:
b "**" F = xf . ((len F) - 1)
by A2, Def9;
defpred S1[
Nat]
means ( $1
< len F implies
xf . $1
= f . ($1 + 1) );
A9:
for
n being
Nat st
S1[
n] holds
S1[
n + 1]
reconsider L1 =
(len F) - 1 as
Element of
NAT by A2, NAT_1:21;
A13:
L1 < L1 + 1
by NAT_1:13;
A14:
S1[
0 ]
for
n being
Nat holds
S1[
n]
from NAT_1:sch 2(A14, A9);
hence
b "**" F = b "**" (XFS2FS F)
by A8, A5, A13;
verum end; end;