reserve x,y,z,w for ExtReal,
  r for Real;
reserve f,g for ExtReal;
reserve t for ExtReal;

theorem Th71:
  x <= y & 0 <= z implies x*z <= y*z
proof
  assume that
A1: x <= y and
A2: 0 <= z;
  per cases by A2;
  suppose
    z = 0;
    hence thesis;
  end;
  suppose
A3: z > 0;
    per cases;
    suppose
A4:   x = 0;
      then z*y >= 0 by A1,A2;
      hence thesis by A4;
    end;
    suppose
A5:   x <> 0;
      per cases;
      case that
A6:     x*z in REAL & y*z in REAL;
        y*z = 0 implies y = 0 by A3;
        then reconsider x,y,z as Element of REAL by A3,A5,A6,Lm23;
        reconsider p = x*z, q = y*z as Element of REAL by XREAL_0:def 1;
        take p, q;
        thus thesis by A1,A2,XREAL_1:64;
      end;
      case
A7:     not x*z in REAL or not y*z in REAL;
        per cases by A7;
        suppose
A8:       not x*z in REAL;
          per cases by A8,XXREAL_0:14;
          suppose
            x*z = -infty;
            hence thesis;
          end;
          suppose
            x*z = +infty;
            then
A9:         x <> -infty by A3;
A10:        not x in REAL or not y in REAL or not z in REAL by A8,XREAL_0:def 1
;
            per cases by A9,A10,XXREAL_0:14;
            suppose
              y = +infty;
              hence thesis by A3,Def5;
            end;
            suppose
              x = +infty;
              then y = +infty by A1,XXREAL_0:4;
              hence thesis by A3,Def5;
            end;
            suppose
              y = -infty;
              then x = -infty by A1,XXREAL_0:6;
              hence thesis by A3,Def5;
            end;
            suppose that
A11:          not z in REAL and
              x in REAL & y in REAL;
A12:          z = +infty by A3,A11,XXREAL_0:14;
              per cases by A5;
              suppose x < 0;
                hence thesis by A12,Def5;
              end;
              suppose 0 < x;
                then 0 < y by A1;
                hence thesis by A12,Def5;
              end;
            end;
          end;
        end;
        suppose
          not y*z in REAL;
          then
A13:      not x in REAL or not y in REAL or not z in REAL by XREAL_0:def 1;
          per cases by A13,XXREAL_0:14;
          suppose
            x = -infty;
            hence thesis by A3,Def5;
          end;
          suppose
            y = +infty;
            hence thesis by A3,Def5;
          end;
          suppose
            x = +infty;
            then y = +infty by A1,XXREAL_0:4;
            hence thesis by A3,Def5;
          end;
          suppose
            y = -infty;
            then x = -infty by A1,XXREAL_0:6;
            hence thesis by A3,Def5;
          end;
          suppose that
A14:        not z in REAL and
            x in REAL & y in REAL;
A15:        z = +infty by A3,A14,XXREAL_0:14;
            per cases by A5;
            suppose x < 0;
              hence thesis by A15,Def5;
            end;
            suppose 0 < x;
              then 0 < y by A1;
              hence thesis by A15,Def5;
            end;
          end;
        end;
      end;
    end;
  end;
end;
