reserve x,y for object, X for set;

theorem
  for G be Group,a be Element of G, i be Integer st a is not
  being_of_order_0 holds ex n,k be Element of NAT st a|^i=a|^n & n=k*ord(a) +i
proof
  let G be Group,a be Element of G,i be Integer;
  assume a is not being_of_order_0;
  then ord a<>0 by GROUP_1:def 11;
  then
A1: |.i.|<=|.i.|*ord(a) by NAT_1:14,XREAL_1:151;
  0<=|.i.|*ord(a)+i
  proof
    per cases;
    suppose
A2:   i<0;
A3:   |.i.|+i<=|.i.|*ord(a)+i by A1,XREAL_1:6;
      |.i.|=-i by A2,ABSVALUE:def 1;
      hence thesis by A3;
    end;
    suppose
      0<=i;
      hence thesis;
    end;
  end;
  then
A4: |.i.|*ord(a)+i is Element of NAT by INT_1:3;
  a|^(|.i.|*ord(a)+i)=a|^(|.i.|*ord(a))*(a|^i) by GROUP_1:33
    .=(a|^(ord(a)) |^|.i.|)*(a|^i) by GROUP_1:35
    .=((1_G) |^|.i.|)*(a|^i) by GROUP_1:41
    .=(1_G)*(a|^i) by GROUP_1:31
    .=a|^i by GROUP_1:def 4;
  hence thesis by A4;
end;
