let i, m 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 i in dom p holds
( ( p +* (i,0) in dom (primrec (f1,f2,i)) implies Del (p,i) in dom f1 ) & ( Del (p,i) in dom f1 implies p +* (i,0) in dom (primrec (f1,f2,i)) ) & ( p +* (i,0) in dom (primrec (f1,f2,i)) implies (primrec (f1,f2,i)) . (p +* (i,0)) = f1 . (Del (p,i)) ) & ( p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) implies ( p +* (i,m) in dom (primrec (f1,f2,i)) & (p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2 ) ) & ( p +* (i,m) in dom (primrec (f1,f2,i)) & (p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2 implies p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) ) & ( p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) implies (primrec (f1,f2,i)) . (p +* (i,(m + 1))) = f2 . ((p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*>) ) )
let f1, f2 be non empty NAT * -defined to-naturals homogeneous Function; for p being Element of ((arity f1) + 1) -tuples_on NAT st i in dom p holds
( ( p +* (i,0) in dom (primrec (f1,f2,i)) implies Del (p,i) in dom f1 ) & ( Del (p,i) in dom f1 implies p +* (i,0) in dom (primrec (f1,f2,i)) ) & ( p +* (i,0) in dom (primrec (f1,f2,i)) implies (primrec (f1,f2,i)) . (p +* (i,0)) = f1 . (Del (p,i)) ) & ( p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) implies ( p +* (i,m) in dom (primrec (f1,f2,i)) & (p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2 ) ) & ( p +* (i,m) in dom (primrec (f1,f2,i)) & (p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2 implies p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) ) & ( p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) implies (primrec (f1,f2,i)) . (p +* (i,(m + 1))) = f2 . ((p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*>) ) )
let p be Element of ((arity f1) + 1) -tuples_on NAT; ( i in dom p implies ( ( p +* (i,0) in dom (primrec (f1,f2,i)) implies Del (p,i) in dom f1 ) & ( Del (p,i) in dom f1 implies p +* (i,0) in dom (primrec (f1,f2,i)) ) & ( p +* (i,0) in dom (primrec (f1,f2,i)) implies (primrec (f1,f2,i)) . (p +* (i,0)) = f1 . (Del (p,i)) ) & ( p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) implies ( p +* (i,m) in dom (primrec (f1,f2,i)) & (p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2 ) ) & ( p +* (i,m) in dom (primrec (f1,f2,i)) & (p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2 implies p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) ) & ( p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) implies (primrec (f1,f2,i)) . (p +* (i,(m + 1))) = f2 . ((p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*>) ) ) )
set p0 = p +* (i,0);
consider G being Function of (((arity f1) + 1) -tuples_on NAT),(HFuncs NAT) such that
A1:
primrec (f1,f2,i) = Union G
and
A2:
for p being Element of ((arity f1) + 1) -tuples_on NAT holds G . p = primrec (f1,f2,i,p)
by Def14;
reconsider rngG = rng G as functional compatible set by A1, Th14;
assume A4:
i in dom p
; ( ( p +* (i,0) in dom (primrec (f1,f2,i)) implies Del (p,i) in dom f1 ) & ( Del (p,i) in dom f1 implies p +* (i,0) in dom (primrec (f1,f2,i)) ) & ( p +* (i,0) in dom (primrec (f1,f2,i)) implies (primrec (f1,f2,i)) . (p +* (i,0)) = f1 . (Del (p,i)) ) & ( p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) implies ( p +* (i,m) in dom (primrec (f1,f2,i)) & (p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2 ) ) & ( p +* (i,m) in dom (primrec (f1,f2,i)) & (p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2 implies p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) ) & ( p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) implies (primrec (f1,f2,i)) . (p +* (i,(m + 1))) = f2 . ((p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*>) ) )
A5:
now let k be
Element of
NAT ;
( p +* (i,k) in dom (primrec (f1,f2,i)) implies p +* (i,k) in dom (G . (p +* (i,k))) )assume that A6:
p +* (
i,
k)
in dom (primrec (f1,f2,i))
and A7:
not
p +* (
i,
k)
in dom (G . (p +* (i,k)))
;
contradiction
union rngG <> {}
by A1, A6;
then reconsider rngG =
rng G as non
empty functional compatible set ;
set pk =
p +* (
i,
k);
dom (union rngG) = union { (dom f) where f is Element of rngG : verum }
by Th15;
then consider X being
set such that A8:
p +* (
i,
k)
in X
and A9:
X in { (dom f) where f is Element of rngG : verum }
by A1, A6, TARSKI:def 4;
consider f being
Element of
rngG such that A10:
X = dom f
and
verum
by A9;
consider pp being
set such that A11:
pp in dom G
and A12:
f = G . pp
by FUNCT_1:def 5;
reconsider pp =
pp as
Element of
((arity f1) + 1) -tuples_on NAT by A11;
G . pp = primrec (
f1,
f2,
i,
pp)
by A2;
then A13:
ex
m being
Element of
NAT st
p +* (
i,
k)
= pp +* (
i,
m)
by A8, A10, A12, Th53;
set ppi =
pp . i;
A14:
p +* (
i,
(pp . i)) =
(p +* (i,k)) +* (
i,
(pp . i))
by FUNCT_7:36
.=
pp +* (
i,
(pp . i))
by A13, FUNCT_7:36
.=
pp
by FUNCT_7:37
;
end;
A17:
dom p = dom (p +* (i,0))
by FUNCT_7:32;
A18:
now A19:
p +* (
i,
0)
in {(p +* (i,0))}
by TARSKI:def 1;
A20:
(p +* (i,0)) /. i =
(p +* (i,0)) . i
by A4, A17, PARTFUN1:def 8
.=
0
by A4, FUNCT_7:33
;
consider F being
Function of
NAT,
(HFuncs NAT) such that A21:
primrec (
f1,
f2,
i,
(p +* (i,0)))
= F . ((p +* (i,0)) /. i)
and A22:
(
i in dom (p +* (i,0)) &
Del (
(p +* (i,0)),
i)
in dom f1 implies
F . 0 = ((p +* (i,0)) +* (i,0)) .--> (f1 . (Del ((p +* (i,0)),i))) )
and A23:
( ( not
i in dom (p +* (i,0)) or not
Del (
(p +* (i,0)),
i)
in dom f1 ) implies
F . 0 = {} )
and
for
m being
Element of
NAT holds
S1[
m,
F . m,
F . (m + 1),
p +* (
i,
0),
i,
f2]
by Def13;
A24:
G . (p +* (i,0)) = primrec (
f1,
f2,
i,
(p +* (i,0)))
by A2;
thus
(
p +* (
i,
0)
in dom (G . (p +* (i,0))) iff
Del (
p,
i)
in dom f1 )
( p +* (i,0) in dom (G . (p +* (i,0))) implies (G . (p +* (i,0))) . (p +* (i,0)) = f1 . (Del (p,i)) )proof
thus
(
p +* (
i,
0)
in dom (G . (p +* (i,0))) implies
Del (
p,
i)
in dom f1 )
by A2, A21, A23, A20, Th6, RELAT_1:60;
( Del (p,i) in dom f1 implies p +* (i,0) in dom (G . (p +* (i,0))) )
assume
Del (
p,
i)
in dom f1
;
p +* (i,0) in dom (G . (p +* (i,0)))
then dom (F . 0) =
{((p +* (i,0)) +* (i,0))}
by A4, A22, Th6, FUNCOP_1:19, FUNCT_7:32
.=
{(p +* (i,0))}
by FUNCT_7:36
;
hence
p +* (
i,
0)
in dom (G . (p +* (i,0)))
by A24, A21, A20, TARSKI:def 1;
verum
end; assume
p +* (
i,
0)
in dom (G . (p +* (i,0)))
;
(G . (p +* (i,0))) . (p +* (i,0)) = f1 . (Del (p,i))then
F . 0 = {(p +* (i,0))} --> (f1 . (Del ((p +* (i,0)),i)))
by A2, A21, A22, A23, A20, FUNCT_7:36, RELAT_1:60;
then
F . 0 = {(p +* (i,0))} --> (f1 . (Del (p,i)))
by Th6;
hence
(G . (p +* (i,0))) . (p +* (i,0)) = f1 . (Del (p,i))
by A24, A21, A20, A19, FUNCOP_1:13;
verum end;
set pm1 = p +* (i,(m + 1));
set pm = p +* (i,m);
set pc = <*((G . (p +* (i,(m + 1)))) . ((p +* (i,(m + 1))) +* (i,m)))*>;
A25:
dom G = ((arity f1) + 1) -tuples_on NAT
by FUNCT_2:def 1;
then A26:
G . (p +* (i,(m + 1))) in rng G
by FUNCT_1:def 5;
reconsider rngG = rngG as non empty functional compatible set ;
A27:
G . (p +* (i,0)) in rng G
by A25, FUNCT_1:def 5;
thus
( p +* (i,0) in dom (primrec (f1,f2,i)) iff Del (p,i) in dom f1 )
( ( p +* (i,0) in dom (primrec (f1,f2,i)) implies (primrec (f1,f2,i)) . (p +* (i,0)) = f1 . (Del (p,i)) ) & ( p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) implies ( p +* (i,m) in dom (primrec (f1,f2,i)) & (p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2 ) ) & ( p +* (i,m) in dom (primrec (f1,f2,i)) & (p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2 implies p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) ) & ( p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) implies (primrec (f1,f2,i)) . (p +* (i,(m + 1))) = f2 . ((p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*>) ) )proof
thus
(
p +* (
i,
0)
in dom (primrec (f1,f2,i)) implies
Del (
p,
i)
in dom f1 )
by A5, A18;
( Del (p,i) in dom f1 implies p +* (i,0) in dom (primrec (f1,f2,i)) )
assume A28:
Del (
p,
i)
in dom f1
;
p +* (i,0) in dom (primrec (f1,f2,i))
dom (G . (p +* (i,0))) in { (dom f) where f is Element of rngG : verum }
by A27;
then
p +* (
i,
0)
in union { (dom f) where f is Element of rngG : verum }
by A18, A28, TARSKI:def 4;
hence
p +* (
i,
0)
in dom (primrec (f1,f2,i))
by A1, Th15;
verum
end;
hereby ( ( p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) implies ( p +* (i,m) in dom (primrec (f1,f2,i)) & (p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2 ) ) & ( p +* (i,m) in dom (primrec (f1,f2,i)) & (p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2 implies p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) ) & ( p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) implies (primrec (f1,f2,i)) . (p +* (i,(m + 1))) = f2 . ((p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*>) ) )
assume A29:
p +* (
i,
0)
in dom (primrec (f1,f2,i))
;
(primrec (f1,f2,i)) . (p +* (i,0)) = f1 . (Del (p,i))then
p +* (
i,
0)
in dom (G . (p +* (i,0)))
by A5;
then
(union rngG) . (p +* (i,0)) = (G . (p +* (i,0))) . (p +* (i,0))
by A27, Th16;
hence
(primrec (f1,f2,i)) . (p +* (i,0)) = f1 . (Del (p,i))
by A1, A5, A18, A29;
verum
end;
A30:
dom p = dom (p +* (i,(m + 1)))
by FUNCT_7:32;
A31:
(p +* (i,(m + 1))) +* (i,(m + 1)) = p +* (i,(m + 1))
by FUNCT_7:36;
A32:
(p +* (i,(m + 1))) +* (i,m) = p +* (i,m)
by FUNCT_7:36;
A33:
dom p = dom (p +* (i,m))
by FUNCT_7:32;
A34:
now A35:
(p +* (i,m)) /. i =
(p +* (i,m)) . i
by A4, A33, PARTFUN1:def 8
.=
m
by A4, FUNCT_7:33
;
consider F being
Function of
NAT,
(HFuncs NAT) such that A36:
primrec (
f1,
f2,
i,
(p +* (i,m)))
= F . ((p +* (i,m)) /. i)
and A37:
(
i in dom (p +* (i,m)) &
Del (
(p +* (i,m)),
i)
in dom f1 implies
F . 0 = ((p +* (i,m)) +* (i,0)) .--> (f1 . (Del ((p +* (i,m)),i))) )
and A38:
( ( not
i in dom (p +* (i,m)) or not
Del (
(p +* (i,m)),
i)
in dom f1 ) implies
F . 0 = {} )
and A39:
for
M being
Element of
NAT holds
S1[
M,
F . M,
F . (M + 1),
p +* (
i,
m),
i,
f2]
by Def13;
A40:
G . (p +* (i,(m + 1))) = primrec (
f1,
f2,
i,
(p +* (i,(m + 1))))
by A2;
consider F1 being
Function of
NAT,
(HFuncs NAT) such that A41:
primrec (
f1,
f2,
i,
(p +* (i,(m + 1))))
= F1 . ((p +* (i,(m + 1))) /. i)
and A42:
(
i in dom (p +* (i,(m + 1))) &
Del (
(p +* (i,(m + 1))),
i)
in dom f1 implies
F1 . 0 = ((p +* (i,(m + 1))) +* (i,0)) .--> (f1 . (Del ((p +* (i,(m + 1))),i))) )
and A43:
( ( not
i in dom (p +* (i,(m + 1))) or not
Del (
(p +* (i,(m + 1))),
i)
in dom f1 ) implies
F1 . 0 = {} )
and A44:
for
M being
Element of
NAT holds
S1[
M,
F1 . M,
F1 . (M + 1),
p +* (
i,
(m + 1)),
i,
f2]
by Def13;
A45:
(F1 . (m + 1)) . (p +* (i,m)) = (F1 . m) . (p +* (i,m))
by A4, A42, A43, A44, Lm3;
A46:
p +* (
i,
(m + 1))
in {(p +* (i,(m + 1)))}
by TARSKI:def 1;
then A47:
p +* (
i,
(m + 1))
in dom ({(p +* (i,(m + 1)))} --> (f2 . ((p +* (i,m)) ^ <*((F1 . m) . (p +* (i,m)))*>)))
by FUNCOP_1:19;
A48:
G . (p +* (i,m)) = primrec (
f1,
f2,
i,
(p +* (i,m)))
by A2;
A49:
(p +* (i,(m + 1))) /. i =
(p +* (i,(m + 1))) . i
by A4, A30, PARTFUN1:def 8
.=
m + 1
by A4, FUNCT_7:33
;
A50:
F1 . m = F . m
by A42, A43, A44, A37, A38, A39, Lm2;
A51:
not
p +* (
i,
(m + 1))
in dom (F1 . m)
by A4, A42, A43, A44, Lm3;
thus A52:
(
p +* (
i,
(m + 1))
in dom (G . (p +* (i,(m + 1)))) iff (
p +* (
i,
m)
in dom (G . (p +* (i,m))) &
(p +* (i,m)) ^ <*((G . (p +* (i,(m + 1)))) . ((p +* (i,(m + 1))) +* (i,m)))*> in dom f2 ) )
( p +* (i,(m + 1)) in dom (G . (p +* (i,(m + 1)))) implies (G . (p +* (i,(m + 1)))) . (p +* (i,(m + 1))) = f2 . ((p +* (i,m)) ^ <*((G . (p +* (i,(m + 1)))) . ((p +* (i,(m + 1))) +* (i,m)))*>) )proof
hereby ( p +* (i,m) in dom (G . (p +* (i,m))) & (p +* (i,m)) ^ <*((G . (p +* (i,(m + 1)))) . ((p +* (i,(m + 1))) +* (i,m)))*> in dom f2 implies p +* (i,(m + 1)) in dom (G . (p +* (i,(m + 1)))) )
assume A53:
p +* (
i,
(m + 1))
in dom (G . (p +* (i,(m + 1))))
;
( p +* (i,m) in dom (G . (p +* (i,m))) & (p +* (i,m)) ^ <*((G . (p +* (i,(m + 1)))) . ((p +* (i,(m + 1))) +* (i,m)))*> in dom f2 )then A54:
p +* (
i,
(m + 1))
in dom (F1 . (m + 1))
by A2, A41, A49;
assume A55:
( not
p +* (
i,
m)
in dom (G . (p +* (i,m))) or not
(p +* (i,m)) ^ <*((G . (p +* (i,(m + 1)))) . ((p +* (i,(m + 1))) +* (i,m)))*> in dom f2 )
;
contradiction
end;
assume that A56:
p +* (
i,
m)
in dom (G . (p +* (i,m)))
and A57:
(p +* (i,m)) ^ <*((G . (p +* (i,(m + 1)))) . ((p +* (i,(m + 1))) +* (i,m)))*> in dom f2
;
p +* (i,(m + 1)) in dom (G . (p +* (i,(m + 1))))
p +* (
i,
(m + 1))
in {(p +* (i,(m + 1)))}
by TARSKI:def 1;
then
p +* (
i,
(m + 1))
in dom ({(p +* (i,(m + 1)))} --> (f2 . ((p +* (i,m)) ^ <*((F1 . m) . (p +* (i,m)))*>)))
by FUNCOP_1:19;
then A58:
p +* (
i,
(m + 1))
in (dom (F1 . m)) \/ (dom ({(p +* (i,(m + 1)))} --> (f2 . ((p +* (i,m)) ^ <*((F1 . m) . (p +* (i,m)))*>))))
by XBOOLE_0:def 3;
F1 . (m + 1) = (F1 . m) +* ((p +* (i,(m + 1))) .--> (f2 . ((p +* (i,m)) ^ <*((F1 . m) . (p +* (i,m)))*>)))
by A4, A30, A32, A31, A40, A48, A41, A44, A36, A49, A35, A50, A45, A56, A57;
hence
p +* (
i,
(m + 1))
in dom (G . (p +* (i,(m + 1))))
by A40, A41, A49, A58, FUNCT_4:def 1;
verum
end; assume A59:
p +* (
i,
(m + 1))
in dom (G . (p +* (i,(m + 1))))
;
(G . (p +* (i,(m + 1)))) . (p +* (i,(m + 1))) = f2 . ((p +* (i,m)) ^ <*((G . (p +* (i,(m + 1)))) . ((p +* (i,(m + 1))) +* (i,m)))*>)then
(p +* (i,m)) ^ <*((F1 . m) . (p +* (i,m)))*> in dom f2
by A32, A40, A41, A44, A49, A52;
then
F1 . (m + 1) = (F1 . m) +* ((p +* (i,(m + 1))) .--> (f2 . ((p +* (i,m)) ^ <*((F1 . m) . (p +* (i,m)))*>)))
by A4, A30, A32, A31, A48, A44, A36, A35, A50, A52, A59;
hence (G . (p +* (i,(m + 1)))) . (p +* (i,(m + 1))) =
({(p +* (i,(m + 1)))} --> (f2 . ((p +* (i,m)) ^ <*((F1 . m) . (p +* (i,m)))*>))) . (p +* (i,(m + 1)))
by A40, A41, A49, A47, FUNCT_4:14
.=
f2 . ((p +* (i,m)) ^ <*((G . (p +* (i,(m + 1)))) . ((p +* (i,(m + 1))) +* (i,m)))*>)
by A32, A40, A41, A49, A45, A46, FUNCOP_1:13
;
verum end;
thus
( p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) iff ( p +* (i,m) in dom (primrec (f1,f2,i)) & (p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2 ) )
( p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) implies (primrec (f1,f2,i)) . (p +* (i,(m + 1))) = f2 . ((p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*>) )proof
hereby ( p +* (i,m) in dom (primrec (f1,f2,i)) & (p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2 implies p +* (i,(m + 1)) in dom (primrec (f1,f2,i)) )
assume A60:
p +* (
i,
(m + 1))
in dom (primrec (f1,f2,i))
;
( p +* (i,m) in dom (primrec (f1,f2,i)) & (p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2 )
G . (p +* (i,m)) in rng G
by A25, FUNCT_1:def 5;
then
dom (G . (p +* (i,m))) in { (dom f) where f is Element of rngG : verum }
;
then
p +* (
i,
m)
in union { (dom f) where f is Element of rngG : verum }
by A5, A34, A60, TARSKI:def 4;
hence
p +* (
i,
m)
in dom (primrec (f1,f2,i))
by A1, Th15;
(p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2A61:
G . (p +* (i,(m + 1))) in rng G
by A25, FUNCT_1:def 5;
dom (G . (p +* (i,m))) c= dom (G . (p +* (i,(m + 1))))
by A4, A2, Lm4;
then
(union rngG) . (p +* (i,m)) = (G . (p +* (i,(m + 1)))) . (p +* (i,m))
by A5, A34, A60, A61, Th16;
hence
(p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2
by A1, A5, A34, A60, FUNCT_7:36;
verum
end;
assume that A62:
p +* (
i,
m)
in dom (primrec (f1,f2,i))
and A63:
(p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*> in dom f2
;
p +* (i,(m + 1)) in dom (primrec (f1,f2,i))
A64:
G . (p +* (i,(m + 1))) in rng G
by A25, FUNCT_1:def 5;
G . (p +* (i,(m + 1))) in rng G
by A25, FUNCT_1:def 5;
then A65:
dom (G . (p +* (i,(m + 1)))) in { (dom f) where f is Element of rngG : verum }
;
A66:
dom (G . (p +* (i,m))) c= dom (G . (p +* (i,(m + 1))))
by A4, A2, Lm4;
p +* (
i,
m)
in dom (G . (p +* (i,m)))
by A5, A62;
then
p +* (
i,
(m + 1))
in union { (dom f) where f is Element of rngG : verum }
by A1, A32, A34, A63, A65, A64, A66, Th16, TARSKI:def 4;
hence
p +* (
i,
(m + 1))
in dom (primrec (f1,f2,i))
by A1, Th15;
verum
end;
assume A67:
p +* (i,(m + 1)) in dom (primrec (f1,f2,i))
; (primrec (f1,f2,i)) . (p +* (i,(m + 1))) = f2 . ((p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*>)
A68:
dom (G . (p +* (i,m))) c= dom (G . (p +* (i,(m + 1))))
by A4, A2, Lm4;
then A69:
(union rngG) . (p +* (i,(m + 1))) = (G . (p +* (i,(m + 1)))) . (p +* (i,(m + 1)))
by A5, A67, A26, Th16;
(union rngG) . (p +* (i,m)) = (G . (p +* (i,(m + 1)))) . (p +* (i,m))
by A5, A34, A67, A26, A68, Th16;
hence
(primrec (f1,f2,i)) . (p +* (i,(m + 1))) = f2 . ((p +* (i,m)) ^ <*((primrec (f1,f2,i)) . (p +* (i,m)))*>)
by A1, A5, A34, A67, A69, FUNCT_7:36; verum