Structure listRangeTheory


Source File Identifier index Theory binding index

signature listRangeTheory =
sig
  type thm = Thm.thm

  (*  Definitions  *)
    val listRangeINC_def : thm
    val listRangeLHI_def : thm

  (*  Theorems  *)
    val EL_listRangeLHI : thm
    val LENGTH_listRangeLHI : thm
    val MEM_listRangeINC : thm
    val MEM_listRangeLHI : thm
    val listRangeINC_CONS : thm
    val listRangeINC_EMPTY : thm
    val listRangeINC_SING : thm
    val listRangeLHI_ALL_DISTINCT : thm
    val listRangeLHI_CONS : thm
    val listRangeLHI_EMPTY : thm
    val listRangeLHI_EQ : thm

  val listRange_grammars : type_grammar.grammar * term_grammar.grammar
(*
   [list] Parent theory of "listRange"

   [listRangeINC_def]  Definition

      |- ∀m n. [m .. n] = GENLIST (λi. m + i) (n + 1 − m)

   [listRangeLHI_def]  Definition

      |- ∀m n. [m ..< n] = GENLIST (λi. m + i) (n − m)

   [EL_listRangeLHI]  Theorem

      |- lo + i < hi ⇒ (EL i [lo ..< hi] = lo + i)

   [LENGTH_listRangeLHI]  Theorem

      |- LENGTH [lo ..< hi] = hi − lo

   [MEM_listRangeINC]  Theorem

      |- MEM x [m .. n] ⇔ m ≤ x ∧ x ≤ n

   [MEM_listRangeLHI]  Theorem

      |- MEM x [m ..< n] ⇔ m ≤ x ∧ x < n

   [listRangeINC_CONS]  Theorem

      |- m ≤ n ⇒ ([m .. n] = m::[m + 1 .. n])

   [listRangeINC_EMPTY]  Theorem

      |- n < m ⇒ ([m .. n] = [])

   [listRangeINC_SING]  Theorem

      |- [m .. m] = [m]

   [listRangeLHI_ALL_DISTINCT]  Theorem

      |- ALL_DISTINCT [lo ..< hi]

   [listRangeLHI_CONS]  Theorem

      |- lo < hi ⇒ ([lo ..< hi] = lo::[lo + 1 ..< hi])

   [listRangeLHI_EMPTY]  Theorem

      |- hi ≤ lo ⇒ ([lo ..< hi] = [])

   [listRangeLHI_EQ]  Theorem

      |- [m ..< m] = []


*)
end


Source File Identifier index Theory binding index

HOL 4, Kananaskis-10