Structure gcdTheory


Source File Identifier index Theory binding index

signature gcdTheory =
sig
  type thm = Thm.thm
  
  (*  Definitions  *)
    val is_gcd_def : thm
    val lcm_def : thm
  
  (*  Theorems  *)
    val BINARY_GCD : thm
    val DIVIDES_EXP_BASE : thm
    val EUCLID_LEMMA : thm
    val FACTOR_OUT_GCD : thm
    val FACT_MOD_PRIME : thm
    val GCD_0 : thm
    val GCD_0L : thm
    val GCD_0R : thm
    val GCD_1 : thm
    val GCD_ADD_L : thm
    val GCD_ADD_L_THM : thm
    val GCD_ADD_R : thm
    val GCD_ADD_R_THM : thm
    val GCD_ASSOC : thm
    val GCD_ASSOC_COMM : thm
    val GCD_CANCEL_MULT : thm
    val GCD_COMM : thm
    val GCD_COMMON_FACTOR : thm
    val GCD_DIVIDES : thm
    val GCD_EFFICIENTLY : thm
    val GCD_EQ_0 : thm
    val GCD_EUCLID : thm
    val GCD_GCD : thm
    val GCD_IS_GCD : thm
    val GCD_IS_GREATEST_COMMON_DIVISOR : thm
    val GCD_LCM : thm
    val GCD_LINEAR : thm
    val GCD_MOD : thm
    val GCD_MOD_COMM : thm
    val GCD_MULTIPLE : thm
    val GCD_MULTIPLE_ALT : thm
    val GCD_ONE_PROPERTY : thm
    val GCD_POS : thm
    val GCD_PROPERTY : thm
    val GCD_REDUCE : thm
    val GCD_REDUCE_BY_COPRIME : thm
    val GCD_REF : thm
    val GCD_SUB_L : thm
    val GCD_SUB_R : thm
    val GCD_SUCfree_ind : thm
    val GCD_SYM : thm
    val IS_GCD_0L : thm
    val IS_GCD_0R : thm
    val IS_GCD_MINUS_L : thm
    val IS_GCD_MINUS_R : thm
    val IS_GCD_REF : thm
    val IS_GCD_SYM : thm
    val IS_GCD_UNIQUE : thm
    val LCM_0 : thm
    val LCM_1 : thm
    val LCM_ASSOC : thm
    val LCM_ASSOC_COMM : thm
    val LCM_COMM : thm
    val LCM_COMMON_COPRIME : thm
    val LCM_COMMON_FACTOR : thm
    val LCM_COPRIME : thm
    val LCM_DIVIDES : thm
    val LCM_DIVISORS : thm
    val LCM_EQ_0 : thm
    val LCM_IS_LCM : thm
    val LCM_IS_LEAST_COMMON_MULTIPLE : thm
    val LCM_LE : thm
    val LCM_LEAST : thm
    val LCM_POS : thm
    val LCM_PROPERTY : thm
    val LCM_REF : thm
    val LCM_SYM : thm
    val LINEAR_GCD : thm
    val L_EUCLIDES : thm
    val MOD_EQ : thm
    val MOD_EQ_DIFF : thm
    val MOD_MOD_EQN : thm
    val MOD_NONZERO_WHEN_GCD_ONE : thm
    val MOD_PLUS2 : thm
    val MOD_WITH_GCD_ONE : thm
    val PRIME_BIG_NOT_DIVIDES_FACT : thm
    val PRIME_GCD : thm
    val PRIME_IS_GCD : thm
    val PRODUCT_WITH_GCD_ONE : thm
    val P_EUCLIDES : thm
    val coprime_0 : thm
    val coprime_0L : thm
    val coprime_0R : thm
    val coprime_PRE : thm
    val coprime_SUC : thm
    val coprime_by_prime_factor : thm
    val coprime_by_prime_factor_le : thm
    val coprime_common_factor : thm
    val coprime_exp : thm
    val coprime_exp_comm : thm
    val coprime_factor_coprime : thm
    val coprime_factor_not_divides : thm
    val coprime_gt_1 : thm
    val coprime_mod : thm
    val coprime_mod_iff : thm
    val coprime_neq_1 : thm
    val coprime_prime_factor_coprime : thm
    val coprime_product_coprime : thm
    val coprime_product_coprime_iff : thm
    val coprime_product_coprime_sym : thm
    val coprime_product_divides : thm
    val coprime_sym : thm
    val divides_coprime_mul : thm
    val divides_iff_gcd_fix : thm
    val divides_iff_lcm_fix : thm
    val divides_imp_coprime_with_predecessor : thm
    val divides_imp_coprime_with_successor : thm
    val gcd_LESS_EQ : thm
    val gcd_compute : thm
    val gcd_coprime_cancel : thm
    val gcd_def : thm
    val gcd_ind : thm
    val prime_not_coprime_divides : thm
    val prime_not_divides_coprime : thm
    val primes_coprime : thm
(*
   [divides] Parent theory of "gcd"
   
   [is_gcd_def]  Definition
      
      ⊢ ∀a b c.
          is_gcd a b c ⇔
          c divides a ∧ c divides b ∧
          ∀d. d divides a ∧ d divides b ⇒ d divides c
   
   [lcm_def]  Definition
      
      ⊢ ∀m n. lcm m n = if m = 0 ∨ n = 0 then 0 else m * n DIV gcd m n
   
   [BINARY_GCD]  Theorem
      
      ⊢ ∀m n.
          (EVEN m ∧ EVEN n ⇒ gcd m n = 2 * gcd (m DIV 2) (n DIV 2)) ∧
          (EVEN m ∧ ODD n ⇒ gcd m n = gcd (m DIV 2) n)
   
   [DIVIDES_EXP_BASE]  Theorem
      
      ⊢ ∀a b n. prime a ∧ 0 < n ⇒ (a divides b ⇔ a divides b ** n)
   
   [EUCLID_LEMMA]  Theorem
      
      ⊢ ∀p x y. prime p ⇒ ((x * y) MOD p = 0 ⇔ x MOD p = 0 ∨ y MOD p = 0)
   
   [FACTOR_OUT_GCD]  Theorem
      
      ⊢ ∀n m.
          n ≠ 0 ∧ m ≠ 0 ⇒
          ∃p q. n = p * gcd n m ∧ m = q * gcd n m ∧ coprime p q
   
   [FACT_MOD_PRIME]  Theorem
      
      ⊢ ∀p n. prime p ∧ n < p ⇒ FACT n MOD p ≠ 0
   
   [GCD_0]  Theorem
      
      ⊢ ∀x. gcd 0 x = x ∧ gcd x 0 = x
   
   [GCD_0L]  Theorem
      
      ⊢ ∀a. gcd 0 a = a
   
   [GCD_0R]  Theorem
      
      ⊢ ∀a. gcd a 0 = a
   
   [GCD_1]  Theorem
      
      ⊢ coprime 1 x ∧ coprime x 1
   
   [GCD_ADD_L]  Theorem
      
      ⊢ ∀a b. gcd (a + b) a = gcd a b
   
   [GCD_ADD_L_THM]  Theorem
      
      ⊢ (∀a b. gcd (a + b) a = gcd a b) ∧ ∀a b. gcd (b + a) a = gcd a b
   
   [GCD_ADD_R]  Theorem
      
      ⊢ ∀a b. gcd a (a + b) = gcd a b
   
   [GCD_ADD_R_THM]  Theorem
      
      ⊢ (∀a b. gcd a (a + b) = gcd a b) ∧ ∀a b. gcd a (b + a) = gcd a b
   
   [GCD_ASSOC]  Theorem
      
      ⊢ ∀a b c. gcd a (gcd b c) = gcd (gcd a b) c
   
   [GCD_ASSOC_COMM]  Theorem
      
      ⊢ ∀a b c. gcd a (gcd b c) = gcd b (gcd a c)
   
   [GCD_CANCEL_MULT]  Theorem
      
      ⊢ ∀m n k. coprime m k ⇒ gcd m (k * n) = gcd m n
   
   [GCD_COMM]  Theorem
      
      ⊢ gcd a b = gcd b a
   
   [GCD_COMMON_FACTOR]  Theorem
      
      ⊢ ∀m n k. gcd (k * m) (k * n) = k * gcd m n
   
   [GCD_DIVIDES]  Theorem
      
      ⊢ ∀m n.
          0 < n ∧ 0 < m ⇒
          0 < gcd n m ∧ n MOD gcd n m = 0 ∧ m MOD gcd n m = 0
   
   [GCD_EFFICIENTLY]  Theorem
      
      ⊢ ∀a b. gcd a b = if a = 0 then b else gcd (b MOD a) a
   
   [GCD_EQ_0]  Theorem
      
      ⊢ ∀n m. gcd n m = 0 ⇔ n = 0 ∧ m = 0
   
   [GCD_EUCLID]  Theorem
      
      ⊢ ∀a b c. gcd a (b * a + c) = gcd a c
   
   [GCD_GCD]  Theorem
      
      ⊢ ∀m n. gcd n (gcd n m) = gcd n m
   
   [GCD_IS_GCD]  Theorem
      
      ⊢ ∀a b. is_gcd a b (gcd a b)
   
   [GCD_IS_GREATEST_COMMON_DIVISOR]  Theorem
      
      ⊢ ∀a b.
          gcd a b divides a ∧ gcd a b divides b ∧
          ∀d. d divides a ∧ d divides b ⇒ d divides gcd a b
   
   [GCD_LCM]  Theorem
      
      ⊢ ∀m n. gcd m n * lcm m n = m * n
   
   [GCD_LINEAR]  Theorem
      
      ⊢ ∀j k. 0 < j ⇒ ∃p q. p * j = q * k + gcd j k
   
   [GCD_MOD]  Theorem
      
      ⊢ ∀m n. 0 < m ⇒ gcd m n = gcd m (n MOD m)
   
   [GCD_MOD_COMM]  Theorem
      
      ⊢ ∀m n. 0 < m ⇒ gcd n m = gcd (n MOD m) m
   
   [GCD_MULTIPLE]  Theorem
      
      ⊢ ∀m n. 0 < n ∧ m MOD n = 0 ⇒ gcd m n = n
   
   [GCD_MULTIPLE_ALT]  Theorem
      
      ⊢ ∀m n. gcd (m * n) n = n
   
   [GCD_ONE_PROPERTY]  Theorem
      
      ⊢ ∀n x. 1 < n ∧ coprime n x ⇒ ∃k. (k * x) MOD n = 1 ∧ coprime n k
   
   [GCD_POS]  Theorem
      
      ⊢ ∀m n. 0 < m ∨ 0 < n ⇒ 0 < gcd m n
   
   [GCD_PROPERTY]  Theorem
      
      ⊢ ∀a b c.
          c = gcd a b ⇔
          c divides a ∧ c divides b ∧
          ∀x. x divides a ∧ x divides b ⇒ x divides c
   
   [GCD_REDUCE]  Theorem
      
      ⊢ ∀a b c. gcd (b * a + c) a = gcd a c
   
   [GCD_REDUCE_BY_COPRIME]  Theorem
      
      ⊢ ∀m n k. coprime m k ⇒ gcd m (k * n) = gcd m n
   
   [GCD_REF]  Theorem
      
      ⊢ ∀a. gcd a a = a
   
   [GCD_SUB_L]  Theorem
      
      ⊢ ∀a b. b ≤ a ⇒ gcd (a − b) b = gcd a b
   
   [GCD_SUB_R]  Theorem
      
      ⊢ ∀a b. a ≤ b ⇒ gcd a (b − a) = gcd a b
   
   [GCD_SUCfree_ind]  Theorem
      
      ⊢ ∀P. (∀y. P 0 y) ∧ (∀x y. P x y ⇒ P y x) ∧ (∀x. P x x) ∧
            (∀x y. 0 < x ∧ 0 < y ∧ P x y ⇒ P x (x + y)) ⇒
            ∀m n. P m n
   
   [GCD_SYM]  Theorem
      
      ⊢ ∀a b. gcd a b = gcd b a
   
   [IS_GCD_0L]  Theorem
      
      ⊢ ∀a. is_gcd 0 a a
   
   [IS_GCD_0R]  Theorem
      
      ⊢ ∀a. is_gcd a 0 a
   
   [IS_GCD_MINUS_L]  Theorem
      
      ⊢ ∀a b c. b ≤ a ∧ is_gcd (a − b) b c ⇒ is_gcd a b c
   
   [IS_GCD_MINUS_R]  Theorem
      
      ⊢ ∀a b c. a ≤ b ∧ is_gcd a (b − a) c ⇒ is_gcd a b c
   
   [IS_GCD_REF]  Theorem
      
      ⊢ ∀a. is_gcd a a a
   
   [IS_GCD_SYM]  Theorem
      
      ⊢ ∀a b c. is_gcd a b c ⇔ is_gcd b a c
   
   [IS_GCD_UNIQUE]  Theorem
      
      ⊢ ∀a b c d. is_gcd a b c ∧ is_gcd a b d ⇒ c = d
   
   [LCM_0]  Theorem
      
      ⊢ lcm 0 x = 0 ∧ lcm x 0 = 0
   
   [LCM_1]  Theorem
      
      ⊢ lcm 1 x = x ∧ lcm x 1 = x
   
   [LCM_ASSOC]  Theorem
      
      ⊢ ∀a b c. lcm a (lcm b c) = lcm (lcm a b) c
   
   [LCM_ASSOC_COMM]  Theorem
      
      ⊢ ∀a b c. lcm a (lcm b c) = lcm b (lcm a c)
   
   [LCM_COMM]  Theorem
      
      ⊢ lcm a b = lcm b a
   
   [LCM_COMMON_COPRIME]  Theorem
      
      ⊢ ∀a b. coprime a b ⇒ ∀c. lcm (a * c) (b * c) = a * b * c
   
   [LCM_COMMON_FACTOR]  Theorem
      
      ⊢ ∀m n k. lcm (k * m) (k * n) = k * lcm m n
   
   [LCM_COPRIME]  Theorem
      
      ⊢ ∀m n. coprime m n ⇒ lcm m n = m * n
   
   [LCM_DIVIDES]  Theorem
      
      ⊢ ∀n a b. a divides n ∧ b divides n ⇒ lcm a b divides n
   
   [LCM_DIVISORS]  Theorem
      
      ⊢ ∀m n. m divides lcm m n ∧ n divides lcm m n
   
   [LCM_EQ_0]  Theorem
      
      ⊢ ∀m n. lcm m n = 0 ⇔ m = 0 ∨ n = 0
   
   [LCM_IS_LCM]  Theorem
      
      ⊢ ∀m n p. m divides p ∧ n divides p ⇒ lcm m n divides p
   
   [LCM_IS_LEAST_COMMON_MULTIPLE]  Theorem
      
      ⊢ m divides lcm m n ∧ n divides lcm m n ∧
        ∀p. m divides p ∧ n divides p ⇒ lcm m n divides p
   
   [LCM_LE]  Theorem
      
      ⊢ 0 < m ∧ 0 < n ⇒ m ≤ lcm m n ∧ m ≤ lcm n m
   
   [LCM_LEAST]  Theorem
      
      ⊢ 0 < m ∧ 0 < n ⇒
        ∀p. 0 < p ∧ p < lcm m n ⇒ ¬(m divides p) ∨ ¬(n divides p)
   
   [LCM_POS]  Theorem
      
      ⊢ ∀m n. 0 < m ∧ 0 < n ⇒ 0 < lcm m n
   
   [LCM_PROPERTY]  Theorem
      
      ⊢ ∀a b c.
          c = lcm a b ⇔
          a divides c ∧ b divides c ∧
          ∀x. a divides x ∧ b divides x ⇒ c divides x
   
   [LCM_REF]  Theorem
      
      ⊢ ∀a. lcm a a = a
   
   [LCM_SYM]  Theorem
      
      ⊢ ∀a b. lcm a b = lcm b a
   
   [LINEAR_GCD]  Theorem
      
      ⊢ ∀n m. n ≠ 0 ⇒ ∃p q. p * n = q * m + gcd m n
   
   [L_EUCLIDES]  Theorem
      
      ⊢ ∀a b c. coprime a b ∧ b divides a * c ⇒ b divides c
   
   [MOD_EQ]  Theorem
      
      ⊢ ∀n a b. 0 < n ∧ b ≤ a ⇒ ((a − b) MOD n = 0 ⇔ a MOD n = b MOD n)
   
   [MOD_EQ_DIFF]  Theorem
      
      ⊢ ∀n a b. 0 < n ∧ a MOD n = b MOD n ⇒ (a − b) MOD n = 0
   
   [MOD_MOD_EQN]  Theorem
      
      ⊢ ∀n a b. 0 < n ∧ b ≤ a ⇒ (a MOD n = b MOD n ⇔ ∃c. a = b + c * n)
   
   [MOD_NONZERO_WHEN_GCD_ONE]  Theorem
      
      ⊢ ∀n. 1 < n ⇒ ∀x. coprime n x ⇒ 0 < x ∧ 0 < x MOD n
   
   [MOD_PLUS2]  Theorem
      
      ⊢ ∀n x y. 0 < n ⇒ (x + y) MOD n = (x + y MOD n) MOD n
   
   [MOD_WITH_GCD_ONE]  Theorem
      
      ⊢ ∀n x. 0 < n ∧ coprime n x ⇒ coprime n (x MOD n)
   
   [PRIME_BIG_NOT_DIVIDES_FACT]  Theorem
      
      ⊢ ∀p k. prime p ∧ k < p ⇒ ¬(p divides FACT k)
   
   [PRIME_GCD]  Theorem
      
      ⊢ ∀p b. prime p ⇒ p divides b ∨ coprime p b
   
   [PRIME_IS_GCD]  Theorem
      
      ⊢ ∀p b. prime p ⇒ p divides b ∨ is_gcd p b 1
   
   [PRODUCT_WITH_GCD_ONE]  Theorem
      
      ⊢ ∀n x y. coprime n x ∧ coprime n y ⇒ coprime n (x * y)
   
   [P_EUCLIDES]  Theorem
      
      ⊢ ∀p a b. prime p ∧ p divides a * b ⇒ p divides a ∨ p divides b
   
   [coprime_0]  Theorem
      
      ⊢ ∀n. (coprime 0 n ⇔ n = 1) ∧ (coprime n 0 ⇔ n = 1)
   
   [coprime_0L]  Theorem
      
      ⊢ ∀n. coprime 0 n ⇔ n = 1
   
   [coprime_0R]  Theorem
      
      ⊢ ∀n. coprime n 0 ⇔ n = 1
   
   [coprime_PRE]  Theorem
      
      ⊢ ∀n. 0 < n ⇒ coprime n (n − 1)
   
   [coprime_SUC]  Theorem
      
      ⊢ ∀n. coprime n (n + 1)
   
   [coprime_by_prime_factor]  Theorem
      
      ⊢ ∀m n. coprime m n ⇔ ∀p. prime p ⇒ ¬(p divides m ∧ p divides n)
   
   [coprime_by_prime_factor_le]  Theorem
      
      ⊢ ∀m n.
          0 < m ∧ 0 < n ⇒
          (coprime m n ⇔
           ∀p. prime p ∧ p ≤ m ∧ p ≤ n ⇒ ¬(p divides m ∧ p divides n))
   
   [coprime_common_factor]  Theorem
      
      ⊢ ∀a b c. coprime a b ∧ c divides a ∧ c divides b ⇒ c = 1
   
   [coprime_exp]  Theorem
      
      ⊢ ∀c m. coprime c m ⇒ ∀n. coprime (c ** n) m
   
   [coprime_exp_comm]  Theorem
      
      ⊢ ∀a b. coprime a b ⇒ ∀n. coprime a (b ** n)
   
   [coprime_factor_coprime]  Theorem
      
      ⊢ ∀m n. m divides n ⇒ ∀k. coprime n k ⇒ coprime m k
   
   [coprime_factor_not_divides]  Theorem
      
      ⊢ ∀n k.
          1 < n ∧ coprime n k ⇒ ∀p. 1 < p ∧ p divides n ⇒ ¬(p divides k)
   
   [coprime_gt_1]  Theorem
      
      ⊢ ∀n k. coprime k n ∧ 1 < n ⇒ 0 < k
   
   [coprime_mod]  Theorem
      
      ⊢ ∀m n. 0 < m ∧ coprime m n ⇒ coprime m (n MOD m)
   
   [coprime_mod_iff]  Theorem
      
      ⊢ ∀m n. 0 < m ⇒ (coprime m n ⇔ coprime m (n MOD m))
   
   [coprime_neq_1]  Theorem
      
      ⊢ ∀n k. coprime k n ∧ n ≠ 1 ⇒ k ≠ 0
   
   [coprime_prime_factor_coprime]  Theorem
      
      ⊢ ∀n p. 1 < n ∧ prime p ∧ p divides n ⇒ ∀k. coprime n k ⇒ coprime p k
   
   [coprime_product_coprime]  Theorem
      
      ⊢ ∀x y z. coprime x z ∧ coprime y z ⇒ coprime (x * y) z
   
   [coprime_product_coprime_iff]  Theorem
      
      ⊢ ∀x y z. coprime x z ⇒ (coprime y z ⇔ coprime (x * y) z)
   
   [coprime_product_coprime_sym]  Theorem
      
      ⊢ ∀x y z. coprime z x ∧ coprime z y ⇒ coprime z (x * y)
   
   [coprime_product_divides]  Theorem
      
      ⊢ ∀n a b. a divides n ∧ b divides n ∧ coprime a b ⇒ a * b divides n
   
   [coprime_sym]  Theorem
      
      ⊢ ∀x y. coprime x y ⇔ coprime y x
   
   [divides_coprime_mul]  Theorem
      
      ⊢ ∀n m k. coprime n m ⇒ (n divides m * k ⇔ n divides k)
   
   [divides_iff_gcd_fix]  Theorem
      
      ⊢ ∀m n. n divides m ⇔ gcd n m = n
   
   [divides_iff_lcm_fix]  Theorem
      
      ⊢ ∀m n. n divides m ⇔ lcm n m = m
   
   [divides_imp_coprime_with_predecessor]  Theorem
      
      ⊢ ∀m n. 0 < m ∧ n divides m ⇒ coprime n (PRE m)
   
   [divides_imp_coprime_with_successor]  Theorem
      
      ⊢ ∀m n. n divides m ⇒ coprime n (SUC m)
   
   [gcd_LESS_EQ]  Theorem
      
      ⊢ ∀m n. n ≠ 0 ⇒ gcd m n ≤ n
   
   [gcd_compute]  Theorem
      
      ⊢ (∀y. gcd 0 y = y) ∧
        (∀x. gcd <..num comp'n..> 0 = <..num comp'n..> ) ∧
        (∀x. gcd <..num comp'n..> 0 = <..num comp'n..> ) ∧
        (∀y x.
           gcd <..num comp'n..> <..num comp'n..> =
           if <..num comp'n..> − 1 ≤ <..num comp'n..> − 1 then
             gcd (<..num comp'n..> − 1 − (<..num comp'n..> − 1))
               <..num comp'n..>
           else
             gcd <..num comp'n..>
               (<..num comp'n..> − 1 − (<..num comp'n..> − 1))) ∧
        (∀y x.
           gcd <..num comp'n..> <..num comp'n..> =
           if <..num comp'n..> − 1 ≤ <..num comp'n..> then
             gcd (<..num comp'n..> − (<..num comp'n..> − 1))
               <..num comp'n..>
           else
             gcd <..num comp'n..>
               (<..num comp'n..> − 1 − <..num comp'n..> )) ∧
        (∀y x.
           gcd <..num comp'n..> <..num comp'n..> =
           if <..num comp'n..> ≤ <..num comp'n..> − 1 then
             gcd (<..num comp'n..> − 1 − <..num comp'n..> )
               <..num comp'n..>
           else
             gcd <..num comp'n..>
               (<..num comp'n..> − (<..num comp'n..> − 1))) ∧
        ∀y x.
          gcd <..num comp'n..> <..num comp'n..> =
          if <..num comp'n..> ≤ <..num comp'n..> then
            gcd (<..num comp'n..> − <..num comp'n..> ) <..num comp'n..>
          else gcd <..num comp'n..> (<..num comp'n..> − <..num comp'n..> )
   
   [gcd_coprime_cancel]  Theorem
      
      ⊢ ∀m n p. coprime p n ⇒ gcd (p * m) n = gcd m n
   
   [gcd_def]  Theorem
      
      ⊢ (∀y. gcd 0 y = y) ∧ (∀x. gcd (SUC x) 0 = SUC x) ∧
        ∀y x.
          gcd (SUC x) (SUC y) =
          if y ≤ x then gcd (x − y) (SUC y) else gcd (SUC x) (y − x)
   
   [gcd_ind]  Theorem
      
      ⊢ ∀P. (∀y. P 0 y) ∧ (∀x. P (SUC x) 0) ∧
            (∀x y.
               (¬(y ≤ x) ⇒ P (SUC x) (y − x)) ∧ (y ≤ x ⇒ P (x − y) (SUC y)) ⇒
               P (SUC x) (SUC y)) ⇒
            ∀v v1. P v v1
   
   [prime_not_coprime_divides]  Theorem
      
      ⊢ ∀n p. prime p ∧ gcd p n ≠ 1 ⇒ p divides n
   
   [prime_not_divides_coprime]  Theorem
      
      ⊢ ∀n p. prime p ∧ ¬(p divides n) ⇒ coprime p n
   
   [primes_coprime]  Theorem
      
      ⊢ ∀p q. prime p ∧ prime q ∧ p ≠ q ⇒ coprime p q
   
   
*)
end


Source File Identifier index Theory binding index

HOL 4, Trindemossen-2