Theory "divides"

Parents     while   numeral

Signature

Constant Type
PRIMES :num -> num
divides :num reln
prime :num -> bool

Definitions

divides_def
⊢ ∀a b. divides a b ⇔ ∃q. b = q * a
prime_def
⊢ ∀a. prime a ⇔ a ≠ 1 ∧ ∀b. divides b a ⇒ b = a ∨ b = 1
PRIMES_def
⊢ PRIMES 0 = 2 ∧ ∀n. PRIMES (SUC n) = LEAST p. prime p ∧ PRIMES n < p


Theorems

ALL_DIVIDES_0
⊢ ∀a. divides a 0
ZERO_DIVIDES
⊢ divides 0 m ⇔ m = 0
DIVIDES_REFL
⊢ ∀a. divides a a
DIVIDES_TRANS
⊢ ∀a b c. divides a b ∧ divides b c ⇒ divides a c
ONE_DIVIDES_ALL
⊢ ∀a. divides 1 a
DIVIDES_ONE
⊢ ∀x. divides x 1 ⇔ x = 1
DIVIDES_ADD_1
⊢ ∀a b c. divides a b ∧ divides a c ⇒ divides a (b + c)
DIVIDES_ADD_2
⊢ ∀a b c. divides a b ∧ divides a (b + c) ⇒ divides a c
DIVIDES_SUB
⊢ ∀a b c. divides a b ∧ divides a c ⇒ divides a (b − c)
DIVIDES_LE
⊢ ∀a b. 0 < b ∧ divides a b ⇒ a ≤ b
DIVIDES_LEQ_OR_ZERO
⊢ ∀m n. divides m n ⇒ m ≤ n ∨ n = 0
NOT_LT_DIVIDES
⊢ ∀a b. 0 < b ∧ b < a ⇒ ¬divides a b
DIVIDES_ANTISYM
⊢ ∀a b. divides a b ∧ divides b a ⇒ a = b
DIVIDES_MULT
⊢ ∀a b c. divides a b ⇒ divides a (b * c)
DIVIDES_MULT_LEFT
⊢ ∀n m. divides (n * m) m ⇔ m = 0 ∨ n = 1
DIVIDES_FACT
⊢ ∀b. 0 < b ⇒ divides b (FACT b)
LEQ_DIVIDES_FACT
⊢ ∀m n. 0 < m ∧ m ≤ n ⇒ divides m (FACT n)
NOT_PRIME_0
⊢ ¬prime 0
NOT_PRIME_1
⊢ ¬prime 1
PRIME_2
⊢ prime 2
PRIME_3
⊢ prime 3
PRIME_POS
⊢ ∀p. prime p ⇒ 0 < p
ONE_LT_PRIME
⊢ ∀p. prime p ⇒ 1 < p
prime_divides_only_self
⊢ ∀m n. prime m ∧ prime n ∧ divides m n ⇒ m = n
PRIME_FACTOR
⊢ ∀n. n ≠ 1 ⇒ ∃p. prime p ∧ divides p n
EUCLID
⊢ ∀n. ∃p. n < p ∧ prime p
primePRIMES
⊢ ∀n. prime (PRIMES n)
INFINITE_PRIMES
⊢ ∀n. PRIMES n < PRIMES (SUC n)
LT_PRIMES
⊢ ∀m n. m < n ⇒ PRIMES m < PRIMES n
PRIMES_11
⊢ ∀m n. PRIMES m = PRIMES n ⇒ m = n
INDEX_LESS_PRIMES
⊢ ∀n. n < PRIMES n
EUCLID_PRIMES
⊢ ∀n. ∃i. n < PRIMES i
NEXT_LARGER_PRIME
⊢ ∀n. ∃i. n < PRIMES i ∧ ∀j. j < i ⇒ PRIMES j ≤ n
PRIMES_NO_GAP
⊢ ∀n p. PRIMES n < p ∧ p < PRIMES (SUC n) ∧ prime p ⇒ F
PRIMES_ONTO
⊢ ∀p. prime p ⇒ ∃i. PRIMES i = p
PRIME_INDEX
⊢ ∀p. prime p ⇔ ∃i. p = PRIMES i
ONE_LT_PRIMES
⊢ ∀n. 1 < PRIMES n
ZERO_LT_PRIMES
⊢ ∀n. 0 < PRIMES n
compute_divides
⊢ ∀a b.
      divides a b ⇔ if a = 0 then b = 0 else if a = 1 then T
      else if b = 0 then T else b MOD a = 0