reserve x,y for Real;
reserve z,z1,z2 for Complex;
reserve n for Element of NAT;

theorem Th50:
  for n being Element of NAT, z being Complex holds (
  cos_C/.z + <i>*sin_C/.z) |^ n = cos_C/.(n*z) + <i>*sin_C/.(n*z)
proof
  defpred X[Nat] means for z being Complex holds (cos_C
  /.z + <i>*sin_C/.z) |^ ($1) = cos_C/.($1*z) + <i>*sin_C/.($1*z);
A1: for n being Nat st X[n] holds X[n+1]
  proof
    let n be Nat such that
A2: for z being Complex holds (cos_C/.z + <i>*sin_C/.z) |^
    n = cos_C/.(n*z) + <i>*sin_C/.(n*z);
    for z being Complex holds (cos_C/.z + <i>*sin_C/.z) |^ (n+1
    ) = cos_C/.((n+1)*z) + <i>*sin_C/.((n+1)*z)
    proof
      let z be Complex;
      set cn = cos_C/.(n*z), sn = sin_C/.(n*z), c1 = cos_C/.z, s1 = sin_C/.z;
A3:   (cos_C/.z + <i>*sin_C/.z) |^ (n+1) = (cos_C/.z + <i>*sin_C/.z)
      GeoSeq.(n+1) by COMSEQ_3:def 2
        .= (cos_C/.z + <i>*sin_C/.z) GeoSeq.n * (cos_C/.z + <i>*sin_C/.z) by
COMSEQ_3:def 1
        .= (cos_C/.z + <i>*sin_C/.z) |^ n * (cos_C/.z + <i>*sin_C/.z) by
COMSEQ_3:def 2
        .= (cos_C/.(n*z) + <i>*sin_C/.(n*z)) * (cos_C/.z + <i>*sin_C/.z) by A2
        .= cn*c1 + <i>*sn*c1 + (<i>*cn*s1 + -sn*s1);
      cos_C/.((n+1)*z) + <i>*sin_C/.((n+1)*z) = cos_C/.(n*z +1*z) + <i>*(
      sin_C/.(n*z)*cos_C/.(1*z) + cos_C/.(n*z)*sin_C/.(1*z)) by Th4
        .= cos_C/.(n*z)*cos_C/.z - sin_C/.(n*z)*sin_C/.z + <i>*(sin_C/.(n*z)
      *cos_C/.z + cos_C/.(n*z)*sin_C/.z) by Th6
        .= cn*c1 +( <i>*sn*c1 + (<i>*cn*s1 + -sn*s1) );
      hence thesis by A3;
    end;
    hence thesis;
  end;
A4: X[0] by Th21,Th23,COMPLEX1:def 4,COMSEQ_3:11;
  for n being Nat holds X[n] from NAT_1:sch 2(A4,A1);
  hence thesis;
end;
