let m be Element of NAT ; :: thesis: for f being Element of HFuncs NAT st f in PrimRec-Approximation . m holds
f is quasi_total

defpred S2[ Element of NAT ] means for f being Element of HFuncs NAT st f in PrimRec-Approximation . $1 holds
f is quasi_total ;
set prd = PrimRec-Approximation ;
A1: for m being Element of NAT st S2[m] holds
S2[m + 1]
proof
let m be Element of NAT ; :: thesis: ( S2[m] implies S2[m + 1] )
assume A2: S2[m] ; :: thesis: S2[m + 1]
let f be Element of HFuncs NAT; :: thesis: ( f in PrimRec-Approximation . (m + 1) implies f is quasi_total )
assume f in PrimRec-Approximation . (m + 1) ; :: thesis: f is quasi_total
then A3: f in (PR-closure (PrimRec-Approximation . m)) \/ (composition-closure (PrimRec-Approximation . m)) by Def23;
per cases ( f in PR-closure (PrimRec-Approximation . m) or f in composition-closure (PrimRec-Approximation . m) ) by A3, XBOOLE_0:def 3;
suppose A4: f in PR-closure (PrimRec-Approximation . m) ; :: thesis: f is quasi_total
end;
suppose A11: f in composition-closure (PrimRec-Approximation . m) ; :: thesis: f is quasi_total
end;
end;
end;
A17: S2[ 0 ]
proof
let f be Element of HFuncs NAT; :: thesis: ( f in PrimRec-Approximation . 0 implies f is quasi_total )
assume f in PrimRec-Approximation . 0 ; :: thesis: f is quasi_total
then f in initial-funcs by Def23;
then A18: ( f in {(0 const 0),(1 succ 1)} or f in { (n proj i) where n, i is Element of NAT : ( 1 <= i & i <= n ) } ) by XBOOLE_0:def 3;
per cases ( f = 0 const 0 or f = 1 succ 1 or f in { (n proj i) where n, i is Element of NAT : ( 1 <= i & i <= n ) } ) by A18, TARSKI:def 2;
end;
end;
for m being Element of NAT holds S2[m] from NAT_1:sch 1(A17, A1);
hence for f being Element of HFuncs NAT st f in PrimRec-Approximation . m holds
f is quasi_total ; :: thesis: verum