defpred S1[ Nat] means for x1, x2, y1, y2 being FinSequence st len x1 = $1 & F1() = x1 ^ x2 & len y1 = $1 & F2() = y1 ^ y2 holds
P1[y1 ^ x2];
A5: S1[ 0 ]
proof
let x1, x2, y1, y2 be FinSequence; :: thesis: ( len x1 = 0 & F1() = x1 ^ x2 & len y1 = 0 & F2() = y1 ^ y2 implies P1[y1 ^ x2] )
assume that
A6: len x1 = 0 and
A7: F1() = x1 ^ x2 and
A8: len y1 = 0 and
F2() = y1 ^ y2 ; :: thesis: P1[y1 ^ x2]
A9: x1 = {} by A6;
y1 = {} by A8;
hence P1[y1 ^ x2] by A1, A7, A9; :: thesis: verum
end;
A10: for i being Nat st S1[i] holds
S1[i + 1]
proof
let i be Nat; :: thesis: ( S1[i] implies S1[i + 1] )
assume A11: for x1, x2, y1, y2 being FinSequence st len x1 = i & F1() = x1 ^ x2 & len y1 = i & F2() = y1 ^ y2 holds
P1[y1 ^ x2] ; :: thesis: S1[i + 1]
let x1, x2, y1, y2 be FinSequence; :: thesis: ( len x1 = i + 1 & F1() = x1 ^ x2 & len y1 = i + 1 & F2() = y1 ^ y2 implies P1[y1 ^ x2] )
assume that
A12: len x1 = i + 1 and
A13: F1() = x1 ^ x2 and
A14: len y1 = i + 1 and
A15: F2() = y1 ^ y2 ; :: thesis: P1[y1 ^ x2]
A16: x1 <> {} by A12;
A17: y1 <> {} by A14;
consider x9 being FinSequence, xx being object such that
A18: x1 = x9 ^ <*xx*> by A16, FINSEQ_1:46;
consider y9 being FinSequence, yy being object such that
A19: y1 = y9 ^ <*yy*> by A17, FINSEQ_1:46;
A20: dom x1 = Seg (len x1) by FINSEQ_1:def 3;
A21: dom y1 = Seg (len y1) by FINSEQ_1:def 3;
A22: len <*xx*> = 1 by FINSEQ_1:40;
A23: len <*yy*> = 1 by FINSEQ_1:40;
A24: len x1 = (len x9) + 1 by A18, A22, FINSEQ_1:22;
A25: len y1 = (len y9) + 1 by A19, A23, FINSEQ_1:22;
A26: F1() = x9 ^ (<*xx*> ^ x2) by A13, A18, FINSEQ_1:32;
A27: F2() = y9 ^ (<*yy*> ^ y2) by A15, A19, FINSEQ_1:32;
A28: i + 1 in dom x1 by A12, A20, FINSEQ_1:4;
A29: dom x1 c= dom F1() by A13, FINSEQ_1:26;
A30: x1 . ((len x9) + 1) = xx by A18, FINSEQ_1:42;
A31: y1 . ((len y9) + 1) = yy by A19, FINSEQ_1:42;
A32: P1[y9 ^ (<*xx*> ^ x2)] by A11, A12, A14, A24, A25, A26, A27;
A33: F1() . (i + 1) = xx by A12, A13, A24, A28, A30, FINSEQ_1:def 7;
A34: F2() . (i + 1) = yy by A12, A14, A15, A20, A21, A25, A28, A31, FINSEQ_1:def 7;
P1[(y9 ^ <*xx*>) ^ x2] by A32, FINSEQ_1:32;
hence P1[y1 ^ x2] by A3, A4, A19, A28, A29, A33, A34; :: thesis: verum
end;
A35: for i being Nat holds S1[i] from NAT_1:sch 2(A5, A10);
A36: F1() = F1() ^ {} by FINSEQ_1:34;
F2() = F2() ^ {} by FINSEQ_1:34;
hence P1[F2()] by A2, A35, A36; :: thesis: verum