Structure normalizerTheory


Source File Identifier index Theory binding index

signature normalizerTheory =
sig
  type thm = Thm.thm
  
  (*  Theorems  *)
    val DIVMOD_ELIM_THM'' : thm
    val NOT_EVEN : thm
    val NOT_ODD : thm
    val NUM_INTEGRAL : thm
    val NUM_INTEGRAL_LEMMA : thm
    val NUM_NORMALIZE_CONV_sth : thm
    val NUM_SIMPLIFY_CONV_pth_evenodd : thm
    val PRE_ELIM_THM'' : thm
    val RING_FINAL_pth : thm
    val RING_pth_step : thm
    val SEMIRING_PTHS : thm
    val SUB_ELIM_THM'' : thm
(*
   [arithmetic] Parent theory of "normalizer"
   
   [DIVMOD_ELIM_THM'']  Theorem
      
      ⊢ 0 < n ⇒
        P (m DIV n) (m MOD n) ∧ (∀q r. (m ≠ q * n + r ∨ ¬(r < n)) ∨ P q r) ∨
        ¬P (m DIV n) (m MOD n) ∧ ∃q r. (m = q * n + r ∧ r < n) ∧ ¬P q r
   
   [NOT_EVEN]  Theorem
      
      ⊢ ∀n. ¬EVEN n ⇔ ODD n
   
   [NOT_ODD]  Theorem
      
      ⊢ ∀n. ¬ODD n ⇔ EVEN n
   
   [NUM_INTEGRAL]  Theorem
      
      ⊢ (∀x. 0 * x = 0) ∧ (∀x y z. x + y = x + z ⇔ y = z) ∧
        ∀w x y z. w * y + x * z = w * z + x * y ⇔ w = x ∨ y = z
   
   [NUM_INTEGRAL_LEMMA]  Theorem
      
      ⊢ w = x + d ∧ y = z + e ⇒
        (w * y + x * z = w * z + x * y ⇔ w = x ∨ y = z)
   
   [NUM_NORMALIZE_CONV_sth]  Theorem
      
      ⊢ 1 * x = x ∧ a * m + b * m = (a + b) * m ∧ a * m + m = (a + 1) * m ∧
        m + a * m = (a + 1) * m ∧ m + m = (1 + 1) * m ∧ 0 * m = 0 ∧
        0 + a = a ∧ a + 0 = a ∧ a * b = b * a ∧
        (a + b) * c = a * c + b * c ∧ 0 * a = 0 ∧ a * 0 = 0 ∧ 1 * a = a ∧
        a * 1 = a ∧ lx * ly * (rx * ry) = lx * rx * (ly * ry) ∧
        lx * ly * (rx * ry) = lx * (ly * (rx * ry)) ∧
        lx * ly * (rx * ry) = rx * (lx * ly * ry) ∧
        lx * ly * rx = lx * rx * ly ∧ lx * ly * rx = lx * (ly * rx) ∧
        lx * rx = rx * lx ∧ lx * (rx * ry) = lx * rx * ry ∧
        lx * (rx * ry) = rx * (lx * ry) ∧
        a + b + (c + d) = a + c + (b + d) ∧ a + b + c = a + (b + c) ∧
        a + (c + d) = c + (a + d) ∧ a + b + c = a + c + b ∧ a + c = c + a ∧
        a + (c + d) = a + c + d ∧ x ** p * x ** q = x ** (p + q) ∧
        x * x ** q = x ** SUC q ∧ x ** q * x = x ** SUC q ∧ x * x = x² ∧
        (x * y) ** q = x ** q * y ** q ∧ (x ** p) ** q = x ** (p * q) ∧
        x ** 0 = 1 ∧ x ** 1 = x ∧ x * (y + z) = x * y + x * z ∧
        x ** SUC q = x * x ** q
   
   [NUM_SIMPLIFY_CONV_pth_evenodd]  Theorem
      
      ⊢ (EVEN x ⇔ ∀y. x ≠ SUC (2 * y)) ∧ (ODD x ⇔ ∀y. x ≠ 2 * y) ∧
        (¬EVEN x ⇔ ∀y. x ≠ 2 * y) ∧ (¬ODD x ⇔ ∀y. x ≠ SUC (2 * y))
   
   [PRE_ELIM_THM'']  Theorem
      
      ⊢ P (PRE n) ⇔ ∀m. n ≠ SUC m ∧ (m ≠ 0 ∨ n ≠ 0) ∨ P m
   
   [RING_FINAL_pth]  Theorem
      
      ⊢ (p ⇒ F) ⇒ (¬q ⇔ p) ⇒ q
   
   [RING_pth_step]  Theorem
      
      ⊢ ∀add mul n0.
          (∀x. mul n0 x = n0) ∧ (∀x y z. add x y = add x z ⇔ y = z) ∧
          (∀w x y z.
             add (mul w y) (mul x z) = add (mul w z) (mul x y) ⇔
             w = x ∨ y = z) ⇒
          (∀a b c d.
             a ≠ b ∧ c ≠ d ⇔
             add (mul a c) (mul b d) ≠ add (mul a d) (mul b c)) ∧
          ∀n a b c d.
            n ≠ n0 ⇒ a = b ∧ c ≠ d ⇒ add a (mul n c) ≠ add b (mul n d)
   
   [SEMIRING_PTHS]  Theorem
      
      ⊢ (∀x y z. add x (add y z) = add (add x y) z) ∧
        (∀x y. add x y = add y x) ∧ (∀x. add r0 x = x) ∧
        (∀x y z. mul x (mul y z) = mul (mul x y) z) ∧
        (∀x y. mul x y = mul y x) ∧ (∀x. mul r1 x = x) ∧
        (∀x. mul r0 x = r0) ∧
        (∀x y z. mul x (add y z) = add (mul x y) (mul x z)) ∧
        (∀x. pwr x 0 = r1) ∧ (∀x n. pwr x (SUC n) = mul x (pwr x n)) ⇒
        mul r1 x = x ∧ add (mul a m) (mul b m) = mul (add a b) m ∧
        add (mul a m) m = mul (add a r1) m ∧
        add m (mul a m) = mul (add a r1) m ∧ add m m = mul (add r1 r1) m ∧
        mul r0 m = r0 ∧ add r0 a = a ∧ add a r0 = a ∧ mul a b = mul b a ∧
        mul (add a b) c = add (mul a c) (mul b c) ∧ mul r0 a = r0 ∧
        mul a r0 = r0 ∧ mul r1 a = a ∧ mul a r1 = a ∧
        mul (mul lx ly) (mul rx ry) = mul (mul lx rx) (mul ly ry) ∧
        mul (mul lx ly) (mul rx ry) = mul lx (mul ly (mul rx ry)) ∧
        mul (mul lx ly) (mul rx ry) = mul rx (mul (mul lx ly) ry) ∧
        mul (mul lx ly) rx = mul (mul lx rx) ly ∧
        mul (mul lx ly) rx = mul lx (mul ly rx) ∧ mul lx rx = mul rx lx ∧
        mul lx (mul rx ry) = mul (mul lx rx) ry ∧
        mul lx (mul rx ry) = mul rx (mul lx ry) ∧
        add (add a b) (add c d) = add (add a c) (add b d) ∧
        add (add a b) c = add a (add b c) ∧
        add a (add c d) = add c (add a d) ∧
        add (add a b) c = add (add a c) b ∧ add a c = add c a ∧
        add a (add c d) = add (add a c) d ∧
        mul (pwr x p) (pwr x q) = pwr x (p + q) ∧
        mul x (pwr x q) = pwr x (SUC q) ∧ mul (pwr x q) x = pwr x (SUC q) ∧
        mul x x = pwr x 2 ∧ pwr (mul x y) q = mul (pwr x q) (pwr y q) ∧
        pwr (pwr x p) q = pwr x (p * q) ∧ pwr x 0 = r1 ∧ pwr x 1 = x ∧
        mul x (add y z) = add (mul x y) (mul x z) ∧
        pwr x (SUC q) = mul x (pwr x q)
   
   [SUB_ELIM_THM'']  Theorem
      
      ⊢ P (a − b) ⇔ ∀d. a ≠ b + d ∧ (¬(a < b) ∨ d ≠ 0) ∨ P d
   
   
*)
end


Source File Identifier index Theory binding index

HOL 4, Trindemossen-2