set A = F1();
A6: ex n being Nat st F2() in (ElementaryInstructions F1()) |^ n by Th79;
defpred S1[ Nat] means for I being Element of F1() st I in (ElementaryInstructions F1()) |^ $1 holds
P1[I];
(ElementaryInstructions F1()) |^ 0 = ElementaryInstructions F1() by Th18;
then A7: S1[ 0 ] by A1;
A8: now
let n be Nat; :: thesis: ( S1[n] implies S1[n + 1] )
assume A9: S1[n] ; :: thesis: S1[n + 1]
thus S1[n + 1] :: thesis: verum
proof
let I be Element of F1(); :: thesis: ( I in (ElementaryInstructions F1()) |^ (n + 1) implies P1[I] )
assume A10: I in (ElementaryInstructions F1()) |^ (n + 1) ; :: thesis: P1[I]
per cases ( I in (ElementaryInstructions F1()) |^ n or I = EmptyIns F1() or ex I1, I2 being Element of F1() st
( I = I1 \; I2 & I1 in (ElementaryInstructions F1()) |^ n & I2 in (ElementaryInstructions F1()) |^ n ) or ex C, I1, I2 being Element of F1() st
( I = if-then-else (C,I1,I2) & C in (ElementaryInstructions F1()) |^ n & I1 in (ElementaryInstructions F1()) |^ n & I2 in (ElementaryInstructions F1()) |^ n ) or ex C, J being Element of F1() st
( I = while (C,J) & C in (ElementaryInstructions F1()) |^ n & J in (ElementaryInstructions F1()) |^ n ) )
by A10, Th77;
suppose ex I1, I2 being Element of F1() st
( I = I1 \; I2 & I1 in (ElementaryInstructions F1()) |^ n & I2 in (ElementaryInstructions F1()) |^ n ) ; :: thesis: P1[I]
then consider I1, I2 being Element of F1() such that
A11: I = I1 \; I2 and
A12: I1 in (ElementaryInstructions F1()) |^ n and
A13: I2 in (ElementaryInstructions F1()) |^ n ;
A14: P1[I1] by A9, A12;
P1[I2] by A9, A13;
hence P1[I] by A3, A11, A14; :: thesis: verum
end;
suppose ex C, J being Element of F1() st
( I = while (C,J) & C in (ElementaryInstructions F1()) |^ n & J in (ElementaryInstructions F1()) |^ n ) ; :: thesis: P1[I]
then consider C, J being Element of F1() such that
A21: I = while (C,J) and
A22: C in (ElementaryInstructions F1()) |^ n and
A23: J in (ElementaryInstructions F1()) |^ n ;
A24: P1[C] by A9, A22;
P1[J] by A9, A23;
hence P1[I] by A5, A21, A24; :: thesis: verum
end;
end;
end;
end;
for n being Nat holds S1[n] from NAT_1:sch 2(A7, A8);
hence P1[F2()] by A6; :: thesis: verum