reserve x for set;
reserve a, b, c for Real;
reserve m, n, m1, m2 for Nat;
reserve k, l for Integer;
reserve p, q for Rational;
reserve s1, s2 for Real_Sequence;

theorem Th45:
  a #Z k #Z l = a #Z (k*l)
proof
  per cases;
  suppose
A1: k*l > 0;
    per cases by A1,XREAL_1:134;
    suppose
A2:   k>0 & l>0;
      hence a #Z k #Z l = a #Z k |^ |.l.| by Def3
        .=a |^ |.k.| |^ |.l.| by A2,Def3
        .=a |^ (|.k.|*|.l.|) by NEWTON:9
        .=a |^ |.k*l.| by COMPLEX1:65
        .=a #Z (k*l) by A1,Def3;
    end;
    suppose
A3:   k<0 & l<0;
      hence a #Z k #Z l = (a #Z k |^ |.l.|)" by Def3
        .=(((a |^ |.k.|)") |^ |.l.|)" by A3,Def3
        .=((1 / a |^ |.k.|) |^ |.l.|)"
        .=(1 / a |^ |.k.| |^ |.l.|)" by Th7
        .=(a |^ |.k.| |^ |.l.|)""
        .=a |^ (|.k.|*|.l.|) by NEWTON:9
        .=a |^ |.k*l.| by COMPLEX1:65
        .=a #Z (k*l) by A1,Def3;
    end;
  end;
  suppose
A4: k*l < 0;
    per cases by A4,XREAL_1:133;
    suppose
A5:   k<0 & l>0;
      hence a #Z k #Z l = a #Z k |^ |.l.| by Def3
        .=((a |^ |.k.|)") |^ |.l.| by A5,Def3
        .=(1 / a |^ |.k.|) |^ |.l.|
        .=1 / a |^ |.k.| |^ |.l.| by Th7
        .=1 / a |^ (|.k.|*|.l.|) by NEWTON:9
        .=1 / a |^ |.k*l.| by COMPLEX1:65
        .=(a |^ |.k*l.|)"
        .=a #Z (k*l) by A4,Def3;
    end;
    suppose
A6:   k>0 & l<0;
      hence a #Z k #Z l = (a #Z k |^ |.l.|)" by Def3
        .=(a |^ |.k.| |^ |.l.|)" by A6,Def3
        .=(a |^ (|.k.|*|.l.|))" by NEWTON:9
        .=(a |^ |.k*l.|)" by COMPLEX1:65
        .=a #Z (k*l) by A4,Def3;
    end;
  end;
  suppose
A7: k*l = 0;
    per cases by A7;
    suppose
      k=0;
      hence a #Z k #Z l = 1 #Z l by Th34
        .= 1 by Th37
        .= a #Z (k*l) by A7,Th34;
    end;
    suppose
      l=0;
      hence a #Z k #Z l = 1 by Th34
        .= a #Z (k*l) by A7,Th34;
    end;
  end;
end;
