Structure cardinalTheory


Source File Identifier index Theory binding index

signature cardinalTheory =
sig
  type thm = Thm.thm
  
  (*  Definitions  *)
    val bijns_def : thm
    val cardeq_def : thm
    val cardleq_def : thm
    val list_def : thm
    val set_exp_def : thm
  
  (*  Theorems  *)
    val BIJ_functions_agree : thm
    val CANTOR : thm
    val CARDEQ_0 : thm
    val CARDEQ_CARD : thm
    val CARDEQ_CARDLEQ : thm
    val CARDEQ_CARD_EQN : thm
    val CARDEQ_CROSS : thm
    val CARDEQ_CROSS_SYM : thm
    val CARDEQ_FINITE : thm
    val CARDEQ_INSERT_RWT : thm
    val CARDEQ_SUBSET_CARDLEQ : thm
    val CARDLEQ_CARD : thm
    val CARDLEQ_CROSS_CONG : thm
    val CARDLEQ_FINITE : thm
    val CARD_BIGUNION : thm
    val CARD_CARDEQ_I : thm
    val CARD_LT_CARD : thm
    val CARD_MUL_ABSORB_LE : thm
    val CARD_MUL_LT_INFINITE : thm
    val CARD_MUL_LT_LEMMA : thm
    val COUNT_EQ_EMPTY : thm
    val EMPTY_CARDLEQ : thm
    val EMPTY_set_exp : thm
    val EMPTY_set_exp_CARD : thm
    val FINITE_CLE_INFINITE : thm
    val FINITE_IMAGE_INJ' : thm
    val IMAGE_cardleq : thm
    val IMAGE_cardleq_rwt : thm
    val INFINITE_A_list_BIJ_A : thm
    val INFINITE_UNIV_INF : thm
    val INFINITE_Unum : thm
    val INFINITE_cardleq_INSERT : thm
    val POW_EQ_X_EXP_X : thm
    val POW_TWO_set_exp : thm
    val SET_SQUARED_CARDEQ_SET : thm
    val SET_SUM_CARDEQ_SET : thm
    val SING_set_exp : thm
    val SING_set_exp_CARD : thm
    val SUBSET_CARDLEQ : thm
    val UNIV_list : thm
    val bijections_cardeq : thm
    val cardeq_INSERT : thm
    val cardeq_REFL : thm
    val cardeq_SYM : thm
    val cardeq_TRANS : thm
    val cardeq_bijns_cong : thm
    val cardleq_ANTISYM : thm
    val cardleq_REFL : thm
    val cardleq_SURJ : thm
    val cardleq_TRANS : thm
    val cardleq_dichotomy : thm
    val cardleq_empty : thm
    val cardleq_lt_trans : thm
    val cardleq_lteq : thm
    val cardlt_REFL : thm
    val cardlt_TRANS : thm
    val cardlt_cardle : thm
    val cardlt_lenoteq : thm
    val cardlt_leq_trans : thm
    val count_cardle : thm
    val countable_cardeq : thm
    val countable_decomposition : thm
    val countable_thm : thm
    val disjoint_countable_decomposition : thm
    val exp_INSERT_cardeq : thm
    val exp_count_cardeq : thm
    val finite_subsets_bijection : thm
    val list_BIGUNION_EXP : thm
    val list_EMPTY : thm
    val list_SING : thm
    val set_binomial2 : thm
    val set_exp_card_cong : thm
    val set_exp_cardle_cong : thm
    val set_exp_count : thm
    val set_exp_product : thm
  
  val cardinal_grammars : type_grammar.grammar * term_grammar.grammar
(*
   [wellorder] Parent theory of "cardinal"
   
   [bijns_def]  Definition
      
      ⊢ ∀A.
            bijns A =
            {f | THE ∘ f PERMUTES A ∧ ∀a. a ∈ A ⇔ ∃b. f a = SOME b}
   
   [cardeq_def]  Definition
      
      ⊢ ∀s1 s2. s1 ≈ s2 ⇔ ∃f. BIJ f s1 s2
   
   [cardleq_def]  Definition
      
      ⊢ ∀s1 s2. s1 ≼ s2 ⇔ ∃f. INJ f s1 s2
   
   [list_def]  Definition
      
      ⊢ ∀A. list A = {l | ∀e. MEM e l ⇒ e ∈ A}
   
   [set_exp_def]  Definition
      
      ⊢ ∀A B.
            A ** B =
            {f |
            (∀b. b ∈ B ⇒ ∃a. a ∈ A ∧ (f b = SOME a)) ∧
            ∀b. b ∉ B ⇒ (f b = NONE)}
   
   [BIJ_functions_agree]  Theorem
      
      ⊢ ∀f g s t. BIJ f s t ∧ (∀x. x ∈ s ⇒ (f x = g x)) ⇒ BIJ g s t
   
   [CANTOR]  Theorem
      
      ⊢ A <</= POW A
   
   [CARDEQ_0]  Theorem
      
      ⊢ (x ≈ ∅ ⇔ (x = ∅)) ∧ (∅ ≈ x ⇔ (x = ∅))
   
   [CARDEQ_CARD]  Theorem
      
      ⊢ s1 ≈ s2 ∧ FINITE s1 ⇒ (CARD s1 = CARD s2)
   
   [CARDEQ_CARDLEQ]  Theorem
      
      ⊢ s1 ≈ s2 ∧ t1 ≈ t2 ⇒ (s1 ≼ t1 ⇔ s2 ≼ t2)
   
   [CARDEQ_CARD_EQN]  Theorem
      
      ⊢ FINITE s1 ∧ FINITE s2 ⇒ (s1 ≈ s2 ⇔ (CARD s1 = CARD s2))
   
   [CARDEQ_CROSS]  Theorem
      
      ⊢ s1 ≈ s2 ∧ t1 ≈ t2 ⇒ s1 × t1 ≈ s2 × t2
   
   [CARDEQ_CROSS_SYM]  Theorem
      
      ⊢ s × t ≈ t × s
   
   [CARDEQ_FINITE]  Theorem
      
      ⊢ s1 ≈ s2 ⇒ (FINITE s1 ⇔ FINITE s2)
   
   [CARDEQ_INSERT_RWT]  Theorem
      
      ⊢ ∀s. INFINITE s ⇒ x INSERT s ≈ s
   
   [CARDEQ_SUBSET_CARDLEQ]  Theorem
      
      ⊢ s ≈ t ⇒ s ≼ t
   
   [CARDLEQ_CARD]  Theorem
      
      ⊢ FINITE s1 ∧ FINITE s2 ⇒ (s1 ≼ s2 ⇔ CARD s1 ≤ CARD s2)
   
   [CARDLEQ_CROSS_CONG]  Theorem
      
      ⊢ x1 ≼ x2 ∧ y1 ≼ y2 ⇒ x1 × y1 ≼ x2 × y2
   
   [CARDLEQ_FINITE]  Theorem
      
      ⊢ ∀s1 s2. FINITE s2 ∧ s1 ≼ s2 ⇒ FINITE s1
   
   [CARD_BIGUNION]  Theorem
      
      ⊢ INFINITE k ∧ s1 ≼ k ∧ (∀e. e ∈ s1 ⇒ e ≼ k) ⇒ BIGUNION s1 ≼ k
   
   [CARD_CARDEQ_I]  Theorem
      
      ⊢ FINITE s1 ∧ FINITE s2 ∧ (CARD s1 = CARD s2) ⇒ s1 ≈ s2
   
   [CARD_LT_CARD]  Theorem
      
      ⊢ FINITE s1 ∧ FINITE s2 ⇒ (s1 <</= s2 ⇔ CARD s1 < CARD s2)
   
   [CARD_MUL_ABSORB_LE]  Theorem
      
      ⊢ ∀s t. INFINITE t ∧ s ≼ t ⇒ s × t ≼ t
   
   [CARD_MUL_LT_INFINITE]  Theorem
      
      ⊢ ∀s t. s <</= t ∧ t <</= u ∧ INFINITE u ⇒ s × t <</= u
   
   [CARD_MUL_LT_LEMMA]  Theorem
      
      ⊢ ∀s t. s ≼ t ∧ t <</= u ∧ INFINITE u ⇒ s × t <</= u
   
   [COUNT_EQ_EMPTY]  Theorem
      
      ⊢ (count n = ∅) ⇔ (n = 0)
   
   [EMPTY_CARDLEQ]  Theorem
      
      ⊢ ∅ ≼ t
   
   [EMPTY_set_exp]  Theorem
      
      ⊢ (A ** ∅ = {K NONE}) ∧ (B ≠ ∅ ⇒ (∅ ** B = ∅))
   
   [EMPTY_set_exp_CARD]  Theorem
      
      ⊢ A ** ∅ ≈ count 1
   
   [FINITE_CLE_INFINITE]  Theorem
      
      ⊢ FINITE s ∧ INFINITE t ⇒ s ≼ t
   
   [FINITE_IMAGE_INJ']  Theorem
      
      ⊢ (∀x y. x ∈ s ∧ y ∈ s ⇒ ((f x = f y) ⇔ (x = y))) ⇒
        (FINITE (IMAGE f s) ⇔ FINITE s)
   
   [IMAGE_cardleq]  Theorem
      
      ⊢ IMAGE f s ≼ s
   
   [IMAGE_cardleq_rwt]  Theorem
      
      ⊢ s ≼ t ⇒ IMAGE f s ≼ t
   
   [INFINITE_A_list_BIJ_A]  Theorem
      
      ⊢ INFINITE A ⇒ list A ≈ A
   
   [INFINITE_UNIV_INF]  Theorem
      
      ⊢ INFINITE 𝕌(:α inf)
   
   [INFINITE_Unum]  Theorem
      
      ⊢ INFINITE A ⇔ 𝕌(:num) ≼ A
   
   [INFINITE_cardleq_INSERT]  Theorem
      
      ⊢ INFINITE A ⇒ (x INSERT s ≼ A ⇔ s ≼ A)
   
   [POW_EQ_X_EXP_X]  Theorem
      
      ⊢ INFINITE A ⇒ POW A ≈ A ** A
   
   [POW_TWO_set_exp]  Theorem
      
      ⊢ POW A ≈ count 2 ** A
   
   [SET_SQUARED_CARDEQ_SET]  Theorem
      
      ⊢ INFINITE s ⇒ s × s ≈ s
   
   [SET_SUM_CARDEQ_SET]  Theorem
      
      ⊢ INFINITE s ⇒
        s ≈ {T; F} × s ∧ ∀A B. DISJOINT A B ∧ A ≈ s ∧ B ≈ s ⇒ A ∪ B ≈ s
   
   [SING_set_exp]  Theorem
      
      ⊢ ({x} ** B = {(λb. if b ∈ B then SOME x else NONE)}) ∧
        (A ** {x} = {(λb. if b = x then SOME a else NONE) | a ∈ A})
   
   [SING_set_exp_CARD]  Theorem
      
      ⊢ {x} ** B ≈ count 1 ∧ A ** {x} ≈ A
   
   [SUBSET_CARDLEQ]  Theorem
      
      ⊢ x ⊆ y ⇒ x ≼ y
   
   [UNIV_list]  Theorem
      
      ⊢ 𝕌(:α list) = list 𝕌(:α)
   
   [bijections_cardeq]  Theorem
      
      ⊢ INFINITE s ⇒ bijns s ≈ POW s
   
   [cardeq_INSERT]  Theorem
      
      ⊢ x INSERT s ≈ s ⇔ x ∈ s ∨ INFINITE s
   
   [cardeq_REFL]  Theorem
      
      ⊢ ∀s. s ≈ s
   
   [cardeq_SYM]  Theorem
      
      ⊢ ∀s t. s ≈ t ⇔ t ≈ s
   
   [cardeq_TRANS]  Theorem
      
      ⊢ ∀s t u. s ≈ t ∧ t ≈ u ⇒ s ≈ u
   
   [cardeq_bijns_cong]  Theorem
      
      ⊢ A ≈ B ⇒ bijns A ≈ bijns B
   
   [cardleq_ANTISYM]  Theorem
      
      ⊢ ∀s t. s ≼ t ∧ t ≼ s ⇒ s ≈ t
   
   [cardleq_REFL]  Theorem
      
      ⊢ ∀s. s ≼ s
   
   [cardleq_SURJ]  Theorem
      
      ⊢ A ≼ B ⇔ (∃f. SURJ f B A) ∨ (A = ∅)
   
   [cardleq_TRANS]  Theorem
      
      ⊢ ∀s t u. s ≼ t ∧ t ≼ u ⇒ s ≼ u
   
   [cardleq_dichotomy]  Theorem
      
      ⊢ s ≼ t ∨ t ≼ s
   
   [cardleq_empty]  Theorem
      
      ⊢ x ≼ ∅ ⇔ (x = ∅)
   
   [cardleq_lt_trans]  Theorem
      
      ⊢ ∀r s t. r ≼ s ∧ s <</= t ⇒ r <</= t
   
   [cardleq_lteq]  Theorem
      
      ⊢ s1 ≼ s2 ⇔ s1 <</= s2 ∨ s1 ≈ s2
   
   [cardlt_REFL]  Theorem
      
      ⊢ ¬(s <</= s)
   
   [cardlt_TRANS]  Theorem
      
      ⊢ ∀s t u. s <</= t ∧ t <</= u ⇒ s <</= u
   
   [cardlt_cardle]  Theorem
      
      ⊢ A <</= B ⇒ A ≼ B
   
   [cardlt_lenoteq]  Theorem
      
      ⊢ s <</= t ⇔ s ≼ t ∧ ¬(s ≈ t)
   
   [cardlt_leq_trans]  Theorem
      
      ⊢ ∀r s t. r <</= s ∧ s ≼ t ⇒ r <</= t
   
   [count_cardle]  Theorem
      
      ⊢ count n ≼ A ⇔ FINITE A ⇒ n ≤ CARD A
   
   [countable_cardeq]  Theorem
      
      ⊢ s ≈ t ⇒ (countable s ⇔ countable t)
   
   [countable_decomposition]  Theorem
      
      ⊢ ∀s.
            INFINITE s ⇒
            ∃A. (BIGUNION A = s) ∧ ∀a. a ∈ A ⇒ INFINITE a ∧ countable a
   
   [countable_thm]  Theorem
      
      ⊢ countable s ⇔ s ≼ 𝕌(:num)
   
   [disjoint_countable_decomposition]  Theorem
      
      ⊢ ∀s.
            INFINITE s ⇒
            ∃A.
                (BIGUNION A = s) ∧ (∀a. a ∈ A ⇒ INFINITE a ∧ countable a) ∧
                ∀a1 a2. a1 ∈ A ∧ a2 ∈ A ∧ a1 ≠ a2 ⇒ DISJOINT a1 a2
   
   [exp_INSERT_cardeq]  Theorem
      
      ⊢ e ∉ s ⇒ A ** (e INSERT s) ≈ A × A ** s
   
   [exp_count_cardeq]  Theorem
      
      ⊢ INFINITE A ∧ 0 < n ⇒ A ** count n ≈ A
   
   [finite_subsets_bijection]  Theorem
      
      ⊢ INFINITE A ⇒ A ≈ {s | FINITE s ∧ s ⊆ A}
   
   [list_BIGUNION_EXP]  Theorem
      
      ⊢ list A ≈ BIGUNION (IMAGE (λn. A ** count n) 𝕌(:num))
   
   [list_EMPTY]  Theorem
      
      ⊢ list ∅ = {[]}
   
   [list_SING]  Theorem
      
      ⊢ list {e} ≈ 𝕌(:num)
   
   [set_binomial2]  Theorem
      
      ⊢ (A ∪ B) × (A ∪ B) = A × A ∪ A × B ∪ B × A ∪ B × B
   
   [set_exp_card_cong]  Theorem
      
      ⊢ a1 ≈ a2 ⇒ b1 ≈ b2 ⇒ a1 ** b1 ≈ a2 ** b2
   
   [set_exp_cardle_cong]  Theorem
      
      ⊢ ((b = ∅) ⇒ (d = ∅)) ⇒ a ≼ b ∧ c ≼ d ⇒ a ** c ≼ b ** d
   
   [set_exp_count]  Theorem
      
      ⊢ A ** count n ≈ {l | (LENGTH l = n) ∧ ∀e. MEM e l ⇒ e ∈ A}
   
   [set_exp_product]  Theorem
      
      ⊢ (A ** B1) ** B2 ≈ A ** (B1 × B2)
   
   
*)
end


Source File Identifier index Theory binding index

HOL 4, Kananaskis-11