let O be non empty set ; :: thesis: for E being set
for F1, F2 being FinSequence of O
for A being Action of O,E holds Product (F1 ^ F2),A = (Product F1,A) * (Product F2,A)

let E be set ; :: thesis: for F1, F2 being FinSequence of O
for A being Action of O,E holds Product (F1 ^ F2),A = (Product F1,A) * (Product F2,A)

let F1, F2 be FinSequence of O; :: thesis: for A being Action of O,E holds Product (F1 ^ F2),A = (Product F1,A) * (Product F2,A)
let A be Action of O,E; :: thesis: Product (F1 ^ F2),A = (Product F1,A) * (Product F2,A)
defpred S1[ Element of NAT ] means for F1, F2 being FinSequence of O st len F1 = $1 holds
Product (F1 ^ F2),A = (Product F1,A) * (Product F2,A);
reconsider k = len F1 as Element of NAT ;
A1: k = len F1 ;
A2: for k being Element of NAT st S1[k] holds
S1[k + 1]
proof
let k be Element of NAT ; :: thesis: ( S1[k] implies S1[k + 1] )
assume A3: S1[k] ; :: thesis: S1[k + 1]
now
let F1, F2 be FinSequence of O; :: thesis: ( len F1 = k + 1 implies Product (F1 ^ F2),A = (Product F1,A) * (Product F2,A) )
assume A4: len F1 = k + 1 ; :: thesis: Product (F1 ^ F2),A = (Product F1,A) * (Product F2,A)
then consider F1k being FinSequence of O, o being Element of O such that
A5: F1 = F1k ^ <*o*> by FINSEQ_2:22;
set F2k = <*o*> ^ F2;
len F1 = (len F1k) + (len <*o*>) by A5, FINSEQ_1:35;
then A6: k + 1 = (len F1k) + 1 by A4, FINSEQ_1:56;
thus Product (F1 ^ F2),A = Product (F1k ^ (<*o*> ^ F2)),A by A5, FINSEQ_1:45
.= (Product F1k,A) * (Product (<*o*> ^ F2),A) by A3, A6
.= (Product F1k,A) * ((Product <*o*>,A) * (Product F2,A)) by Lm28
.= ((Product F1k,A) * (Product <*o*>,A)) * (Product F2,A) by RELAT_1:55
.= (Product F1,A) * (Product F2,A) by A3, A5, A6 ; :: thesis: verum
end;
hence S1[k + 1] ; :: thesis: verum
end;
A7: S1[ 0 ]
proof
let F1, F2 be FinSequence of O; :: thesis: ( len F1 = 0 implies Product (F1 ^ F2),A = (Product F1,A) * (Product F2,A) )
assume A8: len F1 = 0 ; :: thesis: Product (F1 ^ F2),A = (Product F1,A) * (Product F2,A)
then F1 = <*> O ;
hence Product (F1 ^ F2),A = Product ((<*> O) ^ F2),A
.= Product F2,A by FINSEQ_1:47
.= (id E) * (Product F2,A) by FUNCT_2:23
.= (Product F1,A) * (Product F2,A) by A8, Def3 ;
:: thesis: verum
end;
for k being Element of NAT holds S1[k] from NAT_1:sch 1(A7, A2);
hence Product (F1 ^ F2),A = (Product F1,A) * (Product F2,A) by A1; :: thesis: verum