let m, n be Nat; m < Ackermann (m,n)
defpred S1[ Nat] means for m being Nat holds m < H1(m,$1);
A1:
S1[ 0 ]
proof
let m be
Nat;
m < H1(m, 0 )
defpred S2[
Nat]
means $1
< H1($1,
0 );
A2:
S2[
0 ]
A3:
for
k being
Nat st
S2[
k] holds
S2[
k + 1]
for
k being
Nat holds
S2[
k]
from NAT_1:sch 2(A2, A3);
hence
m < H1(
m,
0 )
;
verum
end;
A6:
for n being Nat st S1[n] holds
S1[n + 1]
proof
let n be
Nat;
( S1[n] implies S1[n + 1] )
assume A7:
S1[
n]
;
S1[n + 1]
defpred S2[
Nat]
means $1
< H1($1,
n + 1);
A8:
S2[
0 ]
A9:
for
a being
Nat st
S2[
a] holds
S2[
a + 1]
proof
let a be
Nat;
( S2[a] implies S2[a + 1] )
assume
S2[
a]
;
S2[a + 1]
A10:
H1(
a,
H1(
a + 1,
n))
= H1(
a + 1,
n + 1)
by Th7;
H1(
a + 1,
n)
< H1(
a,
H1(
a + 1,
n))
by Th16;
hence
S2[
a + 1]
by A7, A10, XXREAL_0:2;
verum
end;
for
n being
Nat holds
S2[
n]
from NAT_1:sch 2(A8, A9);
hence
S1[
n + 1]
;
verum
end;
for k being Nat holds S1[k]
from NAT_1:sch 2(A1, A6);
hence
m < Ackermann (m,n)
; verum