 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 |^ (i * j) = h |^ i |^ j
proof
  per cases;
  suppose
    i >= 0 & j >= 0;
    then reconsider m = i, n = j as Element of NAT by INT_1:3;
    thus h |^ (i * j) = h |^ m |^ n by Lm7
      .= h |^ i |^ j;
  end;
  suppose
    i >= 0 & j < 0;
    then reconsider m = i, n = - j as Element of NAT by INT_1:3;
    i * j = - (i * n);
    hence h |^ (i * j) = (h |^ (i * n))" by Lm12
      .= h" |^ (i * n) by Lm17
      .= h" |^ m |^ n by Lm7
      .= (h |^ i)" |^ n by Lm17
      .= ((h |^ i)" |^ j)" by Lm12
      .= (h |^ i |^ j)"" by Lm17
      .= h |^ i |^ j;
  end;
  suppose
    i < 0 & j >= 0;
    then reconsider m = - i, n = j as Element of NAT by INT_1:3;
    i * j = - (m * j);
    hence h |^ (i * j) = (h |^ (m * j))" by Lm12
      .= h" |^ (m * j) by Lm17
      .= h" |^ m |^ n by Lm7
      .= (h" |^ i)" |^ n by Lm12
      .= (h |^ i)"" |^ j by Lm17
      .= h |^ i |^ j;
  end;
  suppose
    j < 0 & i < 0;
    then reconsider m = - i, n = - j as Element of NAT by INT_1:3;
    i * j * ((-1) * (-1)) = m * n;
    hence h |^ (i * j) = h |^ m |^ n by Lm7
      .= (h |^ (- i) |^ j)" by Lm12
      .= ((h |^ i)" |^ j)" by Lm12
      .= (h" |^ i |^ j)" by Lm17
      .= ((h" |^ i)") |^ j by Lm17
      .= h"" |^ i |^ j by Lm17
      .= h |^ i |^ j;
  end;
end;
