reserve p1, p2 for Point of TOP-REAL 2,
  C for Simple_closed_curve,
  P for Subset of TOP-REAL 2;

theorem Th2:
  for a being Real for f being Function of TopSpaceMetr Euclid 2,
  TopSpaceMetr Euclid 2 st f = Rotate a holds f is onto isometric
proof
  let a be Real;
  consider A being Real such that
A1: A = 2*PI*(-[\a/(2*PI)/])+a and
A2: 0 <= A and
A3: A < 2*PI by COMPLEX2:1;
  reconsider A as Real;
  let f be Function of TopSpaceMetr Euclid 2, TopSpaceMetr Euclid 2 such that
A4: f = Rotate a;
  reconsider g=f as Function of Euclid 2,Euclid 2;
A5: Rotate A = Rotate a by A1,Lm3;
  g is onto isometric
  proof
    thus rng g = the carrier of Euclid 2
    proof
      thus rng g c= the carrier of Euclid 2;
      let o be object;
      assume o in the carrier of Euclid 2;
      then reconsider p=o as Point of TOP-REAL 2 by EUCLID:67;
      set pz=p`1+(p`2)*<i>;
      reconsider pz as Element of COMPLEX by XCMPLX_0:def 2;
      set arg=Arg pz;
      per cases;
      suppose
A6:     pz<>0;
        per cases;
        suppose
          A <= arg;
          then
A7:       0<=arg-A by XREAL_1:48;
          set qz=Rotate(pz,-A);
A8:       |.Rotate(pz,-A).| = |.pz.| by COMPLEX2:53;
          arg-A <= arg & arg < 2*PI by A2,COMPTRIG:34,XREAL_1:43;
          then
A9:       -A+arg < 2*PI by XXREAL_0:2;
          qz<>0 by A6,COMPLEX2:52;
          then Arg qz = -A+arg by A7,A9,A8,COMPTRIG:def 1;
          then
A10:      Rotate(qz,A) = pz by A8,COMPTRIG:62;
          set q=|[Re qz,Im qz]|;
A11:      dom g = the carrier of Euclid 2 by FUNCT_2:def 1;
          g.q = |[Re Rotate(q`1+(q`2)*<i>,A),Im Rotate(q`1+(q`2)*<i>,A)]|
          by A4,A5,Def3
            .= |[Re Rotate(Re qz+(q`2)*<i>,A),Im Rotate(q`1+(q`2)*<i>,A)]|
          by EUCLID:52
            .= |[Re Rotate(Re qz+(Im qz)*<i>,A),Im Rotate(q`1+(q`2)*<i>,A)]|
          by EUCLID:52
            .= |[Re Rotate(Re qz+(Im qz)*<i>,A),Im Rotate(Re qz+(q`2)*<i>,A)
          ]| by EUCLID:52
            .=|[Re Rotate(Re qz+(Im qz)*<i>,A),Im Rotate(Re qz+(Im qz)*<i>,A
          )]| by EUCLID:52
            .= |[Re Rotate(qz,A),Im Rotate(Re qz+(Im qz)*<i>,A)]| by
COMPLEX1:13
            .= |[Re pz,Im pz]| by A10,COMPLEX1:13
            .= |[p`1,Im pz]| by COMPLEX1:12
            .= |[p`1,p`2]| by COMPLEX1:12
            .= p by EUCLID:53;
          hence thesis by A11,Lm1,FUNCT_1:def 3;
        end;
        suppose
          A > arg;
          then arg-A < 0 by XREAL_1:49;
          then
A12:      2*PI+(arg-A) < 2*PI by XREAL_1:30;
          set qz=Rotate(pz,-A);
          set q=|[Re qz,Im qz]|;
A13:      dom g = the carrier of Euclid 2 by FUNCT_2:def 1;
A14:      |.Rotate(pz,-A).| = |.pz.| by COMPLEX2:53;
          then qz= |.qz.|*cos (2*PI*1+(-A+arg))+ |.qz.|*sin (-A+arg) *<i> by
COMPLEX2:9;
          then
A15:      qz= |.qz.|*cos (2*PI+(arg-A))+ |.qz.|*sin (2*PI*1+(-A+arg)) *
          <i> by COMPLEX2:8;
          0<= 2*PI-A & arg >= 0 by A3,COMPTRIG:34,XREAL_1:48;
          then
A16:      0<=2*PI-A+arg;
          qz<>0 by A6,COMPLEX2:52;
          then Arg qz = 2*PI+(arg-A) by A16,A12,A15,COMPTRIG:def 1;
          then Rotate(qz,A) = |.qz.|*cos arg+ |.qz.|*sin (2*PI*1+arg) *<i> by
COMPLEX2:9;
          then Rotate(qz,A) = |.qz.|*cos arg+ |.qz.|*sin arg *<i> by COMPLEX2:8
;
          then
A17:      Rotate(qz,A) = pz by A14,COMPTRIG:62;
          g.q = |[Re Rotate(q`1+(q`2)*<i>,A),Im Rotate(q`1+(q`2)*<i>,A)]|
          by A4,A5,Def3
            .= |[Re Rotate(Re qz+(q`2)*<i>,A),Im Rotate(q`1+(q`2)*<i>,A)]|
          by EUCLID:52
            .= |[Re Rotate(Re qz+(Im qz)*<i>,A),Im Rotate(q`1+(q`2)*<i>,A)]|
          by EUCLID:52
            .= |[Re Rotate(Re qz+(Im qz)*<i>,A),Im Rotate(Re qz+(q`2)*<i>,A)
          ]| by EUCLID:52
            .=|[Re Rotate(Re qz+(Im qz)*<i>,A),Im Rotate(Re qz+(Im qz)*<i>,A
          )]| by EUCLID:52
            .=|[Re Rotate(qz,A),Im Rotate(Re qz+(Im qz)*<i>,A)]| by COMPLEX1:13
            .= |[Re pz,Im pz]| by A17,COMPLEX1:13
            .= |[p`1,Im pz]| by COMPLEX1:12
            .= |[p`1,p`2]| by COMPLEX1:12
            .= p by EUCLID:53;
          hence thesis by A13,Lm1,FUNCT_1:def 3;
        end;
      end;
      suppose
A18:    pz=0;
        reconsider z=0 as Element of COMPLEX by XCMPLX_0:def 2;
        set q=|[0,0]|;
A19:    dom g = the carrier of Euclid 2 by FUNCT_2:def 1;
A20:    p`1 = 0 by A18,COMPLEX1:4,12;
        g.q = |[Re Rotate(q`1+(q`2)*<i>,a),Im Rotate(q`1+(q`2)*<i>,a)]|
        by A4,Def3
          .= |[Re Rotate(z+(q`2)*<i>,a),Im Rotate(q`1+(q`2)*<i>,a)]| by
EUCLID:52
          .= |[Re Rotate(z+z*<i>,a),Im Rotate(q`1+(q`2)*<i>,a)]| by EUCLID:52
          .= |[Re Rotate(z+z*<i>,a),Im Rotate(z+(q`2)*<i>,a)]| by EUCLID:52
          .= |[Re Rotate(z,a),Im Rotate(z,a)]| by EUCLID:52
          .= |[Re z,Im Rotate(z,a)]| by COMPLEX2:52
          .= |[Re z,Im z]| by COMPLEX2:52
          .= p by A18,A20,COMPLEX1:4,EUCLID:53;
        hence thesis by A19,Lm1,FUNCT_1:def 3;
      end;
    end;
    let X,Y be Point of Euclid 2;
    reconsider x=X,y=Y,gx=g.X,gy=g.Y as Point of TOP-REAL 2 by EUCLID:67;
A21: |[Re Rotate((x`1)+(x`2)*<i>,a),Im Rotate((x`1)+(x`2)*<i>,a)]|`1= Re
Rotate((x `1)+(x`2)*<i>,a) & |[Re Rotate((x`1)+(x`2)*<i>,a),Im Rotate((x`1)+(x
    `2)*<i>,a) ]|`2= Im Rotate((x`1)+(x`2)*<i>,a) by EUCLID:52;
    reconsider xx=x`1+(x`2)*<i>,yy=y`1+(y`2)*<i> as Element of COMPLEX by
XCMPLX_0:def 2;
A22: |[Re Rotate((y`1)+(y`2)*<i>,a),Im Rotate((y`1)+(y`2)*<i>,a)]|`1= Re
Rotate((y `1)+(y`2)*<i>,a) & |[Re Rotate((y`1)+(y`2)*<i>,a),Im Rotate((y`1)+(y
    `2)*<i>,a) ]|`2= Im Rotate((y`1)+(y`2)*<i>,a) by EUCLID:52;
A23: Re (y`1+(y`2)*<i>)=y`1 & Im (y`1+(y`2)*<i>)=y`2 by COMPLEX1:12;
A24: (sin a)^2+(cos a)^2 = 1 by SIN_COS:29;
A25: Re (x`1+(x`2)*<i>)=x`1 & Im (x`1+(x`2)*<i>)=x`2 by COMPLEX1:12;
    x=|[x`1,x`2]| & y=|[y`1,y`2]| by EUCLID:53;
    hence dist(X,Y) = sqrt ((x`1 - y`1)^2 + (x`2 - y`2)^2) by GOBOARD6:6
      .= sqrt(((x`1)*(x`1) -2*x`1*y`1 + (y`1)*(y`1))*((sin a)*(sin a)+(cos a
)*(cos a)) + ((x`2)*(x`2) -2*x`2*y`2 + (y`2)*(y`2))*((sin a)^2+(cos a)^2)) by
A24
      .= sqrt(((x`1*cos a-x`2*sin a)-(y`1*cos a-y`2*sin a))^2 + ((x`1*sin a+
x`2*cos a)^2-2*(x`1*sin a+x`2*cos a)*(y`1*sin a+y`2*cos a)+ (y`1*sin a+y`2*cos
    a)^2))
      .= sqrt(((Re Rotate(xx,a))-(y`1*cos a-y`2*sin a))^2 + ((x`1*sin a+x`2*
    cos a)-(y`1*sin a+y`2*cos a))^2) by A25,COMPLEX2:56
      .= sqrt(((Re Rotate(xx,a))-(y`1*cos a-y`2*sin a))^2 + ((Im Rotate(xx,a
    ))-(y`1*sin a+y`2*cos a))^2) by A25,COMPLEX2:56
      .= sqrt(((Re Rotate(xx,a))-(Re Rotate(yy,a)))^2 + ((Im Rotate(xx,a))-(
    y`1*sin a+y`2*cos a))^2) by A23,COMPLEX2:56
      .= sqrt(((Re Rotate(xx,a))-(Re Rotate(yy,a)))^2 + ((Im Rotate(xx,a))-(
    Im Rotate(yy,a)))^2) by A23,COMPLEX2:56
      .= dist(|[Re Rotate((x`1)+(x`2)*<i>,a),Im Rotate((x`1)+(x`2)*<i>,a)]|,
    |[Re Rotate((y`1)+(y`2)*<i>,a),Im Rotate((y`1)+(y`2)*<i>,a)]|) by A21,A22,
TOPREAL6:92
      .= dist(|[Re Rotate((x`1)+(x`2)*<i>,a),Im Rotate((x`1)+(x`2)*<i>,a)]|,
    gy) by A4,Def3
      .= dist(gx,gy) by A4,Def3
      .= dist(g.X,g.Y) by TOPREAL6:def 1;
  end;
  hence thesis;
end;
