reserve x,X for set,
        r,r1,r2,s for Real,
        i,j,k,m,n for Nat;
reserve p,q for Point of TOP-REAL n;
reserve f,f1,f2 for homogeneous additive Function of TOP-REAL n,TOP-REAL n;

theorem Th32:
  for A be Subset of TOP-REAL n st f is rotation & f|A = id A
    for i st i in Seg n & Base_FinSeq(n,i) in Lin A holds f.p.i = p.i
proof
  set TR=TOP-REAL n;
  let A be Subset of TR such that
  A1: f is rotation and
  A2: f|A=id A;
  set L=Lin A,n0=0*n;
  A3: f|L=id L by A2,Th31;
  A4: len n0=n by CARD_1:def 7;
  then A5: dom n0=Seg n by FINSEQ_1:def 3;
  let k such that
  A6: k in Seg n and
  A7: Base_FinSeq(n,k) in L;
  set n0k=n0+*(k,1);
  A8: n0k=Base_FinSeq(n,k) by MATRIXR2:def 4;
  set pk=p.k;
  the carrier of L c=the carrier of TR by RLSUB_1:def 2;
  then A9: f|L=f| (the carrier of L) by TMAP_1:def 3;
  dom n0k=dom n0 by FUNCT_7:30;
  then A10: len n0k=n by A4,FINSEQ_3:29;
  A11: n0k=@@n0k;
  then reconsider N0k=n0k as Point of TR by A10,TOPREAL3:46;
  A12: n0k is Element of n-tuples_on REAL by A10,A11,FINSEQ_2:92;
  A13: for p st p.k<>0 holds f.p.k=p.k
  proof
    let p;
    assume A14: p.k<>0;
    set fp=f.p,pk=p.k;
    set pN=pk*N0k;
    set ppN=p-pN;
    A15: f.ppN+f.pN=f.(ppN+pN) by VECTSP_1:def 20;
    len(f.ppN)=n & len(f.pN)=n by CARD_1:def 7;
    then A16: |.f.(ppN+pN).|^2=|.f.ppN.|^2+2*|(f.pN,f.ppN)|+|.f.pN.|^2
      by A15,EUCLID_2:11;
    A17: (n|->pk).k=pk by A6,FINSEQ_2:57;
    A18: pk*n0k=mlt(n|->pk,n0k) by A12,RVSUM_1:63
    .=0*n+*(k,pk*1) by A17,TOPREALC:15
    .=0*n+*(k,pk);
    len fp=n by CARD_1:def 7;
    then A19: dom fp=Seg n by FINSEQ_1:def 3;
    A20: len ppN=n by CARD_1:def 7;
    then dom ppN=Seg n by FINSEQ_1:def 3;
    then A21: ppN.k=pk-pN.k by A6,VALUED_1:13;
    len pN=n by CARD_1:def 7;
    then A22: |.ppN+pN.|^2=|.ppN.|^2+2*|(pN,ppN)|+|.pN.|^2 by A20,EUCLID_2:11;
    pN in L by A7,A8,RLSUB_1:21;
    then A23: pN in the carrier of L;
    then A24: pN=(f|L).pN by A3,FUNCT_1:17
    .=f.pN by A9,A23,FUNCT_1:49;
    |.ppN+pN.|=|.f.(ppN+pN).| & |.ppN.|=|.f.ppN.| by A1;
    then |(pN,ppN)| =pk*((f.ppN).k) by A18,A16,A22,A24,TOPREALC:16;
    then A25: pk*(ppN.k)=pk*((f.ppN).k) by A18,TOPREALC:16;
    pN.k=pk by A6,A5,A18,FUNCT_7:31;
    then A26: (f.ppN).k=0 by A14,A21,A25;
    ppN+pN=p-(pN-pN) by RLVECT_1:29
    .=p-0.TR by RLVECT_1:5
    .=p by RLVECT_1:13;
    then fp.k=(f.ppN.k)+f.pN.k by A6,A15,A19,VALUED_1:def 1
    .=(f.ppN.k)+pk by A6,A5,A18,A24,FUNCT_7:31;
    hence thesis by A26;
  end;
  per cases;
  suppose p.k<>0;
    hence thesis by A13;
  end;
  suppose p.k=0;
    len(f.p)=n by CARD_1:def 7;
    then A27: |.f.p+N0k.|^2=|.f.p.|^2+2*|(N0k,f.p)|+|.N0k.|^2
      by A10,EUCLID_2:11;
    len p=n by CARD_1:def 7;
    then A28: |.p+N0k.|^2=|.p.|^2+2*|(N0k,p)|+|.N0k.|^2 by A10,EUCLID_2:11;
    A29: N0k in the carrier of L by A7,A8;
    then N0k=(f|L).N0k by A3,FUNCT_1:17
    .=f.N0k by A9,A29,FUNCT_1:49;
    then A30: f.(p+N0k)=f.p+N0k by VECTSP_1:def 20;
    |.p+N0k.|=|.f.(p+N0k).| & |.f.p.|=|.p.| by A1;
    then |(N0k,f.p)| =1*(p.k) by A27,A28,A30,TOPREALC:16;
    then p.k=1*(f.p.k) by TOPREALC:16;
    hence thesis;
  end;
end;
