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)
A3:
for i, j being Element of NAT holds (2 proj 1) . <*i,j*> = H2(i,j)
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)
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 ]
for i being Element of NAT holds S2[i]
from NAT_1:sch 1(A10, A11);
hence
[!] . <*i*> = i !
; :: thesis: verum