Article INT_2, MML version 4.99.1005

:: INT_2:funcnot 1 => INT_2:func 1
definition
  let a1 be integer set;
  redefine func abs a1 -> Element of NAT;
  projectivity;
::  for a1 being integer set holds
::     abs abs a1 = abs a1;
end;

:: INT_2:th 1
theorem
for b1, b2, b3 being integer set
      st b1 divides b2 & b1 divides b2 + b3
   holds b1 divides b3;

:: INT_2:th 2
theorem
for b1, b2, b3 being integer set
      st b1 divides b2
   holds b1 divides b2 * b3;

:: INT_2:th 3
theorem
for b1 being integer set holds
      0 divides b1
   iff
      b1 = 0;

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

:: INT_2:def 2
theorem
for b1, b2 being integer set
for b3 being natural set holds
      b3 = b1 lcm b2
   iff
      b1 divides b3 &
       b2 divides b3 &
       (for b4 being integer set
             st b1 divides b4 & b2 divides b4
          holds b3 divides b4);

:: INT_2:funcnot 3 => INT_2:func 2
notation
  let a1, a2 be integer set;
  synonym a1 lcm' a2 for a1 lcm a2;
end;

:: INT_2:th 4
theorem
for b1, b2 being integer set holds
   (b1 = 0 or b2 = 0)
iff
   b1 lcm b2 = 0;

:: INT_2:funcnot 4 => INT_2:func 3
definition
  let a1, a2 be integer set;
  func A1 gcd A2 -> natural set means
    it divides a1 &
     it divides a2 &
     (for b1 being integer set
           st b1 divides a1 & b1 divides a2
        holds b1 divides it);
  commutativity;
::  for a1, a2 being integer set holds
::  a1 gcd a2 = a2 gcd a1;
end;

:: INT_2:def 3
theorem
for b1, b2 being integer set
for b3 being natural set holds
      b3 = b1 gcd b2
   iff
      b3 divides b1 &
       b3 divides b2 &
       (for b4 being integer set
             st b4 divides b1 & b4 divides b2
          holds b4 divides b3);

:: INT_2:th 5
theorem
for b1, b2 being integer set holds
   b1 = 0 & b2 = 0
iff
   b1 gcd b2 = 0;

:: INT_2:th 8
theorem
for b1 being natural set holds
      - b1 is Element of NAT
   iff
      b1 = 0;

:: INT_2:th 9
theorem
- 1 is not Element of NAT;

:: INT_2:th 10
theorem
for b1 being integer set holds
      0 divides b1
   iff
      b1 = 0;

:: INT_2:th 11
theorem
for b1 being integer set holds
   b1 divides - b1 & - b1 divides b1;

:: INT_2:th 12
theorem
for b1, b2, b3 being integer set
      st b1 divides b2
   holds b1 divides b2 * b3;

:: INT_2:th 13
theorem
for b1, b2, b3 being integer set
      st b1 divides b2 & b2 divides b3
   holds b1 divides b3;

:: INT_2:th 14
theorem
for b1, b2 being integer set holds
(b1 divides b2 implies b1 divides - b2) & (b1 divides - b2 implies b1 divides b2) & (b1 divides b2 implies - b1 divides b2) & (- b1 divides b2 implies b1 divides b2) & (b1 divides b2 implies - b1 divides - b2) & (- b1 divides - b2 implies b1 divides b2) & (b1 divides - b2 implies - b1 divides b2) & (- b1 divides b2 implies b1 divides - b2);

:: INT_2:th 15
theorem
for b1, b2 being integer set
      st b1 divides b2 & b2 divides b1 & b1 <> b2
   holds b1 = - b2;

:: INT_2:th 16
theorem
for b1 being integer set holds
   b1 divides 0 & 1 divides b1 & - 1 divides b1;

:: INT_2:th 17
theorem
for b1 being integer set
      st (b1 divides 1 or b1 divides - 1) & b1 <> 1
   holds b1 = - 1;

:: INT_2:th 18
theorem
for b1 being integer set
      st (b1 = 1 or b1 = - 1)
   holds b1 divides 1 & b1 divides - 1;

:: INT_2:th 19
theorem
for b1, b2, b3 being integer set holds
   b1,b2 are_congruent_mod b3
iff
   b3 divides b1 - b2;

:: INT_2:th 20
theorem
for b1 being integer set holds
   abs b1 is Element of NAT;

:: INT_2:th 21
theorem
for b1, b2 being integer set holds
   b1 divides b2
iff
   abs b1 divides abs b2;

:: INT_2:th 23
theorem
for b1, b2 being integer set holds
b1 lcm b2 is Element of NAT;

:: INT_2:th 25
theorem
for b1, b2 being integer set holds
b1 divides b1 lcm b2;

:: INT_2:th 26
theorem
for b1, b2 being integer set holds
b1 divides b2 lcm b1;

:: INT_2:th 27
theorem
for b1, b2, b3 being integer set
      st b1 divides b3 & b2 divides b3
   holds b1 lcm b2 divides b3;

:: INT_2:th 29
theorem
for b1, b2 being integer set holds
b1 gcd b2 is Element of NAT;

:: INT_2:th 31
theorem
for b1, b2 being integer set holds
b1 gcd b2 divides b1;

:: INT_2:th 32
theorem
for b1, b2 being integer set holds
b1 gcd b2 divides b2;

:: INT_2:th 33
theorem
for b1, b2, b3 being integer set
      st b3 divides b1 & b3 divides b2
   holds b3 divides b1 gcd b2;

:: INT_2:th 34
theorem
for b1, b2 being integer set holds
   (b1 = 0 or b2 = 0)
iff
   b1 lcm b2 = 0;

:: INT_2:th 35
theorem
for b1, b2 being integer set holds
   b1 = 0 & b2 = 0
iff
   b1 gcd b2 = 0;

:: INT_2:prednot 1 => INT_2:pred 1
definition
  let a1, a2 be integer set;
  pred A1,A2 are_relative_prime means
    a1 gcd a2 = 1;
  symmetry;
::  for a1, a2 being integer set
::        st a1,a2 are_relative_prime
::     holds a2,a1 are_relative_prime;
end;

:: INT_2:dfs 3
definiens
  let a1, a2 be integer set;
To prove
     a1,a2 are_relative_prime
it is sufficient to prove
  thus a1 gcd a2 = 1;

:: INT_2:def 4
theorem
for b1, b2 being integer set holds
   b1,b2 are_relative_prime
iff
   b1 gcd b2 = 1;

:: INT_2:th 38
theorem
for b1, b2 being integer set
      st (b1 = 0 implies b2 <> 0)
   holds ex b3, b4 being integer set st
      b1 = (b1 gcd b2) * b3 & b2 = (b1 gcd b2) * b4 & b3,b4 are_relative_prime;

:: INT_2:th 39
theorem
for b1, b2, b3 being integer set
      st b1,b2 are_relative_prime
   holds (b3 * b1) gcd (b3 * b2) = abs b3 & (b3 * b1) gcd (b2 * b3) = abs b3 & (b1 * b3) gcd (b3 * b2) = abs b3 & (b1 * b3) gcd (b2 * b3) = abs b3;

:: INT_2:th 40
theorem
for b1, b2, b3 being integer set
      st b1 divides b2 * b3 & b2,b1 are_relative_prime
   holds b1 divides b3;

:: INT_2:th 41
theorem
for b1, b2, b3 being integer set
      st b1,b2 are_relative_prime & b3,b2 are_relative_prime
   holds b1 * b3,b2 are_relative_prime;

:: INT_2:attrnot 1 => INT_2:attr 1
definition
  let a1 be natural set;
  attr a1 is prime means
    1 < a1 &
     (for b1 being natural set
           st b1 divides a1 & b1 <> 1
        holds b1 = a1);
end;

:: INT_2:dfs 4
definiens
  let a1 be natural set;
To prove
     a1 is prime
it is sufficient to prove
  thus 1 < a1 &
     (for b1 being natural set
           st b1 divides a1 & b1 <> 1
        holds b1 = a1);

:: INT_2:def 5
theorem
for b1 being natural set holds
      b1 is prime
   iff
      1 < b1 &
       (for b2 being natural set
             st b2 divides b1 & b2 <> 1
          holds b2 = b1);

:: INT_2:th 43
theorem
for b1, b2 being integer set
      st 0 < b1 & b2 divides b1
   holds b2 <= b1;

:: INT_2:th 44
theorem
2 is prime;

:: INT_2:th 46
theorem
4 is not prime;

:: INT_2:exreg 1
registration
  cluster ext-real non negative epsilon-transitive epsilon-connected ordinal natural complex real integer prime set;
end;

:: INT_2:exreg 2
registration
  cluster ext-real non negative non empty epsilon-transitive epsilon-connected ordinal natural complex real integer non prime set;
end;

:: INT_2:th 47
theorem
for b1, b2 being natural set
      st b1 is prime & b2 is prime & not b1,b2 are_relative_prime
   holds b1 = b2;

:: INT_2:th 48
theorem
for b1 being natural set
      st 2 <= b1
   holds ex b2 being Element of NAT st
      b2 is prime & b2 divides b1;

:: INT_2:th 49
theorem
for b1, b2 being integer set
      st 0 <= b1 & 0 <= b2
   holds (abs b1) mod abs b2 = b1 mod b2 & (abs b1) div abs b2 = b1 div b2;

:: INT_2:th 50
theorem
for b1, b2 being integer set holds
b1 lcm b2 = (abs b1) lcm abs b2;

:: INT_2:th 51
theorem
for b1, b2 being integer set holds
b1 gcd b2 = (abs b1) gcd abs b2;