reserve i1 for Element of INT;
reserve j1,j2,j3 for Integer;
reserve p,s,k,n for Nat;
reserve x,y,xp,yp for set;
reserve G for Group;
reserve a,b for Element of G;
reserve F for FinSequence of G;
reserve I for FinSequence of INT;

theorem
  for G being finite Group, H being strict Subgroup of G st G is cyclic
  holds H is cyclic
proof
  let G be finite Group, H be strict Subgroup of G;
A1: card H >= 1 by GROUP_1:45;
  assume G is cyclic;
  then consider a be Element of G such that
A2: for b being Element of G ex n st b = a|^n by Th18;
  per cases by A1,XXREAL_0:1;
  suppose
    card H = 1;
    then H = (1).G by GROUP_2:70;
    hence thesis;
  end;
  suppose
A3: card H > 1;
    defpred P[Nat] means $1 > 0 & a|^$1 is Element of H;
    consider h being Element of H such that
A4: h <> 1_H by A3,Th11;
    h is Element of G by GROUP_2:42;
    then consider n such that
A5: h = a|^n by A2;
    n <> 0
    proof
      assume n = 0;
      then h = 1_G by A5,GROUP_1:25
        .= 1_H by GROUP_2:44;
      hence contradiction by A4;
    end;
    then
A6: ex n being Nat st P[n] by A5;
    ex h1 being Element of H st for b being Element of H ex s st b = h1|^ s
    proof
      ex k be Nat st P[k] & for n be Nat st P[n] holds k <= n from NAT_1:
      sch 5(A6);
      then consider n being Nat such that
A7:   n>0 and
A8:   a|^n is Element of H and
A9:   for k be Nat st k>0 & a|^k is Element of H holds n <= k;
      consider h1 being Element of H such that
A10:  h1 = a|^n by A8;
      take h1;
      for b being Element of H ex s st b = h1|^s
      proof
        let b be Element of H;
        b is Element of G by GROUP_2:42;
        then consider p such that
A11:    b = a|^p by A2;
        consider s,r being Nat such that
A12:    p = (n*s) + r and
A13:    r < n by A7,NAT_1:17;
        reconsider s,r as Element of NAT by ORDINAL1:def 12;
        take s;
        r =0
        proof
          h1|^s=a|^n|^s by A10,GROUP_4:1;
          then (h1|^s)"=(a|^n|^s)" by GROUP_2:48
            .= (a|^(n * s ))" by GROUP_1:35;
          then reconsider g= (a|^(n*s))" as Element of H;
          reconsider b=a|^p as Element of H by A11;
          a|^p = a|^(n*s) * (a|^r) by A12,GROUP_1:33;
          then (a|^(n*s))" * (a|^p) = ((a|^(n*s))" *(a|^(n*s)))*(a|^r) by
GROUP_1:def 3
            .= 1_G *(a|^r) by GROUP_1:def 5
            .= a|^ r by GROUP_1:def 4;
          then
A14:      g*b = a|^r by GROUP_2:43;
          assume r<>0;
          hence contradiction by A9,A13,A14;
        end;
        then a|^p = a|^n|^s by A12,GROUP_1:35
          .= h1|^s by A10,GROUP_4:1;
        hence thesis by A11;
      end;
      hence thesis;
    end;
    hence thesis by Th18;
  end;
end;
