reserve n,i,j,k for Nat;
reserve T for TuringStr,
  s for All-State of T;

theorem
  n >= 3 implies U3(n)Turing computes n proj 3
proof
  assume
A1: n >= 3;
  now
    set pj=n proj 3;
    let s be All-State of U3(n)Turing,t be Tape of U3(n)Turing, h be Element
    of NAT, x be FinSequence of NAT;
    assume that
A2: x in dom pj and
A3: s=[the InitS of U3(n)Turing,h,t] and
A4: t storeData <*h*>^x;
    reconsider nn=n as Element of NAT by ORDINAL1:def 12;
    set pj=nn proj 3;
    arity pj = n;
    then
A5: dom pj 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 be 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;
    take h2=h+x/.1+x/.2+4;
    take y=x/.3;
    thus (Result s)`2_3=h2 by A1,A4,A6,A7,Th37;
    thus y=x.3 by A1,A6,FINSEQ_4:15
      .=pj.x by A2,A5,COMPUT_1:38
      .=(n proj 3).x;
    (Result s)`3_3 storeData <*h2,y*> by A1,A4,A6,A7,Th37;
    hence (Result s)`3_3 storeData <*h2*>^<*y*>;
  end;
  hence thesis;
end;
