Article RAT_1, MML version 4.99.1005

:: RAT_1:funcnot 1 => NUMBERS:func 3
definition
  func RAT -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2, b3 being integer set st
             b1 = b2 / b3;
end;

:: RAT_1:def 1
theorem
for b1 being set holds
      b1 = RAT
   iff
      for b2 being set holds
            b2 in b1
         iff
            ex b3, b4 being integer set st
               b2 = b3 / b4;

:: RAT_1:attrnot 1 => RAT_1:attr 1
definition
  let a1 be set;
  attr a1 is rational means
    a1 in RAT;
end;

:: RAT_1:dfs 2
definiens
  let a1 be set;
To prove
     a1 is rational
it is sufficient to prove
  thus a1 in RAT;

:: RAT_1:def 2
theorem
for b1 being set holds
      b1 is rational
   iff
      b1 in RAT;

:: RAT_1:exreg 1
registration
  cluster rational Element of REAL;
end;

:: RAT_1:exreg 2
registration
  cluster rational set;
end;

:: RAT_1:modenot 1
definition
  mode Rational is rational set;
end;

:: RAT_1:th 1
theorem
for b1 being set
      st b1 in RAT
   holds ex b2, b3 being integer set st
      b3 <> 0 & b1 = b2 / b3;

:: RAT_1:th 3
theorem
for b1 being set
      st b1 is rational set
   holds ex b2, b3 being integer set st
      b3 <> 0 & b1 = b2 / b3;

:: RAT_1:condreg 1
registration
  cluster rational -> real (set);
end;

:: RAT_1:th 6
theorem
for b1 being set
      st ex b2, b3 being integer set st
           b1 = b2 / b3
   holds b1 is rational;

:: RAT_1:th 7
theorem
for b1 being integer set holds
   b1 is rational set;

:: RAT_1:condreg 2
registration
  cluster integer -> rational (set);
end;

:: RAT_1:funcreg 1
registration
  let a1, a2 be rational set;
  cluster a1 * a2 -> rational;
end;

:: RAT_1:funcreg 2
registration
  let a1, a2 be rational set;
  cluster a1 + a2 -> rational;
end;

:: RAT_1:funcreg 3
registration
  let a1, a2 be rational set;
  cluster a1 - a2 -> rational;
end;

:: RAT_1:funcreg 4
registration
  let a1 be rational set;
  let a2 be integer set;
  cluster a1 + a2 -> rational;
end;

:: RAT_1:funcreg 5
registration
  let a1 be rational set;
  let a2 be integer set;
  cluster a1 - a2 -> rational;
end;

:: RAT_1:funcreg 6
registration
  let a1 be rational set;
  let a2 be integer set;
  cluster a1 * a2 -> rational;
end;

:: RAT_1:funcreg 7
registration
  let a1 be integer set;
  let a2 be rational set;
  cluster a1 + a2 -> rational;
end;

:: RAT_1:funcreg 8
registration
  let a1 be integer set;
  let a2 be rational set;
  cluster a1 - a2 -> rational;
end;

:: RAT_1:funcreg 9
registration
  let a1 be integer set;
  let a2 be rational set;
  cluster a1 * a2 -> rational;
end;

:: RAT_1:funcreg 10
registration
  let a1 be rational set;
  let a2 be Element of NAT;
  cluster a1 + a2 -> rational;
end;

:: RAT_1:funcreg 11
registration
  let a1 be rational set;
  let a2 be Element of NAT;
  cluster a1 - a2 -> rational;
end;

:: RAT_1:funcreg 12
registration
  let a1 be rational set;
  let a2 be Element of NAT;
  cluster a1 * a2 -> rational;
end;

:: RAT_1:funcreg 13
registration
  let a1 be Element of NAT;
  let a2 be rational set;
  cluster a1 + a2 -> rational;
end;

:: RAT_1:funcreg 14
registration
  let a1 be Element of NAT;
  let a2 be rational set;
  cluster a1 - a2 -> rational;
end;

:: RAT_1:funcreg 15
registration
  let a1 be Element of NAT;
  let a2 be rational set;
  cluster a1 * a2 -> rational;
end;

:: RAT_1:funcreg 16
registration
  let a1 be rational set;
  cluster - a1 -> complex rational;
end;

:: RAT_1:th 16
theorem
for b1, b2 being rational set holds
b1 / b2 is rational set;

:: RAT_1:funcreg 17
registration
  let a1, a2 be rational set;
  cluster a1 / a2 -> rational;
end;

:: RAT_1:th 21
theorem
for b1 being rational set holds
   b1 " is rational set;

:: RAT_1:funcreg 18
registration
  let a1 be rational set;
  cluster a1 " -> complex rational;
end;

:: RAT_1:th 22
theorem
for b1, b2 being real set
      st b1 < b2
   holds ex b3 being rational set st
      b1 < b3 & b3 < b2;

:: RAT_1:th 24
theorem
for b1 being rational set holds
   ex b2 being integer set st
      ex b3 being Element of NAT st
         b3 <> 0 & b1 = b2 / b3;

:: RAT_1:th 25
theorem
for b1 being rational set holds
   ex b2 being integer set st
      ex b3 being Element of NAT st
         b3 <> 0 &
          b1 = b2 / b3 &
          (for b4 being integer set
          for b5 being Element of NAT
                st b5 <> 0 & b1 = b4 / b5
             holds b3 <= b5);

:: RAT_1:funcnot 2 => RAT_1:func 1
definition
  let a1 be rational set;
  func denominator A1 -> Element of NAT means
    it <> 0 &
     (ex b1 being integer set st
        a1 = b1 / it) &
     (for b1 being integer set
     for b2 being Element of NAT
           st b2 <> 0 & a1 = b1 / b2
        holds it <= b2);
end;

:: RAT_1:def 3
theorem
for b1 being rational set
for b2 being Element of NAT holds
      b2 = denominator b1
   iff
      b2 <> 0 &
       (ex b3 being integer set st
          b1 = b3 / b2) &
       (for b3 being integer set
       for b4 being Element of NAT
             st b4 <> 0 & b1 = b3 / b4
          holds b2 <= b4);

:: RAT_1:funcnot 3 => RAT_1:func 2
definition
  let a1 be rational set;
  func numerator A1 -> integer set equals
    (denominator a1) * a1;
end;

:: RAT_1:def 4
theorem
for b1 being rational set holds
   numerator b1 = (denominator b1) * b1;

:: RAT_1:th 27
theorem
for b1 being rational set holds
   0 < denominator b1;

:: RAT_1:th 29
theorem
for b1 being rational set holds
   1 <= denominator b1;

:: RAT_1:th 30
theorem
for b1 being rational set holds
   0 < (denominator b1) ";

:: RAT_1:th 34
theorem
for b1 being rational set holds
   (denominator b1) " <= 1;

:: RAT_1:th 36
theorem
for b1 being rational set holds
      numerator b1 = 0
   iff
      b1 = 0;

:: RAT_1:th 37
theorem
for b1 being rational set holds
   b1 = (numerator b1) / denominator b1 & b1 = (numerator b1) * ((denominator b1) ") & b1 = (denominator b1) " * numerator b1;

:: RAT_1:th 38
theorem
for b1 being rational set
      st b1 <> 0
   holds denominator b1 = (numerator b1) / b1;

:: RAT_1:th 40
theorem
for b1 being rational set
      st b1 is integer set
   holds denominator b1 = 1 & numerator b1 = b1;

:: RAT_1:th 41
theorem
for b1 being rational set
      st (numerator b1 = b1 or denominator b1 = 1)
   holds b1 is integer set;

:: RAT_1:th 42
theorem
for b1 being rational set holds
      numerator b1 = b1
   iff
      denominator b1 = 1;

:: RAT_1:th 44
theorem
for b1 being rational set
      st (numerator b1 = b1 or denominator b1 = 1) & 0 <= b1
   holds b1 is Element of NAT;

:: RAT_1:th 45
theorem
for b1 being rational set holds
      1 < denominator b1
   iff
      b1 is not integer;

:: RAT_1:th 46
theorem
for b1 being rational set holds
      (denominator b1) " < 1
   iff
      b1 is not integer;

:: RAT_1:th 47
theorem
for b1 being rational set holds
      numerator b1 = denominator b1
   iff
      b1 = 1;

:: RAT_1:th 48
theorem
for b1 being rational set holds
      numerator b1 = - denominator b1
   iff
      b1 = - 1;

:: RAT_1:th 49
theorem
for b1 being rational set holds
      - numerator b1 = denominator b1
   iff
      b1 = - 1;

:: RAT_1:th 50
theorem
for b1 being integer set
for b2 being rational set
      st b1 <> 0
   holds b2 = ((numerator b2) * b1) / ((denominator b2) * b1);

:: RAT_1:th 60
theorem
for b1 being Element of NAT
for b2 being integer set
for b3 being rational set
      st b1 <> 0 & b3 = b2 / b1
   holds ex b4 being Element of NAT st
      b2 = (numerator b3) * b4 & b1 = (denominator b3) * b4;

:: RAT_1:th 61
theorem
for b1, b2 being integer set
for b3 being rational set
      st b3 = b1 / b2 & b2 <> 0
   holds ex b4 being integer set st
      b1 = (numerator b3) * b4 & b2 = (denominator b3) * b4;

:: RAT_1:th 62
theorem
for b1 being rational set
for b2 being Element of NAT
   st 1 < b2
for b3 being integer set
for b4 being Element of NAT
      st numerator b1 = b3 * b2
   holds denominator b1 <> b4 * b2;

:: RAT_1:th 63
theorem
for b1 being Element of NAT
for b2 being integer set
for b3 being rational set
      st b3 = b2 / b1 &
         b1 <> 0 &
         (for b4 being Element of NAT
            st 1 < b4
         for b5 being integer set
         for b6 being Element of NAT
               st b2 = b5 * b4
            holds b1 <> b6 * b4)
   holds b1 = denominator b3 & b2 = numerator b3;

:: RAT_1:th 64
theorem
for b1 being rational set holds
      b1 < - 1
   iff
      numerator b1 < - denominator b1;

:: RAT_1:th 65
theorem
for b1 being rational set holds
      b1 <= - 1
   iff
      numerator b1 <= - denominator b1;

:: RAT_1:th 66
theorem
for b1 being rational set holds
      b1 < - 1
   iff
      denominator b1 < - numerator b1;

:: RAT_1:th 67
theorem
for b1 being rational set holds
      b1 <= - 1
   iff
      denominator b1 <= - numerator b1;

:: RAT_1:th 72
theorem
for b1 being rational set holds
      b1 < 1
   iff
      numerator b1 < denominator b1;

:: RAT_1:th 73
theorem
for b1 being rational set holds
      b1 <= 1
   iff
      numerator b1 <= denominator b1;

:: RAT_1:th 76
theorem
for b1 being rational set holds
      b1 < 0
   iff
      numerator b1 < 0;

:: RAT_1:th 77
theorem
for b1 being rational set holds
      b1 <= 0
   iff
      numerator b1 <= 0;

:: RAT_1:th 80
theorem
for b1 being real set
for b2 being rational set holds
      b1 < b2
   iff
      b1 * denominator b2 < numerator b2;

:: RAT_1:th 81
theorem
for b1 being real set
for b2 being rational set holds
      b1 <= b2
   iff
      b1 * denominator b2 <= numerator b2;

:: RAT_1:th 84
theorem
for b1, b2 being rational set
      st denominator b1 = denominator b2 & numerator b1 = numerator b2
   holds b1 = b2;

:: RAT_1:th 86
theorem
for b1, b2 being rational set holds
   b1 < b2
iff
   (numerator b1) * denominator b2 < (numerator b2) * denominator b1;

:: RAT_1:th 87
theorem
for b1 being rational set holds
   denominator - b1 = denominator b1 & numerator - b1 = - numerator b1;

:: RAT_1:th 88
theorem
for b1, b2 being rational set holds
   0 < b1 & b2 = 1 / b1
iff
   numerator b2 = denominator b1 & denominator b2 = numerator b1;

:: RAT_1:th 89
theorem
for b1, b2 being rational set holds
   b1 < 0 & b2 = 1 / b1
iff
   numerator b2 = - denominator b1 & denominator b2 = - numerator b1;