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