let n be Element of NAT ; :: thesis: ( n >= 3 implies U3(n)Turing computes n proj 3 )
assume A1:
n >= 3
; :: thesis: U3(n)Turing computes n proj 3
now let s be
All-State of
U3(n)Turing ;
:: thesis: 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 NAT ex y being Element of NAT st
( (Result s) `2 = h2 & y = (n proj 3) . x & (Result s) `3 storeData <*h2*> ^ <*y*> ) )let t be
Tape of
U3(n)Turing ;
:: thesis: 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 NAT ex y being Element of NAT st
( (Result s) `2 = h2 & y = (n proj 3) . x & (Result s) `3 storeData <*h2*> ^ <*y*> ) )let h be
Element of
NAT ;
:: thesis: 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 NAT ex y being Element of NAT st
( (Result s) `2 = h2 & y = (n proj 3) . x & (Result s) `3 storeData <*h2*> ^ <*y*> ) )let x be
FinSequence of
NAT ;
:: thesis: ( 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 NAT ex y being Element of NAT st
( (Result s) `2 = h2 & y = (n proj 3) . x & (Result s) `3 storeData <*h2*> ^ <*y*> ) ) )set pj =
n proj 3;
assume A2:
(
x in dom (n proj 3) &
s = [the InitS of U3(n)Turing ,h,t] &
t storeData <*h*> ^ x )
;
:: thesis: ( s is Accept-Halt & ex h2 being Element of NAT ex y being Element of NAT st
( (Result s) `2 = h2 & y = (n proj 3) . x & (Result s) `3 storeData <*h2*> ^ <*y*> ) )
arity (n proj 3) = n
by COMPUT_1:41;
then A3:
dom (n proj 3) c= n -tuples_on NAT
by COMPUT_1:24;
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 consider f being
Element of
NAT * such that A4:
(
x = f &
len f = n )
;
A5:
s = [0 ,h,t]
by A2, Def22;
hence
s is
Accept-Halt
by A1, A2, A4, Th42;
:: thesis: ex h2 being Element of NAT ex y being Element of NAT st
( (Result s) `2 = h2 & y = (n proj 3) . x & (Result s) `3 storeData <*h2*> ^ <*y*> )take h2 =
((h + (x /. 1)) + (x /. 2)) + 4;
:: thesis: ex y being Element of NAT st
( (Result s) `2 = h2 & y = (n proj 3) . x & (Result s) `3 storeData <*h2*> ^ <*y*> )take y =
x /. 3;
:: thesis: ( (Result s) `2 = h2 & y = (n proj 3) . x & (Result s) `3 storeData <*h2*> ^ <*y*> )thus
(Result s) `2 = h2
by A1, A2, A4, A5, Th42;
:: thesis: ( y = (n proj 3) . x & (Result s) `3 storeData <*h2*> ^ <*y*> )thus y =
x . 3
by A1, A4, FINSEQ_4:24
.=
(n proj 3) . x
by A2, A3, COMPUT_1:42
;
:: thesis: (Result s) `3 storeData <*h2*> ^ <*y*>
(Result s) `3 storeData <*h2,y*>
by A1, A2, A4, A5, Th42;
hence
(Result s) `3 storeData <*h2*> ^ <*y*>
by FINSEQ_1:def 9;
:: thesis: verum end;
hence
U3(n)Turing computes n proj 3
by Def16; :: thesis: verum