defpred S1[ Nat] means for m, n being natural number st m + n = $1 holds
P1[m,n];
A3: S1[ 0 ]
proof
let m, n be natural number ; :: thesis: ( m + n = 0 implies P1[m,n] )
assume m + n = 0 ; :: thesis: P1[m,n]
then ( m = 0 & n = 0 ) ;
hence P1[m,n] by A1; :: thesis: verum
end;
A4: for k being Element of NAT st S1[k] holds
S1[k + 1]
proof
let k be Element of NAT ; :: thesis: ( S1[k] implies S1[k + 1] )
assume A5: S1[k] ; :: thesis: S1[k + 1]
for m, n being natural number st m + n = k + 1 holds
P1[m,n]
proof
let m, n be natural number ; :: thesis: ( m + n = k + 1 implies P1[m,n] )
assume A6: m + n = k + 1 ; :: thesis: P1[m,n]
per cases ( m = 0 or n = 0 or ( m <> 0 & n <> 0 ) ) ;
suppose A7: ( m <> 0 & n <> 0 ) ; :: thesis: P1[m,n]
then reconsider n' = n - 1 as Element of NAT by NAT_1:20;
A8: m + n' = k by A6;
reconsider m' = m - 1 as Element of NAT by A7, NAT_1:20;
m' + n = k by A6;
then ( P1[m',n' + 1] & P1[m' + 1,n'] ) by A5, A8;
hence P1[m,n] by A2; :: thesis: verum
end;
end;
end;
hence S1[k + 1] ; :: thesis: verum
end;
A9: for k being Element of NAT holds S1[k] from NAT_1:sch 1(A3, A4);
let m, n be natural number ; :: thesis: P1[m,n]
set k = m + n;
reconsider k = m + n as Element of NAT by ORDINAL1:def 13;
S1[k] by A9;
hence P1[m,n] ; :: thesis: verum