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 Th35:
  f is {i}-support-yielding rotation implies
    AutMt f = AxialSymmetry(i,n) or AutMt f = 1.(F_Real,n)
proof
  set TR=TOP-REAL n;
  set S={Base_FinSeq(n,j) where j is Element of NAT:1<=j & j<=n};
  S c=the carrier of TR
  proof
    let x be object;
    assume x in S;
    then consider j be Element of NAT such that
    A1: x=Base_FinSeq(n,j) and 1<=j & j<=n;
    len Base_FinSeq(n,j)=n by MATRIXR2:74;
    hence thesis by A1,TOPREAL3:46;
  end;
  then reconsider S as Subset of TR;
  set M=Mx2Tran AxialSymmetry(n,i);
  assume A2: f is{i}-support-yielding rotation;
  A3: id TR=Mx2Tran 1.(F_Real,n) by MATRTOP1:33;
  then A4: AutMt id TR=1.(F_Real,n) by Def6;
  A5: dom f=the carrier of TR by FUNCT_2:52;
  per cases;
  suppose A6: not i in Seg n;
    now let p be Point of TR;
      A7: now let j;
         assume 1<=j & j<=n;
         then j<>i by A6;
         then not j in {i} by TARSKI:def 1;
         hence f.p.j=p.j by A2,A5;
      end;
      len(f.p)=n & len p=n by CARD_1:def 7;
      hence f.p=p by A7;
    end;
    then f =id TR by FUNCT_2:124;
    hence thesis by A3,Def6;
  end;
  suppose A8: i in Seg n;
    then 1<=i & i<=n by FINSEQ_1:1;
    then Base_FinSeq(n,i) in S by A8;
    then reconsider B=Base_FinSeq(n,i) as Point of TR;
    B=0*n+*(i,1) by MATRIXR2:def 4;
    then A9: |.B.|=|.1 .| by A8,TOPREALC:13
    .=1 by ABSVALUE:def 1;
    set B0=0*n+*(i,f.B.i);
    A10: len(0*n)=n by CARD_1:def 7;
    A11: for j st 1<=j & j<=n holds f.B.j=B0.j
    proof
      let j;
      assume A12: 1<=j & j<=n;
      A13: j in dom(0*n) by A10,A12,FINSEQ_3:25;
      per cases;
      suppose j=i;
        hence B0.j=f.B.j by A13,FUNCT_7:31;
      end;
      suppose A14: j<>i;
        then A15: not j in {i} by TARSKI:def 1;
        thus B0.j=(0*n).j by A14,FUNCT_7:32
        .=0
        .=B.j by A12,A14,MATRIXR2:76
        .=f.B.j by A2,A5,A15;
      end;
    end;
    len B0=len(0*n) & len(f.B)=n by CARD_1:def 7,FUNCT_7:97;
    then A16: f.B=B0 by A10,A11;
    then A17: |.B.|=|.B0.| by A2
    .=|.f.B.i.| by A8,TOPREALC:13;
    A18: for h be homogeneous additive rotation Function of TR,TR st
      h|S = id S holds h = id TR
    proof
      let h be homogeneous additive rotation Function of TR,TR;
      assume A19: h|S=id S;
      A20: for x being object st x in dom id TR holds(id TR).x=h.x
      proof
        let x be object;
        assume  x in dom id TR;
        then reconsider p=x as Point of TR;
        set hp=h.p;
        A21: len p=n & len hp=n by CARD_1:def 7;
        A22: now let j;
          assume A23: 1<=j & j<=n;
          then A24: j in Seg n;
          then Base_FinSeq(n,j) in S by A23;
          then Base_FinSeq(n,j) in Lin S by RLVECT_3:15;
          hence p.j=hp.j by A19,A24,Th32;
        end;
        thus thesis by A21,A22;
      end;
      dom h=the carrier of TR by FUNCT_2:def 1;
      hence thesis by A20,FUNCT_1:2;
    end;
    per cases;
    suppose A25: f.B.i>=0;
      A26: dom(f|S)=S by A5,RELAT_1:62;
      A27: f.B.i=1 by A9,A17,A25,ABSVALUE:def 1;
      A28: for x being object st x in S holds(f|S).x=(id S).x
      proof
        let x be object;
        assume A29: x in S;
        then consider j be Element of NAT such that
        A30: x=Base_FinSeq(n,j) and
        1<=j and
        j<=n;
        A31: (f|S).x=f.x & (id S).x=x by A26,A29,FUNCT_1:17,47;
        per cases;
        suppose j=i;
          hence thesis by A16,A27,A30,A31,MATRIXR2:def 4;
        end;
        suppose j<>i;
          then not j in {i} by TARSKI:def 1;
          hence thesis by A2,A30,A31,Lm9;
        end;
      end;
      dom(id S)=S;
      hence thesis by A2,A4,A18,A26,A28,FUNCT_1:2;
    end;
    suppose A32: f.B.i<0;
      set MA=Mx2Tran AxialSymmetry(i,n);
      MA is rotation by A8,Th27;
      then reconsider MAf=MA*f as
        homogeneous additive rotation Function of TR,TR by A2;
      A33: dom MAf=the carrier of TR by FUNCT_2:52;
      then A34: dom(MAf|S)=S by RELAT_1:62;
      A35: (MA is{i}-support-yielding) & {i}\/{i}={i} by A8,Th11;
      A36: for x being object st x in S holds(MAf|S).x=(id S).x
      proof
        let x be object;
        assume A37: x in S;
        then consider j be Element of NAT such that
        A38: x=Base_FinSeq(n,j) and 1<=j & j<=n;
        A39: (MAf|S).x=MAf.x & (id S).x=x by A34,A37,FUNCT_1:17,47;
        per cases;
        suppose A40: j=i;
          A41: for k st 1<=k & k<=n holds MAf.B.k=B.k
          proof
            let k;
            assume A42: 1<=k & k<=n;
            then A43: k in Seg n;
            per cases;
            suppose A44: k=i;
              thus MAf.B.k=MA.(f.B).k by A33,FUNCT_1:12
              .=-(f.B).k by A43,A44,Th9
              .=--1 by A9,A17,A32,A44,ABSVALUE:def 1
              .=B.k by A42,A44,MATRIXR2:75;
            end;
            suppose A45: k<>i;
              then A46: not k in {i} by TARSKI:def 1;
              thus MAf.B.k=MA.(f.B).k by A33,FUNCT_1:12
              .=(f.B).k by A8,A45,Th8
              .=B.k by A2,A5,A46;
            end;
          end;
          len(MAf.B)=n & len B=n by CARD_1:def 7;
          hence thesis by A38,A39,A40,A41,FINSEQ_1:14;
        end;
        suppose j<>i;
          then not j in {i} by TARSKI:def 1;
          hence thesis by A2,A35,A38,A39,Lm9;
        end;
      end;
      dom(id S)=S;
      then A47: MAf=id TR by A18,A34,A36,FUNCT_1:2;
      A48: dom MA=[#]TR by TOPS_2:def 5;
      set R=AutMt f;
      A49: rng MA=[#]TR by TOPS_2:def 5;
      A50: MA is one-to-one by TOPS_2:def 5;
      A51: the carrier of TR c=rng f
      proof
        let x be object;
        assume A52: x in the carrier of TR;
        then A53: MA.x in rng MA by A48,FUNCT_1:def 3;
        then A54: MAf.(MA.x)=MA.(f.(MA.x)) by A33,A49,FUNCT_1:12;
        f.(MA.x) in dom MA & MAf.(MA.x)=MA.x by A33,A47,A49,A53,FUNCT_1:11,18;
        then x=f.(MA.x) by A48,A50,A52,A54,FUNCT_1:def 4;
        hence thesis by A5,A49,A53,FUNCT_1:def 3;
      end;
      rng f c=the carrier of TR by RELAT_1:def 19;
      then rng f=the carrier of TR by A51,XBOOLE_0:def 10;
      then A55: f=(MA qua Function)" by A47,A49,A48,A50,FUNCT_1:42;
      Det AxialSymmetry(i,n) = -1.F_Real by A8,Th4;
      then f=Mx2Tran R & Det AxialSymmetry(i,n)<>0.F_Real by Def6;
      then R=AxialSymmetry(i,n)~ by A55,MATRTOP1:43
      .=AxialSymmetry(i,n) by A8,Th7;
      hence thesis;
    end;
  end;
end;
