let m, n be Nat; :: thesis: Ackermann (m,n) < Ackermann ((m + 1),n)
defpred S1[ Nat] means for n being Nat holds H1($1,n) < H1($1 + 1,n);
A1: S1[ 0 ]
proof
let n be Nat; :: thesis: H1( 0 ,n) < H1(0 + 1,n)
A2: H1( 0 ,n) = n + 1 by Def1;
H1(1,n) = n + 2 by Th9;
hence H1( 0 ,n) < H1(0 + 1,n) by A2, XREAL_1:6; :: thesis: verum
end;
A3: for k being Nat st S1[k] holds
S1[k + 1]
proof
let k be Nat; :: thesis: ( S1[k] implies S1[k + 1] )
assume A4: S1[k] ; :: thesis: S1[k + 1]
defpred S2[ Nat] means H1(k + 1,$1) < H1(k + 2,$1);
A5: S2[ 0 ]
proof
( H1(k + 1, 0 ) = H1(k,1) & H1((k + 1) + 1, 0 ) = H1(k + 1,1) ) by Th6;
hence H1(k + 1, 0 ) < H1(k + 2, 0 ) by A4; :: thesis: verum
end;
A6: for b being Nat st S2[b] holds
S2[b + 1]
proof
let b be Nat; :: thesis: ( S2[b] implies S2[b + 1] )
assume A7: S2[b] ; :: thesis: S2[b + 1]
A8: H1(k + 1,b + 1) = H1(k,H1(k + 1,b)) by Th7;
H1(k,H1(k + 1,b)) < H1(k,H1(k + 2,b)) by A7, Th18;
then H1(k,H1(k + 1,b)) < H1(k + 1,H1((k + 1) + 1,b)) by A4, XXREAL_0:2;
hence H1(k + 1,b + 1) < H1(k + 2,b + 1) by A8, Th7; :: thesis: verum
end;
for b being Nat holds S2[b] from NAT_1:sch 2(A5, A6);
hence S1[k + 1] ; :: thesis: verum
end;
for k being Nat holds S1[k] from NAT_1:sch 2(A1, A3);
hence Ackermann (m,n) < Ackermann ((m + 1),n) ; :: thesis: verum