
theorem Th8:
  for n being Nat st n > 0 for a,b being Element of
  Segm(n) for k being Nat holds k * n <= a * b & a * b < (k + 1) * n
  iff (multint(n)).(a,b) = a * b - k * n
proof
  let n be Nat;
  assume
A1: n > 0;
  let a,b be Element of Segm(n);
  reconsider a, b as Element of NAT by ORDINAL1:def 12;
  let k be Nat;
A2: now
    assume that
A3: k * n <= a * b and
A4: a * b < (k + 1) * n;
    consider c being Element of NAT such that
A5: c = (a * b) mod n;
    consider t being Nat such that
A6: a * b = n * t + c & c < n or c = 0 & n = 0 by A5,NAT_D:def 2;
    now
      consider q being Nat such that
A7:   a * b = k * n + q by A3,NAT_1:10;
      t = k
      proof
        now
          per cases;
          case
            t <= k;
            then consider r being Nat such that
A8:         t + r = k by NAT_1:10;
A9:         n * t + c = t * n + (r * n + q) by A1,A6,A7,A8;
            now
              per cases;
              case
                t = k;
                hence thesis;
              end;
              case
A10:            t <> k;
                r >= 1
                proof
                  assume
A11:              r < 1;
                  r = 0
                  proof
                    assume r <> 0;
                    then 1 + 0 <= r by INT_1:7;
                    hence thesis by A11;
                  end;
                  hence thesis by A8,A10;
                end;
                then r * n >= 1 * n by NAT_1:4;
                then
A12:            r * n + q >= 1 * n + q by XREAL_1:6;
                1 * n + q >= n by NAT_1:11;
                hence thesis by A1,A6,A9,A12,XXREAL_0:2;
              end;
            end;
            hence thesis;
          end;
          case
            t > k;
            then t >= k + 1 by INT_1:7;
            then
A13:        n * t >= n * (k + 1) by NAT_1:4;
            n * t + c >= n * t by NAT_1:11;
            hence thesis by A4,A6,A13,XXREAL_0:2;
          end;
        end;
        hence thesis;
      end;
      hence (multint(n)).(a,b) = a * b - k * n by A1,A5,A6,Def10;
    end;
    hence (multint(n)).(a,b) = a * b - k * n;
  end;
  now
    assume (multint(n)).(a,b) = a * b - k * n;
    then (a * b) mod n = a * b - k * n by A1,Def10;
    then
A14: (a * b - k * n) + k * n >= 0 + k * n & ex t being Nat st a * b = n * t
    + (a * b - n * k) & (a * b - n * k) < n by A1,NAT_D:def 2,XREAL_1:6;
    (k + 1) * n = k * n + n;
    hence k * n <= a * b & a * b < (k + 1) * n by A14,XREAL_1:6;
  end;
  hence thesis by A2;
end;
