Article ARYTM_3, MML version 4.99.1005

:: ARYTM_3:funcnot 1 => ARYTM_3:func 1
definition
  func one -> set equals
    1;
end;

:: ARYTM_3:def 1
theorem
one = 1;

:: ARYTM_3:prednot 1 => ARYTM_3:pred 1
definition
  let a1, a2 be ordinal set;
  pred A1,A2 are_relative_prime means
    for b1, b2, b3 being ordinal set
          st a1 = b1 *^ b2 & a2 = b1 *^ b3
       holds b1 = 1;
  symmetry;
::  for a1, a2 being ordinal set
::        st a1,a2 are_relative_prime
::     holds a2,a1 are_relative_prime;
end;

:: ARYTM_3:dfs 2
definiens
  let a1, a2 be ordinal set;
To prove
     a1,a2 are_relative_prime
it is sufficient to prove
  thus for b1, b2, b3 being ordinal set
          st a1 = b1 *^ b2 & a2 = b1 *^ b3
       holds b1 = 1;

:: ARYTM_3:def 2
theorem
for b1, b2 being ordinal set holds
   b1,b2 are_relative_prime
iff
   for b3, b4, b5 being ordinal set
         st b1 = b3 *^ b4 & b2 = b3 *^ b5
      holds b3 = 1;

:: ARYTM_3:th 5
theorem
not {},{} are_relative_prime;

:: ARYTM_3:th 6
theorem
for b1 being ordinal set holds
   1,b1 are_relative_prime;

:: ARYTM_3:th 7
theorem
for b1 being ordinal set
      st {},b1 are_relative_prime
   holds b1 = 1;

:: ARYTM_3:th 8
theorem
for b1, b2 being ordinal natural set
      st (b1 = {} implies b2 <> {})
   holds ex b3, b4, b5 being ordinal natural set st
      b4,b5 are_relative_prime & b1 = b3 *^ b4 & b2 = b3 *^ b5;

:: ARYTM_3:funcreg 1
registration
  let a1, a2 be ordinal natural set;
  cluster a1 div^ a2 -> ordinal natural;
end;

:: ARYTM_3:funcreg 2
registration
  let a1, a2 be ordinal natural set;
  cluster a1 mod^ a2 -> ordinal natural;
end;

:: ARYTM_3:prednot 2 => ARYTM_3:pred 2
definition
  let a1, a2 be ordinal set;
  pred A1 divides A2 means
    ex b1 being ordinal set st
       a2 = a1 *^ b1;
  reflexivity;
::  for a1 being ordinal set holds
::     a1 divides a1;
end;

:: ARYTM_3:dfs 3
definiens
  let a1, a2 be ordinal set;
To prove
     a1 divides a2
it is sufficient to prove
  thus ex b1 being ordinal set st
       a2 = a1 *^ b1;

:: ARYTM_3:def 3
theorem
for b1, b2 being ordinal set holds
   b1 divides b2
iff
   ex b3 being ordinal set st
      b2 = b1 *^ b3;

:: ARYTM_3:th 9
theorem
for b1, b2 being ordinal natural set holds
   b1 divides b2
iff
   ex b3 being ordinal natural set st
      b2 = b1 *^ b3;

:: ARYTM_3:th 10
theorem
for b1, b2 being ordinal natural set
      st {} in b1
   holds b2 mod^ b1 in b1;

:: ARYTM_3:th 11
theorem
for b1, b2 being ordinal natural set holds
   b2 divides b1
iff
   b1 = b2 *^ (b1 div^ b2);

:: ARYTM_3:th 13
theorem
for b1, b2 being ordinal natural set
      st b1 divides b2 & b2 divides b1
   holds b1 = b2;

:: ARYTM_3:th 14
theorem
for b1 being ordinal natural set holds
   b1 divides {} & 1 divides b1;

:: ARYTM_3:th 15
theorem
for b1, b2 being ordinal natural set
      st {} in b2 & b1 divides b2
   holds b1 c= b2;

:: ARYTM_3:th 16
theorem
for b1, b2, b3 being ordinal natural set
      st b1 divides b2 & b1 divides b2 +^ b3
   holds b1 divides b3;

:: ARYTM_3:funcnot 2 => ARYTM_3:func 2
definition
  let a1, a2 be ordinal natural set;
  func A1 lcm A2 -> Element of omega means
    a1 divides it &
     a2 divides it &
     (for b1 being ordinal natural set
           st a1 divides b1 & a2 divides b1
        holds it divides b1);
  commutativity;
::  for a1, a2 being ordinal natural set holds
::  a1 lcm a2 = a2 lcm a1;
end;

:: ARYTM_3:def 4
theorem
for b1, b2 being ordinal natural set
for b3 being Element of omega holds
      b3 = b1 lcm b2
   iff
      b1 divides b3 &
       b2 divides b3 &
       (for b4 being ordinal natural set
             st b1 divides b4 & b2 divides b4
          holds b3 divides b4);

:: ARYTM_3:th 17
theorem
for b1, b2 being ordinal natural set holds
b1 lcm b2 divides b1 *^ b2;

:: ARYTM_3:th 18
theorem
for b1, b2 being ordinal natural set
      st b1 <> {}
   holds (b2 *^ b1) div^ (b2 lcm b1) divides b2;

:: ARYTM_3:funcnot 3 => ARYTM_3:func 3
definition
  let a1, a2 be ordinal natural set;
  func A1 hcf A2 -> Element of omega means
    it divides a1 &
     it divides a2 &
     (for b1 being ordinal natural set
           st b1 divides a1 & b1 divides a2
        holds b1 divides it);
  commutativity;
::  for a1, a2 being ordinal natural set holds
::  a1 hcf a2 = a2 hcf a1;
end;

:: ARYTM_3:def 5
theorem
for b1, b2 being ordinal natural set
for b3 being Element of omega holds
      b3 = b1 hcf b2
   iff
      b3 divides b1 &
       b3 divides b2 &
       (for b4 being ordinal natural set
             st b4 divides b1 & b4 divides b2
          holds b4 divides b3);

:: ARYTM_3:th 19
theorem
for b1 being ordinal natural set holds
   b1 hcf {} = b1 & b1 lcm {} = {};

:: ARYTM_3:th 20
theorem
for b1, b2 being ordinal natural set
      st b1 hcf b2 = {}
   holds b1 = {};

:: ARYTM_3:th 21
theorem
for b1 being ordinal natural set holds
   b1 hcf b1 = b1 & b1 lcm b1 = b1;

:: ARYTM_3:th 22
theorem
for b1, b2, b3 being ordinal natural set holds
(b1 *^ b2) hcf (b3 *^ b2) = (b1 hcf b3) *^ b2;

:: ARYTM_3:th 23
theorem
for b1, b2 being ordinal natural set
      st b1 <> {}
   holds b2 hcf b1 <> {} & b1 div^ (b2 hcf b1) <> {};

:: ARYTM_3:th 24
theorem
for b1, b2 being ordinal natural set
      st (b1 = {} implies b2 <> {})
   holds b1 div^ (b1 hcf b2),b2 div^ (b1 hcf b2) are_relative_prime;

:: ARYTM_3:th 25
theorem
for b1, b2 being ordinal natural set holds
   b1,b2 are_relative_prime
iff
   b1 hcf b2 = 1;

:: ARYTM_3:funcnot 4 => ARYTM_3:func 4
definition
  let a1, a2 be ordinal natural set;
  func RED(A1,A2) -> Element of omega equals
    a1 div^ (a1 hcf a2);
end;

:: ARYTM_3:def 6
theorem
for b1, b2 being ordinal natural set holds
RED(b1,b2) = b1 div^ (b1 hcf b2);

:: ARYTM_3:th 26
theorem
for b1, b2 being ordinal natural set holds
(RED(b1,b2)) *^ (b1 hcf b2) = b1;

:: ARYTM_3:th 27
theorem
for b1, b2 being ordinal natural set
      st (b1 = {} implies b2 <> {})
   holds RED(b1,b2),RED(b2,b1) are_relative_prime;

:: ARYTM_3:th 28
theorem
for b1, b2 being ordinal natural set
      st b1,b2 are_relative_prime
   holds RED(b1,b2) = b1;

:: ARYTM_3:th 29
theorem
for b1 being ordinal natural set holds
   RED(b1,1) = b1 & RED(1,b1) = 1;

:: ARYTM_3:th 30
theorem
for b1, b2 being ordinal natural set
      st b1 <> {}
   holds RED(b1,b2) <> {};

:: ARYTM_3:th 31
theorem
for b1 being ordinal natural set holds
   RED({},b1) = {} & (b1 = {} or RED(b1,{}) = 1);

:: ARYTM_3:th 32
theorem
for b1 being ordinal natural set
      st b1 <> {}
   holds RED(b1,b1) = 1;

:: ARYTM_3:th 33
theorem
for b1, b2, b3 being ordinal natural set
      st b1 <> {}
   holds RED(b2 *^ b1,b3 *^ b1) = RED(b2,b3);

:: ARYTM_3:funcnot 5 => ARYTM_3:func 5
definition
  func RAT+ -> set equals
    ({[b1,b2] where b1 is Element of omega, b2 is Element of omega: b1,b2 are_relative_prime & b2 <> {}} \ {[b1,1] where b1 is Element of omega: TRUE}) \/ omega;
end;

:: ARYTM_3:def 7
theorem
RAT+ = ({[b1,b2] where b1 is Element of omega, b2 is Element of omega: b1,b2 are_relative_prime & b2 <> {}} \ {[b1,1] where b1 is Element of omega: TRUE}) \/ omega;

:: ARYTM_3:funcreg 3
registration
  cluster RAT+ -> non empty;
end;

:: ARYTM_3:exreg 1
registration
  cluster non empty ordinal Element of RAT+;
end;

:: ARYTM_3:th 35
theorem
for b1 being Element of RAT+
      st not b1 in omega
   holds ex b2, b3 being Element of omega st
      b1 = [b2,b3] & b2,b3 are_relative_prime & b3 <> {} & b3 <> 1;

:: ARYTM_3:th 36
theorem
for b1, b2 being set holds
[b1,b2] is not ordinal set;

:: ARYTM_3:th 37
theorem
for b1 being ordinal set
      st b1 in RAT+
   holds b1 in omega;

:: ARYTM_3:condreg 1
registration
  cluster ordinal -> natural (Element of RAT+);
end;

:: ARYTM_3:th 38
theorem
for b1, b2 being set holds
not [b1,b2] in omega;

:: ARYTM_3:th 39
theorem
for b1, b2 being Element of omega holds
   [b1,b2] in RAT+
iff
   b1,b2 are_relative_prime & b2 <> {} & b2 <> 1;

:: ARYTM_3:funcnot 6 => ARYTM_3:func 6
definition
  let a1 be Element of RAT+;
  func numerator A1 -> Element of omega means
    it = a1
    if a1 in omega
    otherwise ex b1 being ordinal natural set st
       a1 = [it,b1];
end;

:: ARYTM_3:def 8
theorem
for b1 being Element of RAT+
for b2 being Element of omega holds
   (b1 in omega implies    (b2 = numerator b1
    iff
       b2 = b1)) &
    (b1 in omega or    (b2 = numerator b1
    iff
       ex b3 being ordinal natural set st
          b1 = [b2,b3]));

:: ARYTM_3:funcnot 7 => ARYTM_3:func 7
definition
  let a1 be Element of RAT+;
  func denominator A1 -> Element of omega means
    it = 1
    if a1 in omega
    otherwise ex b1 being ordinal natural set st
       a1 = [b1,it];
end;

:: ARYTM_3:def 9
theorem
for b1 being Element of RAT+
for b2 being Element of omega holds
   (b1 in omega implies    (b2 = denominator b1
    iff
       b2 = 1)) &
    (b1 in omega or    (b2 = denominator b1
    iff
       ex b3 being ordinal natural set st
          b1 = [b3,b2]));

:: ARYTM_3:th 40
theorem
for b1 being Element of RAT+ holds
   numerator b1,denominator b1 are_relative_prime;

:: ARYTM_3:th 41
theorem
for b1 being Element of RAT+ holds
   denominator b1 <> {};

:: ARYTM_3:th 42
theorem
for b1 being Element of RAT+
      st not b1 in omega
   holds b1 = [numerator b1,denominator b1] & denominator b1 <> 1;

:: ARYTM_3:th 43
theorem
for b1 being Element of RAT+ holds
      b1 <> {}
   iff
      numerator b1 <> {};

:: ARYTM_3:th 44
theorem
for b1 being Element of RAT+ holds
      b1 in omega
   iff
      denominator b1 = 1;

:: ARYTM_3:funcnot 8 => ARYTM_3:func 8
definition
  let a1, a2 be ordinal natural set;
  func A1 / A2 -> Element of RAT+ equals
    {}
    if a2 = {},
RED(a1,a2)
    if RED(a2,a1) = 1
    otherwise [RED(a1,a2),RED(a2,a1)];
end;

:: ARYTM_3:def 10
theorem
for b1, b2 being ordinal natural set holds
(b2 = {} implies b1 / b2 = {}) &
 (RED(b2,b1) = 1 implies b1 / b2 = RED(b1,b2)) &
 (b2 <> {} & RED(b2,b1) <> 1 implies b1 / b2 = [RED(b1,b2),RED(b2,b1)]);

:: ARYTM_3:funcnot 9 => ARYTM_3:func 8
notation
  let a1, a2 be ordinal natural set;
  synonym quotient(a1,a2) for a1 / a2;
end;

:: ARYTM_3:th 45
theorem
for b1 being Element of RAT+ holds
   (numerator b1) / denominator b1 = b1;

:: ARYTM_3:th 46
theorem
for b1, b2 being ordinal natural set holds
{} / b1 = {} & b2 / 1 = b2;

:: ARYTM_3:th 47
theorem
for b1 being ordinal natural set
      st b1 <> {}
   holds b1 / b1 = 1;

:: ARYTM_3:th 48
theorem
for b1, b2 being ordinal natural set
      st b1 <> {}
   holds numerator (b2 / b1) = RED(b2,b1) & denominator (b2 / b1) = RED(b1,b2);

:: ARYTM_3:th 49
theorem
for b1, b2 being Element of omega
      st b1,b2 are_relative_prime & b2 <> {}
   holds numerator (b1 / b2) = b1 & denominator (b1 / b2) = b2;

:: ARYTM_3:th 50
theorem
for b1, b2, b3 being ordinal natural set
      st b1 <> {}
   holds (b2 *^ b1) / (b3 *^ b1) = b2 / b3;

:: ARYTM_3:th 51
theorem
for b1, b2, b3, b4 being ordinal natural set
      st b2 <> {} & b1 <> {}
   holds    b3 / b2 = b4 / b1
   iff
      b3 *^ b1 = b2 *^ b4;

:: ARYTM_3:funcnot 10 => ARYTM_3:func 9
definition
  let a1, a2 be Element of RAT+;
  func A1 + A2 -> Element of RAT+ equals
    (((numerator a1) *^ denominator a2) +^ ((numerator a2) *^ denominator a1)) / ((denominator a1) *^ denominator a2);
  commutativity;
::  for a1, a2 being Element of RAT+ holds
::  a1 + a2 = a2 + a1;
end;

:: ARYTM_3:def 11
theorem
for b1, b2 being Element of RAT+ holds
b1 + b2 = (((numerator b1) *^ denominator b2) +^ ((numerator b2) *^ denominator b1)) / ((denominator b1) *^ denominator b2);

:: ARYTM_3:funcnot 11 => ARYTM_3:func 10
definition
  let a1, a2 be Element of RAT+;
  func A1 *' A2 -> Element of RAT+ equals
    ((numerator a1) *^ numerator a2) / ((denominator a1) *^ denominator a2);
  commutativity;
::  for a1, a2 being Element of RAT+ holds
::  a1 *' a2 = a2 *' a1;
end;

:: ARYTM_3:def 12
theorem
for b1, b2 being Element of RAT+ holds
b1 *' b2 = ((numerator b1) *^ numerator b2) / ((denominator b1) *^ denominator b2);

:: ARYTM_3:th 52
theorem
for b1, b2, b3, b4 being ordinal natural set
      st b2 <> {} & b1 <> {}
   holds (b3 / b2) + (b4 / b1) = ((b3 *^ b1) +^ (b2 *^ b4)) / (b2 *^ b1);

:: ARYTM_3:th 53
theorem
for b1, b2, b3 being ordinal natural set
      st b1 <> {}
   holds (b2 / b1) + (b3 / b1) = (b2 +^ b3) / b1;

:: ARYTM_3:exreg 2
registration
  cluster empty Element of RAT+;
end;

:: ARYTM_3:funcnot 12 => ARYTM_3:func 11
definition
  redefine func {} -> Element of RAT+;
end;

:: ARYTM_3:funcnot 13 => ARYTM_3:func 12
definition
  redefine func one -> non empty ordinal Element of RAT+;
end;

:: ARYTM_3:th 54
theorem
for b1 being Element of RAT+ holds
   b1 *' {} = {};

:: ARYTM_3:th 55
theorem
for b1, b2, b3, b4 being ordinal natural set holds
(b2 / b3) *' (b4 / b1) = (b2 *^ b4) / (b3 *^ b1);

:: ARYTM_3:th 56
theorem
for b1 being Element of RAT+ holds
   b1 + {} = b1;

:: ARYTM_3:th 57
theorem
for b1, b2, b3 being Element of RAT+ holds
(b1 + b2) + b3 = b1 + (b2 + b3);

:: ARYTM_3:th 58
theorem
for b1, b2, b3 being Element of RAT+ holds
(b1 *' b2) *' b3 = b1 *' (b2 *' b3);

:: ARYTM_3:th 59
theorem
for b1 being Element of RAT+ holds
   b1 *' one = b1;

:: ARYTM_3:th 60
theorem
for b1 being Element of RAT+
      st b1 <> {}
   holds ex b2 being Element of RAT+ st
      b1 *' b2 = 1;

:: ARYTM_3:th 61
theorem
for b1, b2 being Element of RAT+
      st b1 <> {}
   holds ex b3 being Element of RAT+ st
      b2 = b1 *' b3;

:: ARYTM_3:th 62
theorem
for b1, b2, b3 being Element of RAT+
      st b1 <> {} & b1 *' b2 = b1 *' b3
   holds b2 = b3;

:: ARYTM_3:th 63
theorem
for b1, b2, b3 being Element of RAT+ holds
b1 *' (b2 + b3) = (b1 *' b2) + (b1 *' b3);

:: ARYTM_3:th 64
theorem
for b1, b2 being ordinal Element of RAT+ holds
b1 + b2 = b1 +^ b2;

:: ARYTM_3:th 65
theorem
for b1, b2 being ordinal Element of RAT+ holds
b1 *' b2 = b1 *^ b2;

:: ARYTM_3:th 66
theorem
for b1 being Element of RAT+ holds
   ex b2 being Element of RAT+ st
      b1 = b2 + b2;

:: ARYTM_3:prednot 3 => ARYTM_3:pred 3
definition
  let a1, a2 be Element of RAT+;
  pred A1 <=' A2 means
    ex b1 being Element of RAT+ st
       a2 = a1 + b1;
  connectedness;
::  for a1, a2 being Element of RAT+
::        st a2 < a1
::     holds a2 <=' a1;
end;

:: ARYTM_3:dfs 13
definiens
  let a1, a2 be Element of RAT+;
To prove
     a1 <=' a2
it is sufficient to prove
  thus ex b1 being Element of RAT+ st
       a2 = a1 + b1;

:: ARYTM_3:def 13
theorem
for b1, b2 being Element of RAT+ holds
   b1 <=' b2
iff
   ex b3 being Element of RAT+ st
      b2 = b1 + b3;

:: ARYTM_3:prednot 4 => not ARYTM_3:pred 3
notation
  let a1, a2 be Element of RAT+;
  antonym a2 < a1 for a1 <=' a2;
end;

:: ARYTM_3:th 68
theorem
for b1 being set holds
   not [{},b1] in RAT+;

:: ARYTM_3:th 69
theorem
for b1, b2, b3 being Element of RAT+
      st b1 + b2 = b3 + b2
   holds b1 = b3;

:: ARYTM_3:th 70
theorem
for b1, b2 being Element of RAT+
      st b1 + b2 = {}
   holds b1 = {};

:: ARYTM_3:th 71
theorem
for b1 being Element of RAT+ holds
   {} <=' b1;

:: ARYTM_3:th 72
theorem
for b1 being Element of RAT+
      st b1 <=' {}
   holds b1 = {};

:: ARYTM_3:th 73
theorem
for b1, b2 being Element of RAT+
      st b1 <=' b2 & b2 <=' b1
   holds b1 = b2;

:: ARYTM_3:th 74
theorem
for b1, b2, b3 being Element of RAT+
      st b1 <=' b2 & b2 <=' b3
   holds b1 <=' b3;

:: ARYTM_3:th 75
theorem
for b1, b2 being Element of RAT+ holds
   b1 < b2
iff
   b1 <=' b2 & b1 <> b2;

:: ARYTM_3:th 76
theorem
for b1, b2, b3 being Element of RAT+
      st (b1 < b2 & b2 <=' b3 or b1 <=' b2 & b2 < b3)
   holds b1 < b3;

:: ARYTM_3:th 77
theorem
for b1, b2, b3 being Element of RAT+
      st b1 < b2 & b2 < b3
   holds b1 < b3;

:: ARYTM_3:th 78
theorem
for b1, b2 being Element of RAT+
      st b1 in omega & b1 + b2 in omega
   holds b2 in omega;

:: ARYTM_3:th 79
theorem
for b1 being Element of RAT+
for b2 being ordinal Element of RAT+
      st b2 < b1 & b1 < b2 + one
   holds not b1 in omega;

:: ARYTM_3:th 80
theorem
for b1 being Element of RAT+
      st b1 <> {}
   holds ex b2 being Element of RAT+ st
      b2 < b1 & not b2 in omega;

:: ARYTM_3:th 81
theorem
for b1 being Element of RAT+ holds
      {b2 where b2 is Element of RAT+: b2 < b1} in RAT+
   iff
      b1 = {};

:: ARYTM_3:th 82
theorem
for b1 being Element of bool RAT+
      st (ex b2 being Element of RAT+ st
            b2 in b1 & b2 <> {}) &
         (for b2, b3 being Element of RAT+
               st b2 in b1 & b3 <=' b2
            holds b3 in b1)
   holds ex b2, b3, b4 being Element of RAT+ st
      b2 in b1 & b3 in b1 & b4 in b1 & b2 <> b3 & b3 <> b4 & b4 <> b2;

:: ARYTM_3:th 83
theorem
for b1, b2, b3 being Element of RAT+ holds
   b1 + b2 <=' b3 + b2
iff
   b1 <=' b3;

:: ARYTM_3:th 85
theorem
for b1, b2 being Element of RAT+ holds
b1 <=' b1 + b2;

:: ARYTM_3:th 86
theorem
for b1, b2 being Element of RAT+
      st b1 *' b2 = {} & b1 <> {}
   holds b2 = {};

:: ARYTM_3:th 87
theorem
for b1, b2, b3 being Element of RAT+
      st b1 <=' b2 *' b3
   holds ex b4 being Element of RAT+ st
      b1 = b2 *' b4 & b4 <=' b3;

:: ARYTM_3:th 88
theorem
for b1, b2, b3 being Element of RAT+
      st b1 <> {} & b2 *' b1 <=' b3 *' b1
   holds b2 <=' b3;

:: ARYTM_3:th 89
theorem
for b1, b2, b3, b4 being Element of RAT+
      st b1 + b2 = b3 + b4 & b3 < b1
   holds b2 <=' b4;

:: ARYTM_3:th 90
theorem
for b1, b2, b3 being Element of RAT+
      st b1 <=' b2
   holds b1 *' b3 <=' b2 *' b3;

:: ARYTM_3:th 91
theorem
for b1, b2, b3, b4 being Element of RAT+
      st b1 *' b2 = b3 *' b4 & b3 < b1
   holds b2 <=' b4;

:: ARYTM_3:th 92
theorem
for b1, b2 being Element of RAT+ holds
   b1 = {}
iff
   b1 + b2 = b2;

:: ARYTM_3:th 93
theorem
for b1, b2, b3, b4 being Element of RAT+
      st b1 + b2 = b3 + b4 & b1 <=' b3
   holds b4 <=' b2;

:: ARYTM_3:th 94
theorem
for b1, b2, b3 being Element of RAT+
      st b1 <=' b2 & b2 <=' b1 + b3
   holds ex b4 being Element of RAT+ st
      b2 = b1 + b4 & b4 <=' b3;

:: ARYTM_3:th 95
theorem
for b1, b2, b3 being Element of RAT+
      st b1 <=' b2 + b3
   holds ex b4, b5 being Element of RAT+ st
      b1 = b4 + b5 & b4 <=' b2 & b5 <=' b3;

:: ARYTM_3:th 96
theorem
for b1, b2, b3 being Element of RAT+
      st b1 < b2 & b1 < b3
   holds ex b4 being Element of RAT+ st
      b4 <=' b2 & b4 <=' b3 & b1 < b4;

:: ARYTM_3:th 97
theorem
for b1, b2, b3 being Element of RAT+
      st b1 <=' b2 & b2 <=' b3 & b2 <> b3
   holds b1 <> b3;

:: ARYTM_3:th 98
theorem
for b1, b2, b3 being Element of RAT+
      st b1 < b2 + b3 & b3 <> {}
   holds ex b4, b5 being Element of RAT+ st
      b1 = b4 + b5 & b4 <=' b2 & b5 <=' b3 & b5 <> b3;

:: ARYTM_3:th 99
theorem
for b1 being non empty Element of bool RAT+
      st b1 in RAT+
   holds ex b2 being Element of RAT+ st
      b2 in b1 &
       (for b3 being Element of RAT+
             st b3 in b1
          holds b3 <=' b2);

:: ARYTM_3:th 100
theorem
for b1, b2 being Element of RAT+ holds
ex b3 being Element of RAT+ st
   (b1 + b3 = b2 or b2 + b3 = b1);

:: ARYTM_3:th 101
theorem
for b1, b2 being Element of RAT+
      st b1 < b2
   holds ex b3 being Element of RAT+ st
      b1 < b3 & b3 < b2;

:: ARYTM_3:th 102
theorem
for b1 being Element of RAT+ holds
   ex b2 being Element of RAT+ st
      b1 < b2;

:: ARYTM_3:th 103
theorem
for b1, b2 being Element of RAT+
      st b1 <> {}
   holds ex b3 being Element of RAT+ st
      b3 in omega & b2 <=' b3 *' b1;

:: ARYTM_3:sch 1
scheme ARYTM_3:sch 1
{F1 -> Element of RAT+,
  F2 -> Element of RAT+,
  F3 -> Element of RAT+}:
ex b1 being Element of RAT+ st
   b1 in omega & P1[b1] & not (P1[b1 + F2()])
provided
   F2() = 1
and
   F1() = {}
and
   F3() in omega
and
   P1[F1()]
and
   not (P1[F3()]);