let G be Group; :: thesis: for F1, F2 being FinSequence of the carrier of G st len F1 = len F2 & ( for k being Element of NAT st k in dom F1 holds
F2 . (((len F1) - k) + 1) = (F1 /. k) " ) holds
Product F1 = (Product F2) "
let F1, F2 be FinSequence of the carrier of G; :: thesis: ( len F1 = len F2 & ( for k being Element of NAT st k in dom F1 holds
F2 . (((len F1) - k) + 1) = (F1 /. k) " ) implies Product F1 = (Product F2) " )
defpred S1[ Element of NAT ] means for F1, F2 being FinSequence of the carrier of G st len F1 = $1 & len F1 = len F2 & ( for k being Element of NAT st k in dom F1 holds
F2 . (((len F1) - k) + 1) = (F1 /. k) " ) holds
Product F1 = (Product F2) " ;
A1:
S1[ 0 ]
A2:
for n being Element of NAT st S1[n] holds
S1[n + 1]
proof
let n be
Element of
NAT ;
:: thesis: ( S1[n] implies S1[n + 1] )
assume A3:
S1[
n]
;
:: thesis: S1[n + 1]
let F1,
F2 be
FinSequence of the
carrier of
G;
:: thesis: ( len F1 = n + 1 & len F1 = len F2 & ( for k being Element of NAT st k in dom F1 holds
F2 . (((len F1) - k) + 1) = (F1 /. k) " ) implies Product F1 = (Product F2) " )
assume that A4:
(
len F1 = n + 1 &
len F1 = len F2 )
and A5:
for
k being
Element of
NAT st
k in dom F1 holds
F2 . (((len F1) - k) + 1) = (F1 /. k) "
;
:: thesis: Product F1 = (Product F2) "
reconsider p =
F1 | (Seg n) as
FinSequence of the
carrier of
G by FINSEQ_1:23;
1
<= n + 1
by NAT_1:12;
then
n + 1
in dom F1
by A4, FINSEQ_3:27;
then
(
F1 . (n + 1) in rng F1 &
rng F1 c= the
carrier of
G )
by FINSEQ_1:def 4, FUNCT_1:def 5;
then reconsider a =
F1 . (n + 1) as
Element of
G ;
A6:
len p = n
by A4, FINSEQ_3:59;
deffunc H1(
Nat)
-> set =
F2 . ($1 + 1);
consider q being
FinSequence such that A7:
len q = len p
and A8:
for
k being
Nat st
k in dom q holds
q . k = H1(
k)
from FINSEQ_1:sch 2();
A9:
dom q = dom p
by A7, FINSEQ_3:31;
rng q c= the
carrier of
G
then reconsider q =
q as
FinSequence of the
carrier of
G by FINSEQ_1:def 4;
A13:
len F2 = (len <*(a " )*>) + (len q)
by A4, A6, A7, FINSEQ_1:56;
then A17:
F2 = <*(a " )*> ^ q
by A13, A14, FINSEQ_3:43;
now let k be
Element of
NAT ;
:: thesis: ( k in dom p implies q . (((len p) - k) + 1) = (p /. k) " )assume A18:
k in dom p
;
:: thesis: q . (((len p) - k) + 1) = (p /. k) " then reconsider i =
((len p) - k) + 1 as
Element of
NAT by Lm3;
( 1
<= i &
i <= len p )
by A18, Lm3;
then
i in dom p
by FINSEQ_3:27;
then A19:
q . i = F2 . (i + 1)
by A8, A9;
(
len p <= len F1 &
k <= len p )
by A4, A6, A18, FINSEQ_3:27, NAT_1:12;
then
( 1
<= k &
k <= len F1 )
by A18, FINSEQ_3:27, XXREAL_0:2;
then A20:
k in dom F1
by FINSEQ_3:27;
A21:
i + 1
= ((len F1) - k) + 1
by A4, A6;
F1 /. k =
F1 . k
by A20, PARTFUN1:def 8
.=
p . k
by A18, FUNCT_1:70
.=
p /. k
by A18, PARTFUN1:def 8
;
hence
q . (((len p) - k) + 1) = (p /. k) "
by A5, A19, A20, A21;
:: thesis: verum end;
then A22:
Product p = (Product q) "
by A3, A6, A7;
F1 = p ^ <*a*>
by A4, FINSEQ_3:61;
then A23:
Product F1 = (Product p) * a
by Th9;
Product F2 =
(a " ) * (Product q)
by A17, Th10
.=
(a " ) * ((Product p) " )
by A22
.=
((Product p) * a) "
by GROUP_1:25
;
hence
Product F1 = (Product F2) "
by A23;
:: thesis: verum
end;
for k being Element of NAT holds S1[k]
from NAT_1:sch 1(A1, A2);
hence
( len F1 = len F2 & ( for k being Element of NAT st k in dom F1 holds
F2 . (((len F1) - k) + 1) = (F1 /. k) " ) implies Product F1 = (Product F2) " )
; :: thesis: verum