let n be Nat; ( n >= 3 implies U3(n)Turing computes n proj 3 )
assume A1:
n >= 3
; U3(n)Turing computes n proj 3
now for s being All-State of U3(n)Turing
for t being Tape of U3(n)Turing
for h being Element of NAT
for x being FinSequence of NAT st x in dom (n proj 3) & s = [ the InitS of U3(n)Turing,h,t] & t storeData <*h*> ^ x holds
( s is Accept-Halt & ex h2 being Element of omega ex y being Element of NAT st
( (Result s) `2_3 = h2 & y = (n proj 3) . x & (Result s) `3_3 storeData <*h2*> ^ <*y*> ) )set pj =
n proj 3;
let s be
All-State of
U3(n)Turing;
for t being Tape of U3(n)Turing
for h being Element of NAT
for x being FinSequence of NAT st x in dom (n proj 3) & s = [ the InitS of U3(n)Turing,h,t] & t storeData <*h*> ^ x holds
( s is Accept-Halt & ex h2 being Element of omega ex y being Element of NAT st
( (Result s) `2_3 = h2 & y = (n proj 3) . x & (Result s) `3_3 storeData <*h2*> ^ <*y*> ) )let t be
Tape of
U3(n)Turing;
for h being Element of NAT
for x being FinSequence of NAT st x in dom (n proj 3) & s = [ the InitS of U3(n)Turing,h,t] & t storeData <*h*> ^ x holds
( s is Accept-Halt & ex h2 being Element of omega ex y being Element of NAT st
( (Result s) `2_3 = h2 & y = (n proj 3) . x & (Result s) `3_3 storeData <*h2*> ^ <*y*> ) )let h be
Element of
NAT ;
for x being FinSequence of NAT st x in dom (n proj 3) & s = [ the InitS of U3(n)Turing,h,t] & t storeData <*h*> ^ x holds
( s is Accept-Halt & ex h2 being Element of omega ex y being Element of NAT st
( (Result s) `2_3 = h2 & y = (n proj 3) . x & (Result s) `3_3 storeData <*h2*> ^ <*y*> ) )let x be
FinSequence of
NAT ;
( x in dom (n proj 3) & s = [ the InitS of U3(n)Turing,h,t] & t storeData <*h*> ^ x implies ( s is Accept-Halt & ex h2 being Element of omega ex y being Element of NAT st
( (Result s) `2_3 = h2 & y = (n proj 3) . x & (Result s) `3_3 storeData <*h2*> ^ <*y*> ) ) )assume that A2:
x in dom (n proj 3)
and A3:
s = [ the InitS of U3(n)Turing,h,t]
and A4:
t storeData <*h*> ^ x
;
( s is Accept-Halt & ex h2 being Element of omega ex y being Element of NAT st
( (Result s) `2_3 = h2 & y = (n proj 3) . x & (Result s) `3_3 storeData <*h2*> ^ <*y*> ) )reconsider nn =
n as
Element of
NAT by ORDINAL1:def 12;
set pj =
nn proj 3;
arity (nn proj 3) = n
;
then A5:
dom (nn proj 3) c= n -tuples_on NAT
by COMPUT_1:21;
then
x in n -tuples_on NAT
by A2;
then
x in { f where f is Element of NAT * : len f = n }
by FINSEQ_2:def 4;
then A6:
ex
f being
Element of
NAT * st
(
x = f &
len f = n )
;
A7:
s = [0,h,t]
by A3, Def21;
hence
s is
Accept-Halt
by A1, A4, A6, Th37;
ex h2 being Element of omega ex y being Element of NAT st
( (Result s) `2_3 = h2 & y = (n proj 3) . x & (Result s) `3_3 storeData <*h2*> ^ <*y*> )take h2 =
((h + (x /. 1)) + (x /. 2)) + 4;
ex y being Element of NAT st
( (Result s) `2_3 = h2 & y = (n proj 3) . x & (Result s) `3_3 storeData <*h2*> ^ <*y*> )take y =
x /. 3;
( (Result s) `2_3 = h2 & y = (n proj 3) . x & (Result s) `3_3 storeData <*h2*> ^ <*y*> )thus
(Result s) `2_3 = h2
by A1, A4, A6, A7, Th37;
( y = (n proj 3) . x & (Result s) `3_3 storeData <*h2*> ^ <*y*> )thus y =
x . 3
by A1, A6, FINSEQ_4:15
.=
(nn proj 3) . x
by A2, A5, COMPUT_1:38
.=
(n proj 3) . x
;
(Result s) `3_3 storeData <*h2*> ^ <*y*>
(Result s) `3_3 storeData <*h2,y*>
by A1, A4, A6, A7, Th37;
hence
(Result s) `3_3 storeData <*h2*> ^ <*y*>
;
verum end;
hence
U3(n)Turing computes n proj 3
; verum