let i be Element of NAT ; :: thesis: [!] . <*i*> = i !
set g = [*] * <:<*((1 succ 1) * <:<*(2 proj 1)*>:>),(2 proj 2)*>:>;
deffunc H1( Element of NAT ) -> Element of NAT = $1 + 1;
deffunc H2( Element of NAT , Element of NAT ) -> Element of NAT = $1;
deffunc H3( Element of NAT , Element of NAT ) -> Element of NAT = $1 * $2;
deffunc H4( Element of NAT , Element of NAT ) -> Element of NAT = H1(H2($1,$2));
deffunc H5( Element of NAT , Element of NAT ) -> Element of NAT = $2;
A1: for i, j being Element of NAT holds [*] . <*i,j*> = H3(i,j) by Th90;
A2: for i being Element of NAT holds (1 succ 1) . <*i*> = H1(i)
proof
let i be Element of NAT ; :: thesis: (1 succ 1) . <*i*> = H1(i)
reconsider ij = <*i*> as Element of 1 -tuples_on NAT ;
thus (1 succ 1) . <*i*> = (ij /. 1) + 1 by Def10
.= i + 1 by FINSEQ_4:25 ; :: thesis: verum
end;
A3: for i, j being Element of NAT holds (2 proj 1) . <*i,j*> = H2(i,j)
proof
let i, j be Element of NAT ; :: thesis: (2 proj 1) . <*i,j*> = H2(i,j)
reconsider ij = <*i,j*> as Element of 2 -tuples_on NAT by FINSEQ_2:121;
thus (2 proj 1) . <*i,j*> = ij . 1 by Th42
.= i by FINSEQ_1:61 ; :: thesis: verum
end;
for i, j being Element of NAT holds ((1 succ 1) * <:<*(2 proj 1)*>:>) . <*i,j*> = H1(H2(i,j)) from COMPUT_1:sch 1(A2, A3);
then A4: for i, j being Element of NAT holds ((1 succ 1) * <:<*(2 proj 1)*>:>) . <*i,j*> = H4(i,j) ;
A5: for i, j being Element of NAT holds (2 proj 2) . <*i,j*> = H5(i,j)
proof
let i, j be Element of NAT ; :: thesis: (2 proj 2) . <*i,j*> = H5(i,j)
reconsider ij = <*i,j*> as Element of 2 -tuples_on NAT by FINSEQ_2:121;
thus (2 proj 2) . <*i,j*> = ij . 2 by Th42
.= j by FINSEQ_1:61 ; :: thesis: verum
end;
A6: for i, j being Element of NAT holds ([*] * <:<*((1 succ 1) * <:<*(2 proj 1)*>:>),(2 proj 2)*>:>) . <*i,j*> = H3(H4(i,j),H5(i,j)) from COMPUT_1:sch 2(A1, A4, A5);
A7: arity ([*] * <:<*((1 succ 1) * <:<*(2 proj 1)*>:>),(2 proj 2)*>:>) = 2 by Def26;
A8: arity (0 const 1) = 0 by Th35;
0 -tuples_on NAT = {{} } by Th8;
then A9: {} in 0 -tuples_on NAT by TARSKI:def 1;
defpred S2[ Element of NAT ] means [!] . <*$1*> = $1 ! ;
A10: S2[ 0 ]
proof
thus [!] . <*0 *> = (0 const 1) . {} by A8, Th84
.= 0 ! by A9, FUNCOP_1:13, NEWTON:18 ; :: thesis: verum
end;
A11: now
let i be Element of NAT ; :: thesis: ( S2[i] implies S2[i + 1] )
assume A12: S2[i] ; :: thesis: S2[i + 1]
reconsider ie = i ! as Element of NAT ;
[!] . <*(i + 1)*> = ([*] * <:<*((1 succ 1) * <:<*(2 proj 1)*>:>),(2 proj 2)*>:>) . <*i,ie*> by A7, A8, A12, Th86
.= (i + 1) * ie by A6
.= (i + 1) ! by NEWTON:21 ;
hence S2[i + 1] ; :: thesis: verum
end;
for i being Element of NAT holds S2[i] from NAT_1:sch 1(A10, A11);
hence [!] . <*i*> = i ! ; :: thesis: verum