let i be Nat; [!] . <*i*> = i !
defpred S2[ Nat] means [!] . <*$1*> = $1 ! ;
deffunc H1( Element of NAT , Element of NAT ) -> Element of NAT = $2;
deffunc H2( Element of NAT , Element of NAT ) -> Element of omega = $1 * $2;
deffunc H3( Element of NAT , Element of NAT ) -> Element of NAT = $1;
deffunc H4( Element of NAT ) -> Element of omega = $1 + 1;
set g = [*] * <:<*((1 succ 1) * <:<*(2 proj 1)*>:>),(2 proj 2)*>:>;
deffunc H5( Element of NAT , Element of NAT ) -> Element of omega = H4(H3($1,$2));
A1:
for i, j being Element of NAT holds (2 proj 1) . <*i,j*> = H3(i,j)
A2:
for i being Element of NAT holds (1 succ 1) . <*i*> = H4(i)
for i, j being Element of NAT holds ((1 succ 1) * <:<*(2 proj 1)*>:>) . <*i,j*> = H4(H3(i,j))
from COMPUT_1:sch 1(A2, A1);
then A3:
for i, j being Element of NAT holds ((1 succ 1) * <:<*(2 proj 1)*>:>) . <*i,j*> = H5(i,j)
;
A4:
for i, j being Element of NAT holds (2 proj 2) . <*i,j*> = H1(i,j)
A5:
for i, j being Element of NAT holds [*] . <*i,j*> = H2(i,j)
by Th85;
A6:
for i, j being Element of NAT holds ([*] * <:<*((1 succ 1) * <:<*(2 proj 1)*>:>),(2 proj 2)*>:>) . <*i,j*> = H2(H5(i,j),H1(i,j))
from COMPUT_1:sch 2(A5, A3, A4);
A7:
arity (0 const 1) = 0
;
A8:
arity ([*] * <:<*((1 succ 1) * <:<*(2 proj 1)*>:>),(2 proj 2)*>:>) = 2
by Def21;
A9:
now for i being Nat st S2[i] holds
S2[i + 1]end;
0 -tuples_on NAT = {{}}
by Th5;
then A10:
{} in 0 -tuples_on NAT
by TARSKI:def 1;
[!] . <*0*> =
(0 const 1) . {}
by A7, Th79
.=
0 !
by A10, FUNCOP_1:7, NEWTON:12
;
then A11:
S2[ 0 ]
;
for i being Nat holds S2[i]
from NAT_1:sch 2(A11, A9);
hence
[!] . <*i*> = i !
; verum