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

theorem Th38:
  g + h = h + g implies i * g + ( j * h) = j * h + ( i * g)
proof
  assume
A1: g + h = h + g;
  per cases;
  suppose
    i >= 0 & j >= 0;
    then i * g = |.i.| * g & j * h = |.j.| * h by Def8;
    hence thesis by A1,Lm10;
  end;
  suppose
A2: i >= 0 & j < 0;
A3: |.i.|*g + (|.j.|*h) = |.j.|*h + (|.i.|*g) by A1,Lm10;
     i * g = |.i.| * g & j * h = -( |.j.| * h) by A2,Def8;
    hence thesis by A3,Th19;
  end;
  suppose
A4: i < 0 & j >= 0;
A5: |.i.|*g + (|.j.|*h) = |.j.|*h + (|.i.|*g) by A1,Lm10;
     i * g = -( |.i.| * g) & j * h = |.j.| * h by A4,Def8;
    hence thesis by A5,Th19;
  end;
  suppose
    i < 0 & j < 0;
    then
A6:  i * g = -( |.i.| * g) & j * h= -( |.j.| * h) by Def8;
    hence i * g + ( j * h) = -( |.j.| * h + ( |.i.|) * g) by Th16
      .= -( |.i.| * g + ( |.j.| * h)) by A1,Lm10
      .= j * h + ( i * g) by A6,Th16;
  end;
end;
