Structure simpleSetCatTheory


Source File Identifier index Theory binding index

signature simpleSetCatTheory =
sig
  type thm = Thm.thm
  
  (*  Definitions  *)
    val Delta_def : thm
    val Gr_def : thm
    val RIMAGE_def : thm
    val RINV_IMAGE_def : thm
    val SPO_def : thm
    val SPO_pimg_def : thm
    val SPOr_def : thm
    val cardgt_def : thm
    val eps_def : thm
    val kernel_def : thm
    val restr_def : thm
    val shom_def : thm
    val span_def : thm
  
  (*  Theorems  *)
    val Delta_IMAGE : thm
    val Delta_INTER : thm
    val Gr_Id : thm
    val Gr_restr : thm
    val IN_UNCURRY : thm
    val RIMAGE_Gr : thm
    val RINV_IMAGE_Gr : thm
    val SPOr_REFL : thm
    val SPOr_lemma : thm
    val Spushout_def : thm
    val Spushout_ind : thm
    val Spushout_quotient : thm
    val Spushout_sym : thm
    val Spushout_transfer : thm
    val Spushouts_iso : thm
    val cardgt0 : thm
    val cardgt1_INJ_bool : thm
    val eps_partition : thm
    val kernel_graph : thm
    val oID : thm
    val restr_EMPTY : thm
    val restr_applies : thm
    val restr_cases : thm
    val restr_restr_o : thm
    val shom_into_EMPTY : thm
    val shom_outof_EMPTY : thm
    val shoms_exist : thm
    val symmetric_SPOr : thm
    val transitive_SPOr : thm
    val unit_pushout : thm
  
  val simpleSetCat_grammars : type_grammar.grammar * term_grammar.grammar
(*
   [cardinal] Parent theory of "simpleSetCat"
   
   [Delta_def]  Definition
      
      ⊢ ∀V a b. Δ V a b ⇔ a = b ∧ a ∈ V
   
   [Gr_def]  Definition
      
      ⊢ ∀h A a b. Gr h A a b ⇔ a ∈ A ∧ b = h a
   
   [RIMAGE_def]  Definition
      
      ⊢ ∀f A R x y.
          RIMAGE f A R x y ⇔
          ∃x0 y0. x = f x0 ∧ y = f y0 ∧ R x0 y0 ∧ x0 ∈ A ∧ y0 ∈ A
   
   [RINV_IMAGE_def]  Definition
      
      ⊢ ∀f A R x y. RINV_IMAGE f A R x y ⇔ x ∈ A ∧ y ∈ A ∧ R (f x) (f y)
   
   [SPO_def]  Definition
      
      ⊢ ∀A B C f g.
          SPO A B C f g =
          (partition (SPOr A f g) (B ⊔ C),
           restr (λb. equiv_class (SPOr A f g) (B ⊔ C) (INL b)) B,
           restr (λc. equiv_class (SPOr A f g) (B ⊔ C) (INR c)) C)
   
   [SPO_pimg_def]  Definition
      
      ⊢ (∀A f g x. SPO_pimg A f g (INL x) = PREIMAGE f {x} ∩ A) ∧
        ∀A f g y. SPO_pimg A f g (INR y) = PREIMAGE g {y} ∩ A
   
   [SPOr_def]  Definition
      
      ⊢ ∀A f g.
          SPOr A f g =
          (λx y. (∃a. a ∈ A ∧ x = INL (f a) ∧ y = INR (g a)) ∨ x = y)^=
   
   [cardgt_def]  Definition
      
      ⊢ ∀n. cardgt (:α) n ⇔ FINITE 𝕌(:α) ⇒ n < CARD 𝕌(:α)
   
   [eps_def]  Definition
      
      ⊢ ∀R A a. eps R A a = if a ∈ A then {b | R a b ∧ b ∈ A} else ARB
   
   [kernel_def]  Definition
      
      ⊢ ∀A f x y. kernel A f x y ⇔ x ∈ A ∧ y ∈ A ∧ f x = f y
   
   [restr_def]  Definition
      
      ⊢ ∀f s. restr f s = (λx. if x ∈ s then f x else ARB)
   
   [shom_def]  Definition
      
      ⊢ ∀f A B. shom f A B ⇔ (∀a. a ∈ A ⇒ f a ∈ B) ∧ ∀a. a ∉ A ⇒ f a = ARB
   
   [span_def]  Definition
      
      ⊢ ∀A f g b d. span A f g b d ⇔ ∃a. a ∈ A ∧ b = f a ∧ d = g a
   
   [Delta_IMAGE]  Theorem
      
      ⊢ Δ (IMAGE f A) = RIMAGE f A (Δ A)
   
   [Delta_INTER]  Theorem
      
      ⊢ Δ (s ∩ t) = Δ s ∩ᵣ Δ t
   
   [Gr_Id]  Theorem
      
      ⊢ Gr (λx. x) A = Δ A
   
   [Gr_restr]  Theorem
      
      ⊢ Gr (restr f A) A = Gr f A
   
   [IN_UNCURRY]  Theorem
      
      ⊢ (a,b) ∈ UNCURRY R ⇔ R a b
   
   [RIMAGE_Gr]  Theorem
      
      ⊢ RIMAGE f A R = Gr f A ∘ᵣ R ∘ᵣ (Gr f A)ᵀ
   
   [RINV_IMAGE_Gr]  Theorem
      
      ⊢ RINV_IMAGE f A R = (Gr f A)ᵀ ∘ᵣ R ∘ᵣ Gr f A
   
   [SPOr_REFL]  Theorem
      
      ⊢ SPOr A f g x x
   
   [SPOr_lemma]  Theorem
      
      ⊢ restr (j1 ∘ f) A = restr (j2 ∘ g) A ⇒
        (∀b1 b2. SPOr A f g (INL b1) (INL b2) ⇒ j1 b1 = j1 b2) ∧
        (∀b c. SPOr A f g (INL b) (INR c) ⇒ j1 b = j2 c) ∧
        (∀b' c'. SPOr A f g (INR c') (INL b') ⇒ j1 b' = j2 c') ∧
        ∀c1 c2. SPOr A f g (INR c1) (INR c2) ⇒ j2 c1 = j2 c2
   
   [Spushout_def]  Theorem
      
      ⊢ Spushout A B C' f g (P,i1,i2) (:δ) ⇔
        shom f A B ∧ shom g A C' ∧ shom i1 B P ∧ shom i2 C' P ∧
        restr (i1 ∘ f) A = restr (i2 ∘ g) A ∧
        ∀Q j1 j2.
          shom j1 B Q ∧ shom j2 C' Q ∧ restr (j1 ∘ f) A = restr (j2 ∘ g) A ⇒
          ∃!u. shom u P Q ∧ restr (u ∘ i1) B = j1 ∧ restr (u ∘ i2) C' = j2
   
   [Spushout_ind]  Theorem
      
      ⊢ ∀P'.
          (∀A B C f g P i1 i2. P' A B C f g (P,i1,i2) (:δ)) ⇒
          ∀v v1 v2 v3 v4 v5 v6 v7 v8. P' v v1 v2 v3 v4 (v5,v6,v7) v8
   
   [Spushout_quotient]  Theorem
      
      ⊢ shom f A B ∧ shom g A C ⇒ Spushout A B C f g (SPO A B C f g) (:δ)
   
   [Spushout_sym]  Theorem
      
      ⊢ Spushout A B C f g (P,p1,p2) (:δ) ⇒
        Spushout A C B g f (P,p2,p1) (:δ)
   
   [Spushout_transfer]  Theorem
      
      ⊢ Spushout A B C f g (P,i1,i2) (:δ) ∧ INJ h 𝕌(:ε) 𝕌(:δ) ⇒
        Spushout A B C f g (P,i1,i2) (:ε)
   
   [Spushouts_iso]  Theorem
      
      ⊢ Spushout A B C f g (P,i1,i2) (:ε) ∧
        Spushout A B C f g (Q,j1,j2) (:δ) ∧ cardgt (:δ) 1 ∧ cardgt (:ε) 1 ⇒
        ∃H. BIJ H P Q ∧ restr (H ∘ i1) B = j1 ∧ restr (H ∘ i2) C = j2
   
   [cardgt0]  Theorem
      
      ⊢ cardgt (:α) 0
   
   [cardgt1_INJ_bool]  Theorem
      
      ⊢ cardgt (:α) 1 ⇔ ∃bf. INJ bf 𝟚 𝕌(:α)
   
   [eps_partition]  Theorem
      
      ⊢ a ∈ A ⇒ eps R A a ∈ partition R A
   
   [kernel_graph]  Theorem
      
      ⊢ kernel A f = (Gr f A)ᵀ ∘ᵣ Gr f A
   
   [oID]  Theorem
      
      ⊢ f ∘ (λx. x) = f ∧ (λx. x) ∘ f = f
   
   [restr_EMPTY]  Theorem
      
      ⊢ restr f ∅ = K ARB
   
   [restr_applies]  Theorem
      
      ⊢ x ∈ A ⇒ restr f A x = f x
   
   [restr_cases]  Theorem
      
      ⊢ restr f A x = g x ⇔ x ∈ A ∧ f x = g x ∨ x ∉ A ∧ g x = ARB
   
   [restr_restr_o]  Theorem
      
      ⊢ restr (f ∘ restr g A) A = restr (f ∘ g) A
   
   [shom_into_EMPTY]  Theorem
      
      ⊢ shom f A ∅ ⇔ A = ∅ ∧ f = K ARB
   
   [shom_outof_EMPTY]  Theorem
      
      ⊢ shom f ∅ A ⇔ f = K ARB
   
   [shoms_exist]  Theorem
      
      ⊢ ∀A B. B ≠ ∅ ⇒ ∃h. shom h A B
   
   [symmetric_SPOr]  Theorem
      
      ⊢ symmetric (SPOr A f g)
   
   [transitive_SPOr]  Theorem
      
      ⊢ transitive (SPOr A f g)
   
   [unit_pushout]  Theorem
      
      ⊢ shom f A B ∧ shom g A C ∧ A ≠ ∅ ⇒
        Spushout A B C f g ({()},restr (K ()) B,restr (K ()) C) (:unit)
   
   
*)
end


Source File Identifier index Theory binding index

HOL 4, Trindemossen-1