defpred S1[ Nat] means P1[F1() * $1];
A4: S1[ 0 ] by A1;
A5: now :: thesis: for i being Nat st S1[i] holds
S1[i + 1]
let i be Nat; :: thesis: ( S1[i] implies S1[i + 1] )
assume A6: S1[i] ; :: thesis: S1[i + 1]
F1() * (i + 1) = (F1() * i) + F1() ;
hence S1[i + 1] by A2, A3, A6; :: thesis: verum
end;
A7: for i being Nat holds S1[i] from NAT_1:sch 2(A4, A5);
per cases ( F2() mod F1() = 0 or F2() mod F1() <> 0 ) ;
suppose F2() mod F1() = 0 ; :: thesis: P1[F2()]
then F2() = (F1() * (F2() div F1())) + 0 by A2, INT_1:59;
hence P1[F2()] by A7; :: thesis: verum
end;
suppose A8: F2() mod F1() <> 0 ; :: thesis: P1[F2()]
A9: F2() = (F1() * (F2() div F1())) + (F2() mod F1()) by A2, INT_1:59;
F2() mod F1() <= F1() by A2, Th1;
hence P1[F2()] by A3, A7, A8, A9; :: thesis: verum
end;
end;