 reserve m,n for Nat;
 reserve i,j for Integer;
 reserve S for non empty multMagma;
 reserve r,r1,r2,s,s1,s2,t for Element of S;
 reserve G for Group-like non empty multMagma;
 reserve e,h for Element of G;
 reserve G for Group;
 reserve f,g,h for Element of G;
 reserve u for UnOp of G;

theorem
  h |^ n = 1_G implies ord h divides n
proof
  defpred P[Nat] means h |^ $1 = 1_G implies ord h divides $1;
A1: for n being Nat st for k being Nat st k < n holds P[k] holds P[n]
  proof
    let n be Nat;
    assume
A2: for k being Nat st k < n holds P[k];
    assume
A3: h |^ n = 1_G;
    per cases;
    suppose
      n = 0;
      hence thesis by NAT_D:6;
    end;
    suppose
A4:   n <> 0;
      per cases;
      suppose
        ord h = 0;
        then h is being_of_order_0 by Def11;
        hence thesis by A3,A4;
      end;
      suppose
A5:     ord h <> 0;
        then h is not being_of_order_0 by Def11;
        then ord h <= n by A3,A4,Def11;
        then consider m being Nat such that
A6:     n = ord h + m by NAT_1:10;
        h |^ n = h |^ ord h * (h |^ m) by A6,Lm5
          .= 1_G * (h |^ m) by Th40
          .= h |^ m by Def4;
        then ord h divides m by A2,A3,A5,A6,NAT_1:16;
        then consider i being Nat such that
A7:     m = ord h * i by NAT_D:def 3;
        n = ord h * (1 + i) by A6,A7;
        hence thesis by NAT_D:def 3;
      end;
    end;
  end;
  for n being Nat holds P[n] from NAT_1:sch 4(A1);
  hence thesis;
end;
