let i be Element of NAT ; for f1, f2 being non empty NAT * -defined to-naturals homogeneous Function
for p being Element of ((arity f1) + 1) -tuples_on NAT st f1 is len-total & f2 is len-total & (arity f1) + 2 = arity f2 & 1 <= i & i <= 1 + (arity f1) holds
p in dom (primrec f1,f2,i,p)
let f1, f2 be non empty NAT * -defined to-naturals homogeneous Function; for p being Element of ((arity f1) + 1) -tuples_on NAT st f1 is len-total & f2 is len-total & (arity f1) + 2 = arity f2 & 1 <= i & i <= 1 + (arity f1) holds
p in dom (primrec f1,f2,i,p)
let p be Element of ((arity f1) + 1) -tuples_on NAT ; ( f1 is len-total & f2 is len-total & (arity f1) + 2 = arity f2 & 1 <= i & i <= 1 + (arity f1) implies p in dom (primrec f1,f2,i,p) )
assume that
A1:
f1 is len-total
and
A2:
f2 is len-total
and
A3:
(arity f1) + 2 = arity f2
and
A4:
1 <= i
and
A5:
i <= 1 + (arity f1)
; p in dom (primrec f1,f2,i,p)
A6:
len p = 1 + (arity f1)
by FINSEQ_1:def 18;
then A7:
i in dom p
by A4, A5, FINSEQ_3:27;
then A8:
p /. i = p . i
by PARTFUN1:def 8;
consider F being Function of NAT ,(HFuncs NAT ) such that
A9:
primrec f1,f2,i,p = F . (p /. i)
and
A10:
( i in dom p & Del p,i in dom f1 implies F . 0 = (p +* i,0 ) .--> (f1 . (Del p,i)) )
and
( ( not i in dom p or not Del p,i in dom f1 ) implies F . 0 = {} )
and
A11:
for m being Element of NAT holds
( ( i in dom p & p +* i,m in dom (F . m) & (p +* i,m) ^ <*((F . m) . (p +* i,m))*> in dom f2 implies F . (m + 1) = (F . m) +* ((p +* i,(m + 1)) .--> (f2 . ((p +* i,m) ^ <*((F . m) . (p +* i,m))*>))) ) & ( ( not i in dom p or not p +* i,m in dom (F . m) or not (p +* i,m) ^ <*((F . m) . (p +* i,m))*> in dom f2 ) implies F . (m + 1) = F . m ) )
by Def13;
defpred S2[ Element of NAT ] means p +* i,$1 in dom (F . $1);
A12:
p +* i,(p . i) = p
by FUNCT_7:37;
A13:
now let m be
Element of
NAT ;
( S2[m] implies S2[m + 1] )assume A14:
S2[
m]
;
S2[m + 1]reconsider aa =
(F . m) . (p +* i,m) as
Element of
NAT ;
set pc =
(p +* i,m) ^ <*((F . m) . (p +* i,m))*>;
reconsider p2 =
<*aa*> as
FinSequence of
NAT ;
reconsider p1 =
(p +* i,m) ^ p2 as
FinSequence of
NAT ;
A15:
len p2 = 1
by FINSEQ_1:def 18;
len (p +* i,m) = 1
+ (arity f1)
by FINSEQ_1:def 18;
then len p1 =
((arity f1) + 1) + 1
by A15, FINSEQ_1:35
.=
arity f2
by A3
;
then A16:
p1 is
Element of
(arity f2) -tuples_on NAT
by FINSEQ_2:110;
p +* i,
(m + 1) in {(p +* i,(m + 1))}
by TARSKI:def 1;
then A17:
p +* i,
(m + 1) in dom ({(p +* i,(m + 1))} --> (f2 . ((p +* i,m) ^ <*((F . m) . (p +* i,m))*>)))
by FUNCOP_1:19;
dom f2 = (arity f2) -tuples_on NAT
by A2, Th26;
then
F . (m + 1) = (F . m) +* ((p +* i,(m + 1)) .--> (f2 . ((p +* i,m) ^ <*((F . m) . (p +* i,m))*>)))
by A7, A11, A14, A16;
then
dom (F . (m + 1)) = (dom (F . m)) \/ (dom ({(p +* i,(m + 1))} --> (f2 . ((p +* i,m) ^ <*((F . m) . (p +* i,m))*>))))
by FUNCT_4:def 1;
hence
S2[
m + 1]
by A17, XBOOLE_0:def 3;
verum end;
A18:
now reconsider Dpi =
Del p,
i as
FinSequence of
NAT by FINSEQ_3:114;
reconsider Dpi9 =
Dpi as
Element of
(len Dpi) -tuples_on NAT by FINSEQ_2:110;
A19:
dom f1 = (arity f1) -tuples_on NAT
by A1, Th26;
len (Del p,i) = arity f1
by A6, A7, FINSEQ_3:118;
then
Dpi9 in dom f1
by A19;
then
dom (F . 0 ) = {(p +* i,0 )}
by A4, A5, A6, A10, FINSEQ_3:27, FUNCOP_1:19;
hence
S2[
0 ]
by TARSKI:def 1;
verum end;
for m being Element of NAT holds S2[m]
from NAT_1:sch 1(A18, A13);
hence
p in dom (primrec f1,f2,i,p)
by A8, A9, A12; verum