let m be Nat; :: thesis: dom2tuple (AckermannFunction (m + 1)) = primrec ((0 const (Ackermann (m,1))),((AckermannSequence . m) * <:<*(2 proj 2)*>:>),1)
set f = H3(H2(m + 1));
set c = primrec ((0 const H1(m,1)),((AckermannSequence . m) * <:<*(2 proj 2)*>:>),1);
set D = 1 -tuples_on (dom H2(m + 1));
A1: dom H3(H2(m + 1)) = 1 -tuples_on (dom H2(m + 1)) by Def4;
then A2: dom H3(H2(m + 1)) = 1 -tuples_on NAT by FUNCT_2:def 1;
set f1 = 0 const H1(m,1);
set f2 = (AckermannSequence . m) * <:<*(2 proj 2)*>:>;
arity ((AckermannSequence . m) * <:<*(2 proj 2)*>:>) = 0 + 2 by Th35;
then dom (primrec ((0 const H1(m,1)),((AckermannSequence . m) * <:<*(2 proj 2)*>:>),1)) = ((arity (0 const H1(m,1))) + 1) -tuples_on NAT by COMPUT_1:57;
hence dom H3(H2(m + 1)) = dom (primrec ((0 const H1(m,1)),((AckermannSequence . m) * <:<*(2 proj 2)*>:>),1)) by A1, FUNCT_2:def 1; :: according to FUNCT_1:def 11 :: thesis: for b1 being object holds
( not b1 in dom (dom2tuple (AckermannFunction (m + 1))) or (dom2tuple (AckermannFunction (m + 1))) . b1 = (primrec ((0 const (Ackermann (m,1))),((AckermannSequence . m) * <:<*(2 proj 2)*>:>),1)) . b1 )

let x be object ; :: thesis: ( not x in dom (dom2tuple (AckermannFunction (m + 1))) or (dom2tuple (AckermannFunction (m + 1))) . x = (primrec ((0 const (Ackermann (m,1))),((AckermannSequence . m) * <:<*(2 proj 2)*>:>),1)) . x )
assume x in dom H3(H2(m + 1)) ; :: thesis: (dom2tuple (AckermannFunction (m + 1))) . x = (primrec ((0 const (Ackermann (m,1))),((AckermannSequence . m) * <:<*(2 proj 2)*>:>),1)) . x
then consider n being set such that
A3: n in NAT and
A4: x = <*n*> by A2, FINSEQ_2:135;
reconsider n = n as Element of NAT by A3;
dom H2(m + 1) = NAT by FUNCT_2:def 1;
hence H3(H2(m + 1)) . x = H2(m + 1) . n by A4, Def4
.= H1(m + 1,n) by Def3
.= (AckermannSequence . (m + 1)) . <*n*> by Th36
.= (primrec ((0 const H1(m,1)),((AckermannSequence . m) * <:<*(2 proj 2)*>:>),1)) . x by A4, Def13 ;
:: thesis: verum