Structure dividesTheory


Source File Identifier index Theory binding index

signature dividesTheory =
sig
  type thm = Thm.thm
  
  (*  Definitions  *)
    val PRIMES_def : thm
    val divides_def : thm
    val prime_def : thm
  
  (*  Theorems  *)
    val ALL_DIVIDES_0 : thm
    val DIVIDES_ADD_1 : thm
    val DIVIDES_ADD_2 : thm
    val DIVIDES_ANTISYM : thm
    val DIVIDES_FACT : thm
    val DIVIDES_LE : thm
    val DIVIDES_LEQ_OR_ZERO : thm
    val DIVIDES_MULT : thm
    val DIVIDES_MULT_LEFT : thm
    val DIVIDES_ONE : thm
    val DIVIDES_REFL : thm
    val DIVIDES_SUB : thm
    val DIVIDES_TRANS : thm
    val EUCLID : thm
    val EUCLID_PRIMES : thm
    val INDEX_LESS_PRIMES : thm
    val INFINITE_PRIMES : thm
    val LEQ_DIVIDES_FACT : thm
    val LT_PRIMES : thm
    val NEXT_LARGER_PRIME : thm
    val NOT_LT_DIVIDES : thm
    val NOT_PRIME_0 : thm
    val NOT_PRIME_1 : thm
    val ONE_DIVIDES_ALL : thm
    val ONE_LT_PRIME : thm
    val ONE_LT_PRIMES : thm
    val PRIMES_11 : thm
    val PRIMES_NO_GAP : thm
    val PRIMES_ONTO : thm
    val PRIME_2 : thm
    val PRIME_3 : thm
    val PRIME_FACTOR : thm
    val PRIME_INDEX : thm
    val PRIME_POS : thm
    val ZERO_DIVIDES : thm
    val ZERO_LT_PRIMES : thm
    val compute_divides : thm
    val primePRIMES : thm
    val prime_divides_only_self : thm
  
  val divides_grammars : type_grammar.grammar * term_grammar.grammar
(*
   [numeral] Parent theory of "divides"
   
   [while] Parent theory of "divides"
   
   [PRIMES_def]  Definition
      
      ⊢ (PRIMES 0 = 2) ∧
        ∀n. PRIMES (SUC n) = LEAST p. prime p ∧ PRIMES n < p
   
   [divides_def]  Definition
      
      ⊢ ∀a b. divides a b ⇔ ∃q. b = q * a
   
   [prime_def]  Definition
      
      ⊢ ∀a. prime a ⇔ a ≠ 1 ∧ ∀b. divides b a ⇒ (b = a) ∨ (b = 1)
   
   [ALL_DIVIDES_0]  Theorem
      
      ⊢ ∀a. divides a 0
   
   [DIVIDES_ADD_1]  Theorem
      
      ⊢ ∀a b c. divides a b ∧ divides a c ⇒ divides a (b + c)
   
   [DIVIDES_ADD_2]  Theorem
      
      ⊢ ∀a b c. divides a b ∧ divides a (b + c) ⇒ divides a c
   
   [DIVIDES_ANTISYM]  Theorem
      
      ⊢ ∀a b. divides a b ∧ divides b a ⇒ (a = b)
   
   [DIVIDES_FACT]  Theorem
      
      ⊢ ∀b. 0 < b ⇒ divides b (FACT b)
   
   [DIVIDES_LE]  Theorem
      
      ⊢ ∀a b. 0 < b ∧ divides a b ⇒ a ≤ b
   
   [DIVIDES_LEQ_OR_ZERO]  Theorem
      
      ⊢ ∀m n. divides m n ⇒ m ≤ n ∨ (n = 0)
   
   [DIVIDES_MULT]  Theorem
      
      ⊢ ∀a b c. divides a b ⇒ divides a (b * c)
   
   [DIVIDES_MULT_LEFT]  Theorem
      
      ⊢ ∀n m. divides (n * m) m ⇔ (m = 0) ∨ (n = 1)
   
   [DIVIDES_ONE]  Theorem
      
      ⊢ ∀x. divides x 1 ⇔ (x = 1)
   
   [DIVIDES_REFL]  Theorem
      
      ⊢ ∀a. divides a a
   
   [DIVIDES_SUB]  Theorem
      
      ⊢ ∀a b c. divides a b ∧ divides a c ⇒ divides a (b − c)
   
   [DIVIDES_TRANS]  Theorem
      
      ⊢ ∀a b c. divides a b ∧ divides b c ⇒ divides a c
   
   [EUCLID]  Theorem
      
      ⊢ ∀n. ∃p. n < p ∧ prime p
   
   [EUCLID_PRIMES]  Theorem
      
      ⊢ ∀n. ∃i. n < PRIMES i
   
   [INDEX_LESS_PRIMES]  Theorem
      
      ⊢ ∀n. n < PRIMES n
   
   [INFINITE_PRIMES]  Theorem
      
      ⊢ ∀n. PRIMES n < PRIMES (SUC n)
   
   [LEQ_DIVIDES_FACT]  Theorem
      
      ⊢ ∀m n. 0 < m ∧ m ≤ n ⇒ divides m (FACT n)
   
   [LT_PRIMES]  Theorem
      
      ⊢ ∀m n. m < n ⇒ PRIMES m < PRIMES n
   
   [NEXT_LARGER_PRIME]  Theorem
      
      ⊢ ∀n. ∃i. n < PRIMES i ∧ ∀j. j < i ⇒ PRIMES j ≤ n
   
   [NOT_LT_DIVIDES]  Theorem
      
      ⊢ ∀a b. 0 < b ∧ b < a ⇒ ¬divides a b
   
   [NOT_PRIME_0]  Theorem
      
      ⊢ ¬prime 0
   
   [NOT_PRIME_1]  Theorem
      
      ⊢ ¬prime 1
   
   [ONE_DIVIDES_ALL]  Theorem
      
      ⊢ ∀a. divides 1 a
   
   [ONE_LT_PRIME]  Theorem
      
      ⊢ ∀p. prime p ⇒ 1 < p
   
   [ONE_LT_PRIMES]  Theorem
      
      ⊢ ∀n. 1 < PRIMES n
   
   [PRIMES_11]  Theorem
      
      ⊢ ∀m n. (PRIMES m = PRIMES n) ⇒ (m = n)
   
   [PRIMES_NO_GAP]  Theorem
      
      ⊢ ∀n p. PRIMES n < p ∧ p < PRIMES (SUC n) ∧ prime p ⇒ F
   
   [PRIMES_ONTO]  Theorem
      
      ⊢ ∀p. prime p ⇒ ∃i. PRIMES i = p
   
   [PRIME_2]  Theorem
      
      ⊢ prime 2
   
   [PRIME_3]  Theorem
      
      ⊢ prime 3
   
   [PRIME_FACTOR]  Theorem
      
      ⊢ ∀n. n ≠ 1 ⇒ ∃p. prime p ∧ divides p n
   
   [PRIME_INDEX]  Theorem
      
      ⊢ ∀p. prime p ⇔ ∃i. p = PRIMES i
   
   [PRIME_POS]  Theorem
      
      ⊢ ∀p. prime p ⇒ 0 < p
   
   [ZERO_DIVIDES]  Theorem
      
      ⊢ divides 0 m ⇔ (m = 0)
   
   [ZERO_LT_PRIMES]  Theorem
      
      ⊢ ∀n. 0 < PRIMES n
   
   [compute_divides]  Theorem
      
      ⊢ ∀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
   
   [primePRIMES]  Theorem
      
      ⊢ ∀n. prime (PRIMES n)
   
   [prime_divides_only_self]  Theorem
      
      ⊢ ∀m n. prime m ∧ prime n ∧ divides m n ⇒ (m = n)
   
   
*)
end


Source File Identifier index Theory binding index

HOL 4, Kananaskis-11