Beginning of Section MetaCat
(*** $I sig/PfgEJul2021Preamble6.mgs ***)
L3
Variable Obj : set → prop
L5
Variable Hom : set → set → set → prop
L6
Variable id : set → set
L7
Variable comp : set → set → set → set → set → set
L8
Definition. We define idT to be ∀X : set, Obj X → Hom X X (id X) of type prop.
L10
Definition. We define compT to be ∀X Y Z : set, ∀f g : set, Obj X → Obj Y → Obj Z → Hom X Y f → Hom Y Z g → Hom X Z (comp X Y Z g f) of type prop.
L17
Definition. We define idL to be ∀X Y : set, ∀f : set, Obj X → Obj Y → Hom X Y f → comp X X Y f (id X) = f of type prop.
L21
Definition. We define idR to be ∀X Y : set, ∀f : set, Obj X → Obj Y → Hom X Y f → comp X Y Y (id Y) f = f of type prop.
L25
Definition. We define compAssoc to be ∀X Y Z W : set, ∀f g h : set, Obj X → Obj Y → Obj Z → Obj W → Hom X Y f → Hom Y Z g → Hom Z W h → comp X Y W (comp Y Z W h g) f = comp X Z W h (comp X Y Z g f) of type prop.
L33
Definition. We define MetaCat to be (idT ∧ compT) ∧ (idL ∧ idR) ∧ compAssoc of type prop.
L35
Theorem. (MetaCat_I)
idT → compT → (∀X Y : set, ∀f : set, Obj X → Obj Y → Hom X Y f → comp X X Y f (id X) = f) → (∀X Y : set, ∀f : set, Obj X → Obj Y → Hom X Y f → comp X Y Y (id Y) f = f) → (∀X Y Z W : set, ∀f g h : set, Obj X → Obj Y → Obj Z → Obj W → Hom X Y f → Hom Y Z g → Hom Z W h → comp X Y W (comp Y Z W h g) f = comp X Z W h (comp X Y Z g f)) → MetaCat
Proof:
Proof not loaded.
L55
Theorem. (MetaCat_E)
MetaCat → ∀p : prop, (idT → compT → (∀X Y : set, ∀f : set, Obj X → Obj Y → Hom X Y f → comp X X Y f (id X) = f) → (∀X Y : set, ∀f : set, Obj X → Obj Y → Hom X Y f → comp X Y Y (id Y) f = f) → (∀X Y Z W : set, ∀f g h : set, Obj X → Obj Y → Obj Z → Obj W → Hom X Y f → Hom Y Z g → Hom Z W h → comp X Y W (comp Y Z W h g) f = comp X Z W h (comp X Y Z g f)) → p) → p
Proof:
Proof not loaded.
End of Section MetaCat
Beginning of Section MetaCatOp
L76
Variable Obj : set → prop
L78
Variable Hom : set → set → set → prop
L79
Variable id : set → set
L80
Variable comp : set → set → set → set → set → set
L81
Theorem. (MetaCatOp)
MetaCat Obj Hom id comp → MetaCat Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f)
Proof:
Proof not loaded.
End of Section MetaCatOp
Beginning of Section LimsCoLims
L116
Variable Obj : set → prop
L118
Variable Hom : set → set → set → prop
L119
Variable id : set → set
L120
Variable comp : set → set → set → set → set → set
L121
Definition. We define monic to be λX Y f ⇒ Obj X ∧ Obj Y ∧ Hom X Y f ∧ ∀Z : set, Obj Z → ∀g h : set, Hom Z X g → Hom Z X h → comp Z X Y f g = comp Z X Y f h → g = h of type set → set → set → prop.
L130
Definition. We define terminal_p to be λY h ⇒ Obj Y ∧ ∀X : set, Obj X → Hom X Y (h X) ∧ ∀h' : set, Hom X Y h' → h' = h X of type set → (set → set) → prop.
L136
Definition. We define initial_p to be λY h ⇒ Obj Y ∧ ∀X : set, Obj X → Hom Y X (h X) ∧ ∀h' : set, Hom Y X h' → h' = h X of type set → (set → set) → prop.
L142
Definition. We define product_p to be λX Y Z pi0 pi1 pair ⇒ Obj X ∧ Obj Y ∧ Obj Z ∧ Hom Z X pi0 ∧ Hom Z Y pi1 ∧ ∀W : set, Obj W → ∀h k : set, Hom W X h → Hom W Y k → Hom W Z (pair W h k) ∧ comp W Z X pi0 (pair W h k) = h ∧ comp W Z Y pi1 (pair W h k) = k ∧ ∀u : set, Hom W Z u → comp W Z X pi0 u = h → comp W Z Y pi1 u = k → u = pair W h k of type set → set → set → set → set → (set → set → set → set) → prop.
L159
Definition. We define product_constr_p to be λprod pi0 pi1 pair ⇒ ∀X Y : set, Obj X → Obj Y → product_p X Y (prod X Y) (pi0 X Y) (pi1 X Y) (pair X Y) of type (set → set → set) → (set → set → set) → (set → set → set) → (set → set → set → set → set → set) → prop.
L164
Definition. We define coproduct_p to be λX Y Z i0 i1 comb ⇒ Obj X ∧ Obj Y ∧ Obj Z ∧ Hom X Z i0 ∧ Hom Y Z i1 ∧ ∀W : set, Obj W → ∀h k : set, Hom X W h → Hom Y W k → Hom Z W (comb W h k) ∧ comp X Z W (comb W h k) i0 = h ∧ comp Y Z W (comb W h k) i1 = k ∧ ∀hk : set, Hom Z W hk → comp X Z W hk i0 = h → comp Y Z W hk i1 = k → hk = comb W h k of type set → set → set → set → set → (set → set → set → set) → prop.
L181
Definition. We define coproduct_constr_p to be λcoprod i0 i1 copair ⇒ ∀X Y : set, Obj X → Obj Y → coproduct_p X Y (coprod X Y) (i0 X Y) (i1 X Y) (copair X Y) of type (set → set → set) → (set → set → set) → (set → set → set) → (set → set → set → set → set → set) → prop.
L186
Definition. We define equalizer_p to be λX Y f g Q q fac ⇒ Obj X ∧ Obj Y ∧ Hom X Y f ∧ Hom X Y g ∧ Obj Q ∧ Hom Q X q ∧ comp Q X Y f q = comp Q X Y g q ∧ ∀W : set, Obj W → ∀h : set, Hom W X h → comp W X Y f h = comp W X Y g h → Hom W Q (fac W h) ∧ comp W Q X q (fac W h) = h ∧ ∀u : set, Hom W Q u → comp W Q X q u = h → u = fac W h of type set → set → set → set → set → set → (set → set → set) → prop.
L203
Definition. We define equalizer_constr_p to be λquot canonmap fac ⇒ ∀X Y : set, Obj X → Obj Y → ∀f g : set, Hom X Y f → Hom X Y g → equalizer_p X Y f g (quot X Y f g) (canonmap X Y f g) (fac X Y f g) of type (set → set → set → set → set) → (set → set → set → set → set) → (set → set → set → set → set → set → set) → prop.
L208
Definition. We define coequalizer_p to be λX Y f g Q q fac ⇒ Obj X ∧ Obj Y ∧ Hom X Y f ∧ Hom X Y g ∧ Obj Q ∧ Hom Y Q q ∧ comp X Y Q q f = comp X Y Q q g ∧ ∀W : set, Obj W → ∀h : set, Hom Y W h → comp X Y W h f = comp X Y W h g → Hom Q W (fac W h) ∧ comp Y Q W (fac W h) q = h ∧ ∀u : set, Hom Q W u → comp Y Q W u q = h → u = fac W h of type set → set → set → set → set → set → (set → set → set) → prop.
L225
Definition. We define coequalizer_constr_p to be λquot canonmap fac ⇒ ∀X Y : set, Obj X → Obj Y → ∀f g : set, Hom X Y f → Hom X Y g → coequalizer_p X Y f g (quot X Y f g) (canonmap X Y f g) (fac X Y f g) of type (set → set → set → set → set) → (set → set → set → set → set) → (set → set → set → set → set → set → set) → prop.
L230
Definition. We define pullback_p to be λX Y Z f g P pi0 pi1 pair ⇒ Obj X ∧ Obj Y ∧ Obj Z ∧ Hom X Z f ∧ Hom Y Z g ∧ Obj P ∧ Hom P X pi0 ∧ Hom P Y pi1 ∧ comp P X Z f pi0 = comp P Y Z g pi1 ∧ ∀W : set, Obj W → ∀h : set, Hom W X h → ∀k : set, Hom W Y k → comp W X Z f h = comp W Y Z g k → Hom W P (pair W h k) ∧ comp W P X pi0 (pair W h k) = h ∧ comp W P Y pi1 (pair W h k) = k ∧ ∀u : set, Hom W P u → comp W P X pi0 u = h → comp W P Y pi1 u = k → u = pair W h k of type set → set → set → set → set → set → set → set → (set → set → set → set) → prop.
L255
Definition. We define pullback_constr_p to be λpb pi0 pi1 pair ⇒ ∀X Y Z : set, Obj X → Obj Y → Obj Z → ∀f g : set, Hom X Z f → Hom Y Z g → pullback_p X Y Z f g (pb X Y Z f g) (pi0 X Y Z f g) (pi1 X Y Z f g) (pair X Y Z f g) of type (set → set → set → set → set → set) → (set → set → set → set → set → set) → (set → set → set → set → set → set) → (set → set → set → set → set → set → set → set → set) → prop.
L262
Definition. We define pushout_p to be λX Y Z f g P i0 i1 copair ⇒ Obj X ∧ Obj Y ∧ Obj Z ∧ Hom Z X f ∧ Hom Z Y g ∧ Obj P ∧ Hom X P i0 ∧ Hom Y P i1 ∧ comp Z X P i0 f = comp Z Y P i1 g ∧ ∀W : set, Obj W → ∀h : set, Hom X W h → ∀k : set, Hom Y W k → comp Z X W h f = comp Z Y W k g → Hom P W (copair W h k) ∧ comp X P W (copair W h k) i0 = h ∧ comp Y P W (copair W h k) i1 = k ∧ ∀u : set, Hom P W u → comp X P W u i0 = h → comp Y P W u i1 = k → u = copair W h k of type set → set → set → set → set → set → set → set → (set → set → set → set) → prop.
L287
Definition. We define pushout_constr_p to be λpo i0 i1 copair ⇒ ∀X Y Z : set, Obj X → Obj Y → Obj Z → ∀f g : set, Hom Z X f → Hom Z Y g → pushout_p X Y Z f g (po X Y Z f g) (i0 X Y Z f g) (i1 X Y Z f g) (copair X Y Z f g) of type (set → set → set → set → set → set) → (set → set → set → set → set → set) → (set → set → set → set → set → set) → (set → set → set → set → set → set → set → set → set) → prop.
L294
Definition. We define exponent_p to be λprod pi0 pi1 pair X Y Z a lm ⇒ Obj X ∧ Obj Y ∧ Obj Z ∧ Hom (prod Z X) Y a ∧ ∀W : set, Obj W → ∀f : set, Hom (prod W X) Y f → Hom W Z (lm W f) ∧ comp (prod W X) (prod Z X) Y a (pair Z X (prod W X) (comp (prod W X) W Z (lm W f) (pi0 W X)) (pi1 W X)) = f ∧ ∀g : set, Hom W Z g → comp (prod W X) (prod Z X) Y a (pair Z X (prod W X) (comp (prod W X) W Z g (pi0 W X)) (pi1 W X)) = f → g = lm W f of type (set → set → set) → (set → set → set) → (set → set → set) → (set → set → set → set → set → set) → set → set → set → set → (set → set → set) → prop.
L306
Definition. We define product_exponent_constr_p to be λprod pi0 pi1 pair exp a lm ⇒ product_constr_p prod pi0 pi1 pair ∧ ∀X Y : set, Obj X → Obj Y → exponent_p prod pi0 pi1 pair X Y (exp X Y) (a X Y) (lm X Y) of type (set → set → set) → (set → set → set) → (set → set → set) → (set → set → set → set → set → set) → (set → set → set) → (set → set → set) → (set → set → set → set → set) → prop.
L312
Definition. We define subobject_classifier_p to be λone uniqa Omega tru ch constr_p ⇒ terminal_p one uniqa ∧ Obj Omega ∧ Hom one Omega tru ∧ ∀X Y : set, ∀m : set, monic X Y m → Hom Y Omega (ch X Y m) ∧ pullback_p one Y Omega tru (ch X Y m) X (uniqa X) m (constr_p X Y m) of type set → (set → set) → set → set → (set → set → set → set) → (set → set → set → set → set → set → set) → prop.
L321
Definition. We define nno_p to be λone uniqa N zer suc rec ⇒ terminal_p one uniqa ∧ Obj N ∧ Hom one N zer ∧ Hom N N suc ∧ ∀X : set, ∀x : set, ∀f : set, Obj X → Hom one X x → Hom X X f → Hom N X (rec X x f) ∧ comp one N X (rec X x f) zer = x ∧ comp N N X (rec X x f) suc = comp N X X f (rec X x f) ∧ ∀u : set, Hom N X u → comp one N X u zer = x → comp N N X u suc = comp N X X f u → u = rec X x f of type set → (set → set) → set → set → set → (set → set → set → set) → prop.
End of Section LimsCoLims
Beginning of Section LimsCoLims2
L341
Variable Obj : set → prop
L343
Variable Hom : set → set → set → prop
L344
Variable id : set → set
L345
Variable comp : set → set → set → set → set → set
L346
Theorem. (product_coproduct_Op)
∀X Y Z : set, ∀pi0 pi1 : set, ∀pair : set → set → set → set, product_p Obj Hom id comp X Y Z pi0 pi1 pair → coproduct_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) X Y Z pi0 pi1 pair
Proof:
Proof not loaded.
L355
Theorem. (product_coproduct_constr_Op)
∀prod : set → set → set, ∀pi0 pi1 : set → set → set, ∀pair : set → set → set → set → set → set, product_constr_p Obj Hom id comp prod pi0 pi1 pair → coproduct_constr_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) prod pi0 pi1 pair
Proof:
Proof not loaded.
L364
Theorem. (coproduct_product_Op)
∀X Y Z : set, ∀i0 i1 : set, ∀copair : set → set → set → set, coproduct_p Obj Hom id comp X Y Z i0 i1 copair → product_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) X Y Z i0 i1 copair
Proof:
Proof not loaded.
L373
Theorem. (coproduct_product_constr_Op)
∀coprod : set → set → set, ∀i0 i1 : set → set → set, ∀copair : set → set → set → set → set → set, coproduct_constr_p Obj Hom id comp coprod i0 i1 copair → product_constr_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) coprod i0 i1 copair
Proof:
Proof not loaded.
L382
Theorem. (equalizer_coequalizer_Op)
∀X Y : set, ∀f g : set, ∀Q : set, ∀q : set, ∀fac : set → set → set, equalizer_p Obj Hom id comp X Y f g Q q fac → coequalizer_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) Y X f g Q q fac
Proof:
Proof not loaded.
L429
Theorem. (equalizer_coequalizer_constr_Op)
∀quot : set → set → set → set → set, ∀canonmap : set → set → set → set → set, ∀fac : set → set → set → set → set → set → set, equalizer_constr_p Obj Hom id comp quot canonmap fac → coequalizer_constr_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) (λX Y f g ⇒ quot Y X f g) (λX Y f g ⇒ canonmap Y X f g) (λX Y f g ⇒ fac Y X f g)
Proof:
Proof not loaded.
L444
Theorem. (coequalizer_equalizer_Op)
∀X Y : set, ∀f g : set, ∀Q : set, ∀q : set, ∀fac : set → set → set, coequalizer_p Obj Hom id comp X Y f g Q q fac → equalizer_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) Y X f g Q q fac
Proof:
Proof not loaded.
L491
Theorem. (coequalizer_equalizer_constr_Op)
∀quot : set → set → set → set → set, ∀canonmap : set → set → set → set → set, ∀fac : set → set → set → set → set → set → set, coequalizer_constr_p Obj Hom id comp quot canonmap fac → equalizer_constr_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) (λX Y f g ⇒ quot Y X f g) (λX Y f g ⇒ canonmap Y X f g) (λX Y f g ⇒ fac Y X f g)
Proof:
Proof not loaded.
L506
Theorem. (pullback_pushout_Op)
∀X Y Z : set, ∀f g : set, ∀P : set, ∀pi0 pi1 : set, ∀pair : set → set → set → set, pullback_p Obj Hom id comp X Y Z f g P pi0 pi1 pair → pushout_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) X Y Z f g P pi0 pi1 pair
Proof:
Proof not loaded.
L515
Theorem. (pullback_pushout_constr_Op)
∀pb : set → set → set → set → set → set, ∀pi0 pi1 : set → set → set → set → set → set, ∀pair : set → set → set → set → set → set → set → set → set, pullback_constr_p Obj Hom id comp pb pi0 pi1 pair → pushout_constr_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) pb pi0 pi1 pair
Proof:
Proof not loaded.
L525
Theorem. (pushout_pullback_Op)
∀X Y Z : set, ∀f g : set, ∀P : set, ∀i0 i1 : set, ∀copair : set → set → set → set, pushout_p Obj Hom id comp X Y Z f g P i0 i1 copair → pullback_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) X Y Z f g P i0 i1 copair
Proof:
Proof not loaded.
L534
Theorem. (pushout_pullback_constr_Op)
∀po : set → set → set → set → set → set, ∀i0 i1 : set → set → set → set → set → set, ∀copair : set → set → set → set → set → set → set → set → set, pushout_constr_p Obj Hom id comp po i0 i1 copair → pullback_constr_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) po i0 i1 copair
Proof:
Proof not loaded.
L544
Theorem. (product_equalizer_pullback_constr)
MetaCat Obj Hom id comp → ∀quot : set → set → set → set → set, ∀canonmap : set → set → set → set → set, ∀fac : set → set → set → set → set → set → set, equalizer_constr_p Obj Hom id comp quot canonmap fac → ∀prod : set → set → set, ∀pi0 : set → set → set, ∀pi1 : set → set → set, ∀pair : set → set → set → set → set → set, product_constr_p Obj Hom id comp prod pi0 pi1 pair → pullback_constr_p Obj Hom id comp (λX Y Z f g ⇒ quot (prod X Y) Z (comp (prod X Y) X Z f (pi0 X Y)) (comp (prod X Y) Y Z g (pi1 X Y))) (λX Y Z f g ⇒ comp (quot (prod X Y) Z (comp (prod X Y) X Z f (pi0 X Y)) (comp (prod X Y) Y Z g (pi1 X Y))) (prod X Y) X (pi0 X Y) (canonmap (prod X Y) Z (comp (prod X Y) X Z f (pi0 X Y)) (comp (prod X Y) Y Z g (pi1 X Y)))) (λX Y Z f g ⇒ comp (quot (prod X Y) Z (comp (prod X Y) X Z f (pi0 X Y)) (comp (prod X Y) Y Z g (pi1 X Y))) (prod X Y) Y (pi1 X Y) (canonmap (prod X Y) Z (comp (prod X Y) X Z f (pi0 X Y)) (comp (prod X Y) Y Z g (pi1 X Y)))) (λX Y Z f g W h k ⇒ fac (prod X Y) Z (comp (prod X Y) X Z f (pi0 X Y)) (comp (prod X Y) Y Z g (pi1 X Y)) W (pair X Y W h k))
Proof:
Proof not loaded.
L751
Theorem. (product_equalizer_pullback_constr_ex)
MetaCat Obj Hom id comp → (∃quot : set → set → set → set → set, ∃canonmap : set → set → set → set → set, ∃fac : set → set → set → set → set → set → set, equalizer_constr_p Obj Hom id comp quot canonmap fac) → (∃prod : set → set → set, ∃pi0 : set → set → set, ∃pi1 : set → set → set, ∃pair : set → set → set → set → set → set, product_constr_p Obj Hom id comp prod pi0 pi1 pair) → ∃pb : set → set → set → set → set → set, ∃pi0 : set → set → set → set → set → set, ∃pi1 : set → set → set → set → set → set, ∃pair : set → set → set → set → set → set → set → set → set, pullback_constr_p Obj Hom id comp pb pi0 pi1 pair
Proof:
Proof not loaded.
End of Section LimsCoLims2
Beginning of Section LimsCoLims3
L791
Variable Obj : set → prop
L793
Variable Hom : set → set → set → prop
L794
Variable id : set → set
L795
Variable comp : set → set → set → set → set → set
L796
Theorem. (coproduct_coequalizer_pushout_constr_ex)
MetaCat Obj Hom id comp → (∃quot : set → set → set → set → set, ∃canonmap : set → set → set → set → set, ∃fac : set → set → set → set → set → set → set, coequalizer_constr_p Obj Hom id comp quot canonmap fac) → (∃coprod : set → set → set, ∃i0 : set → set → set, ∃i1 : set → set → set, ∃copair : set → set → set → set → set → set, coproduct_constr_p Obj Hom id comp coprod i0 i1 copair) → ∃po : set → set → set → set → set → set, ∃i0 : set → set → set → set → set → set, ∃i1 : set → set → set → set → set → set, ∃copair : set → set → set → set → set → set → set → set → set, pushout_constr_p Obj Hom id comp po i0 i1 copair
Proof:
Proof not loaded.
End of Section LimsCoLims3
L837
Definition. We define SetHom to be λX Y f ⇒ f ∈ YX of type set → set → set → prop.
L840
Theorem. (MetaCatSet_initial_gen)
∀Obj : set → prop, Obj 0 → ∃Y : set, ∃uniqa : set → set, initial_p Obj SetHom (λX ⇒ (λx ∈ X ⇒ x)) (λX Y Z f g ⇒ (λx ∈ X ⇒ f (g x))) Y uniqa
Proof:
Proof not loaded.
L866
Theorem. (MetaCatSet_initial)
∃Y : set, ∃uniqa : set → set, initial_p (λ_ ⇒ True) SetHom (λX ⇒ (λx ∈ X ⇒ x)) (λX Y Z f g ⇒ (λx ∈ X ⇒ f (g x))) Y uniqa
Proof:
Proof not loaded.
L872
Theorem. (MetaCatSet_terminal_gen)
∀Obj : set → prop, Obj 1 → ∃Y : set, ∃uniqa : set → set, terminal_p Obj SetHom (λX ⇒ (λx ∈ X ⇒ x)) (λX Y Z f g ⇒ (λx ∈ X ⇒ f (g x))) Y uniqa
Proof:
Proof not loaded.
L903
Theorem. (MetaCatSet_terminal)
∃Y : set, ∃uniqa : set → set, terminal_p (λ_ ⇒ True) SetHom (λX ⇒ (λx ∈ X ⇒ x)) (λX Y Z f g ⇒ (λx ∈ X ⇒ f (g x))) Y uniqa
Proof:
Proof not loaded.
L909
Theorem. (MetaCatSet_coproduct_gen)
∀Obj : set → prop, (∀X, Obj X → ∀Y, Obj Y → Obj (setsum X Y)) → ∃coprod : set → set → set, ∃i0 i1 : set → set → set, ∃copair : set → set → set → set → set → set, coproduct_constr_p Obj SetHom (λX ⇒ (λx ∈ X ⇒ x)) (λX Y Z f g ⇒ (λx ∈ X ⇒ f (g x))) coprod i0 i1 copair
Proof:
Proof not loaded.
L1052
Theorem. (MetaCatSet_coproduct)
∃coprod : set → set → set, ∃i0 i1 : set → set → set, ∃copair : set → set → set → set → set → set, coproduct_constr_p (λ_ ⇒ True) SetHom (λX ⇒ λx ∈ X ⇒ x) (λX Y Z f g ⇒ (λx ∈ X ⇒ f (g x))) coprod i0 i1 copair
Proof:
Proof not loaded.
L1062
Theorem. (MetaCatSet_product_gen)
∀Obj : set → prop, (∀X, Obj X → ∀Y, Obj Y → Obj (setprod X Y)) → ∃prod : set → set → set, ∃pi0 pi1 : set → set → set, ∃pair : set → set → set → set → set → set, product_constr_p Obj SetHom (λX ⇒ (λx ∈ X ⇒ x)) (λX Y Z f g ⇒ (λx ∈ X ⇒ f (g x))) prod pi0 pi1 pair
Proof:
Proof not loaded.
L1193
Theorem. (MetaCatSet_product)
∃prod : set → set → set, ∃pi0 pi1 : set → set → set, ∃pair : set → set → set → set → set → set, product_constr_p (λ_ ⇒ True) SetHom (λX ⇒ (λx ∈ X ⇒ x)) (λX Y Z f g ⇒ (λx ∈ X ⇒ f (g x))) prod pi0 pi1 pair
Proof:
Proof not loaded.
L1203
Theorem. (UnivOf_Subq_closed)
∀N, ∀X ∈ UnivOf N, ∀Q ⊆ X, Q ∈ UnivOf N
Proof:
Proof not loaded.
L1212
Definition. We define famunion_closed to be λU : set ⇒ ∀X ∈ U, ∀F : set → set, (∀x ∈ X, F x ∈ U) → famunion X F ∈ U of type set → prop.
L1214
Theorem. (Union_Repl_famunion_closed)
∀U : set, Union_closed U → Repl_closed U → famunion_closed U
Proof:
Proof not loaded.
L1229
Theorem. (ZF_closed_0)
∀U X, TransSet U → ZF_closed U → X ∈ U → 0 ∈ U
Proof:
Proof not loaded.
L1239
Theorem. (ZF_Inj1_closed)
∀U, TransSet U → ZF_closed U → ∀X ∈ U, Inj1 X ∈ U
Proof:
Proof not loaded.
L1259
Theorem. (ZF_Inj0_closed)
∀U, TransSet U → ZF_closed U → ∀X ∈ U, Inj0 X ∈ U
Proof:
Proof not loaded.
L1272
Theorem. (ZF_setsum_closed)
∀U, TransSet U → ZF_closed U → ∀X Y ∈ U, (X + Y) ∈ U
Proof:
Proof not loaded.
L1296
Theorem. (ZF_Sigma_closed)
∀U, TransSet U → ZF_closed U → ∀X ∈ U, ∀Y : set → set, (∀x ∈ X, Y x ∈ U) → (∑x ∈ X, Y x) ∈ U
Proof:
Proof not loaded.
L1323
Theorem. (ZF_setprod_closed)
∀U, TransSet U → ZF_closed U → ∀X Y ∈ U, (X ⨯ Y) ∈ U
Proof:
Proof not loaded.
L1331
Theorem. (ZF_Pi_closed)
∀U, TransSet U → ZF_closed U → ∀X ∈ U, ∀Y : set → set, (∀x ∈ X, Y x ∈ U) → (∏x ∈ X, Y x) ∈ U
Proof:
Proof not loaded.
L1354
Theorem. (ZF_setexp_closed)
∀U, TransSet U → ZF_closed U → ∀X Y ∈ U, (YX) ∈ U
Proof:
Proof not loaded.
L1362
Theorem. (MetaCatHFSet_initial)
∃Y : set, ∃uniqa : set → set, initial_p (λX ⇒ X ∈ UnivOf Empty) SetHom (λX ⇒ (λx ∈ X ⇒ x)) (λX Y Z f g ⇒ (λx ∈ X ⇒ f (g x))) Y uniqa
Proof:
Proof not loaded.
L1368
Theorem. (MetaCatSmallSet_initial)
∃Y : set, ∃uniqa : set → set, initial_p (λX ⇒ X ∈ UnivOf (UnivOf Empty)) SetHom (λX ⇒ (λx ∈ X ⇒ x)) (λX Y Z f g ⇒ (λx ∈ X ⇒ f (g x))) Y uniqa
Proof:
Proof not loaded.
L1376
Theorem. (MetaCatHFSet_terminal)
∃Y : set, ∃uniqa : set → set, terminal_p (λX ⇒ X ∈ UnivOf Empty) SetHom (λX ⇒ (λx ∈ X ⇒ x)) (λX Y Z f g ⇒ (λx ∈ X ⇒ f (g x))) Y uniqa
Proof:
Proof not loaded.
L1387
Theorem. (MetaCatSmallSet_terminal)
∃Y : set, ∃uniqa : set → set, terminal_p (λX ⇒ X ∈ UnivOf (UnivOf Empty)) SetHom (λX ⇒ (λx ∈ X ⇒ x)) (λX Y Z f g ⇒ (λx ∈ X ⇒ f (g x))) Y uniqa
Proof:
Proof not loaded.
L1398
Theorem. (MetaCatHFSet_coproduct)
∃coprod : set → set → set, ∃i0 i1 : set → set → set, ∃copair : set → set → set → set → set → set, coproduct_constr_p (λX ⇒ X ∈ UnivOf Empty) SetHom (λX ⇒ λx ∈ X ⇒ x) (λX Y Z f g ⇒ (λx ∈ X ⇒ f (g x))) coprod i0 i1 copair
Proof:
Proof not loaded.
L1408
Theorem. (MetaCatSmallSet_coproduct)
∃coprod : set → set → set, ∃i0 i1 : set → set → set, ∃copair : set → set → set → set → set → set, coproduct_constr_p (λX ⇒ X ∈ UnivOf (UnivOf Empty)) SetHom (λX ⇒ (λx ∈ X ⇒ x)) (λX Y Z f g ⇒ (λx ∈ X ⇒ f (g x))) coprod i0 i1 copair
Proof:
Proof not loaded.
L1418
Theorem. (MetaCatHFSet_product)
∃prod : set → set → set, ∃pi0 pi1 : set → set → set, ∃pair : set → set → set → set → set → set, product_constr_p (λX ⇒ X ∈ UnivOf Empty) SetHom (λX ⇒ (λx ∈ X ⇒ x)) (λX Y Z f g ⇒ (λx ∈ X ⇒ f (g x))) prod pi0 pi1 pair
Proof:
Proof not loaded.
L1428
Theorem. (MetaCatSmallSet_product)
∃prod : set → set → set, ∃pi0 pi1 : set → set → set, ∃pair : set → set → set → set → set → set, product_constr_p (λX ⇒ X ∈ UnivOf (UnivOf Empty)) SetHom (λX ⇒ (λx ∈ X ⇒ x)) (λX Y Z f g ⇒ (λx ∈ X ⇒ f (g x))) prod pi0 pi1 pair
Proof:
Proof not loaded.
Beginning of Section MetaFunctor
L1440
Variable Obj : set → prop
L1442
Variable Hom : set → set → set → prop
L1443
Variable id : set → set
L1444
Variable comp : set → set → set → set → set → set
L1445
Variable Obj' : set → prop
L1446
Variable Hom' : set → set → set → prop
L1447
Variable id' : set → set
L1448
Variable comp' : set → set → set → set → set → set
L1449
Variable F0 : set → set
L1451
Variable F1 : set → set → set → set
L1452
Definition. We define MetaFunctor to be (∀X, Obj X → Obj' (F0 X)) ∧ (∀X Y f, Obj X → Obj Y → Hom X Y f → Hom' (F0 X) (F0 Y) (F1 X Y f)) ∧ (∀X, Obj X → F1 X X (id X) = id' (F0 X)) ∧ (∀X Y Z f g, Obj X → Obj Y → Obj Z → Hom X Y f → Hom Y Z g → F1 X Z (comp X Y Z g f) = comp' (F0 X) (F0 Y) (F0 Z) (F1 Y Z g) (F1 X Y f)) of type prop.
L1458
Theorem. (MetaFunctorI)
(∀X, Obj X → Obj' (F0 X)) → (∀X Y f, Obj X → Obj Y → Hom X Y f → Hom' (F0 X) (F0 Y) (F1 X Y f)) → (∀X, Obj X → F1 X X (id X) = id' (F0 X)) → (∀X Y Z f g, Obj X → Obj Y → Obj Z → Hom X Y f → Hom Y Z g → F1 X Z (comp X Y Z g f) = comp' (F0 X) (F0 Y) (F0 Z) (F1 Y Z g) (F1 X Y f)) → MetaFunctor
Proof:
Proof not loaded.
L1470
Theorem. (MetaFunctorE)
MetaFunctor → ∀p : prop, ((∀X, Obj X → Obj' (F0 X)) → (∀X Y f, Obj X → Obj Y → Hom X Y f → Hom' (F0 X) (F0 Y) (F1 X Y f)) → (∀X, Obj X → F1 X X (id X) = id' (F0 X)) → (∀X Y Z f g, Obj X → Obj Y → Obj Z → Hom X Y f → Hom Y Z g → F1 X Z (comp X Y Z g f) = comp' (F0 X) (F0 Y) (F0 Z) (F1 Y Z g) (F1 X Y f)) → p) → p
Proof:
Proof not loaded.
L1484
Definition. We define MetaFunctor_strict to be MetaCat Obj Hom id comp ∧ MetaCat Obj' Hom' id' comp' ∧ MetaFunctor of type prop.
L1486
Theorem. (MetaFunctor_strict_I)
MetaCat Obj Hom id comp → MetaCat Obj' Hom' id' comp' → MetaFunctor → MetaFunctor_strict
Proof:
Proof not loaded.
L1494
Theorem. (MetaFunctor_strict_E)
MetaFunctor_strict → ∀p : prop, (MetaCat Obj Hom id comp → MetaCat Obj' Hom' id' comp' → MetaFunctor → p) → p
Proof:
Proof not loaded.
End of Section MetaFunctor
Beginning of Section IdFunctor
L1508
Variable Obj : set → prop
L1510
Variable Hom : set → set → set → prop
L1511
Variable id : set → set
L1512
Variable comp : set → set → set → set → set → set
L1513
Theorem. (MetaCat_IdFunctor)
MetaFunctor Obj Hom id comp Obj Hom id comp (λX ⇒ X) (λX Y f ⇒ f)
Proof:
Proof not loaded.
L1521
Theorem. (MetaCat_IdFunctor_strict)
MetaCat Obj Hom id comp → MetaFunctor_strict Obj Hom id comp Obj Hom id comp (λX ⇒ X) (λX Y f ⇒ f)
Proof:
Proof not loaded.
End of Section IdFunctor
Beginning of Section CompFunctors
L1534
Variable Obj : set → prop
L1536
Variable Hom : set → set → set → prop
L1537
Variable id : set → set
L1538
Variable comp : set → set → set → set → set → set
L1539
Variable Obj' : set → prop
L1540
Variable Hom' : set → set → set → prop
L1541
Variable id' : set → set
L1542
Variable comp' : set → set → set → set → set → set
L1543
Variable Obj'' : set → prop
L1544
Variable Hom'' : set → set → set → prop
L1545
Variable id'' : set → set
L1546
Variable comp'' : set → set → set → set → set → set
L1547
Variable F0 : set → set
L1548
Variable F1 : set → set → set → set
L1549
Variable G0 : set → set
L1550
Variable G1 : set → set → set → set
L1551
Theorem. (MetaCat_CompFunctors)
MetaFunctor Obj Hom id comp Obj' Hom' id' comp' F0 F1 → MetaFunctor Obj' Hom' id' comp' Obj'' Hom'' id'' comp'' G0 G1 → MetaFunctor Obj Hom id comp Obj'' Hom'' id'' comp'' (λX ⇒ G0 (F0 X)) (λX Y f ⇒ G1 (F0 X) (F0 Y) (F1 X Y f))
Proof:
Proof not loaded.
L1586
Theorem. (MetaCat_CompFunctors_strict)
MetaFunctor_strict Obj Hom id comp Obj' Hom' id' comp' F0 F1 → MetaFunctor_strict Obj' Hom' id' comp' Obj'' Hom'' id'' comp'' G0 G1 → MetaFunctor_strict Obj Hom id comp Obj'' Hom'' id'' comp'' (λX ⇒ G0 (F0 X)) (λX Y f ⇒ G1 (F0 X) (F0 Y) (F1 X Y f))
Proof:
Proof not loaded.
End of Section CompFunctors
Beginning of Section MetaNatTrans
L1607
Variable Obj : set → prop
L1609
Variable Hom : set → set → set → prop
L1610
Variable id : set → set
L1611
Variable comp : set → set → set → set → set → set
L1612
Variable Obj' : set → prop
L1613
Variable Hom' : set → set → set → prop
L1614
Variable id' : set → set
L1615
Variable comp' : set → set → set → set → set → set
L1616
Variable F0 : set → set
L1618
Variable F1 : set → set → set → set
L1619
Variable G0 : set → set
L1620
Variable G1 : set → set → set → set
L1621
Variable eta : set → set
L1623
Definition. We define MetaNatTrans to be (∀X, Obj X → Hom' (F0 X) (G0 X) (eta X)) ∧ (∀X Y f, Obj X → Obj Y → Hom X Y f → comp' (F0 X) (G0 X) (G0 Y) (G1 X Y f) (eta X) = comp' (F0 X) (F0 Y) (G0 Y) (eta Y) (F1 X Y f)) of type prop.
L1629
Theorem. (MetaNatTransI)
(∀X, Obj X → Hom' (F0 X) (G0 X) (eta X)) → (∀X Y f, Obj X → Obj Y → Hom X Y f → comp' (F0 X) (G0 X) (G0 Y) (G1 X Y f) (eta X) = comp' (F0 X) (F0 Y) (G0 Y) (eta Y) (F1 X Y f)) → MetaNatTrans
Proof:
Proof not loaded.
L1641
Theorem. (MetaNatTransE)
MetaNatTrans → ∀p : prop, ((∀X, Obj X → Hom' (F0 X) (G0 X) (eta X)) → (∀X Y f, Obj X → Obj Y → Hom X Y f → comp' (F0 X) (G0 X) (G0 Y) (G1 X Y f) (eta X) = comp' (F0 X) (F0 Y) (G0 Y) (eta Y) (F1 X Y f)) → p) → p
Proof:
Proof not loaded.
L1652
Definition. We define MetaNatTrans_strict to be MetaCat Obj Hom id comp ∧ MetaCat Obj' Hom' id' comp' ∧ MetaFunctor Obj Hom id comp Obj' Hom' id' comp' F0 F1 ∧ MetaFunctor Obj Hom id comp Obj' Hom' id' comp' G0 G1 ∧ MetaNatTrans of type prop.
L1659
Theorem. (MetaNatTrans_strict_I)
MetaCat Obj Hom id comp → MetaCat Obj' Hom' id' comp' → MetaFunctor Obj Hom id comp Obj' Hom' id' comp' F0 F1 → MetaFunctor Obj Hom id comp Obj' Hom' id' comp' G0 G1 → MetaNatTrans → MetaNatTrans_strict
Proof:
Proof not loaded.
L1672
Theorem. (MetaNatTrans_strict_E)
MetaNatTrans_strict → ∀p : prop, (MetaCat Obj Hom id comp → MetaCat Obj' Hom' id' comp' → MetaFunctor Obj Hom id comp Obj' Hom' id' comp' F0 F1 → MetaFunctor Obj Hom id comp Obj' Hom' id' comp' G0 G1 → MetaNatTrans → p) → p
Proof:
Proof not loaded.
End of Section MetaNatTrans
Beginning of Section CompFunctorNatTrans
L1693
Variable Obj : set → prop
L1695
Variable Hom : set → set → set → prop
L1696
Variable id : set → set
L1697
Variable comp : set → set → set → set → set → set
L1698
Variable Obj' : set → prop
L1699
Variable Hom' : set → set → set → prop
L1700
Variable id' : set → set
L1701
Variable comp' : set → set → set → set → set → set
L1702
Variable Obj'' : set → prop
L1703
Variable Hom'' : set → set → set → prop
L1704
Variable id'' : set → set
L1705
Variable comp'' : set → set → set → set → set → set
L1706
Variable F0 : set → set
L1707
Variable F1 : set → set → set → set
L1708
Variable G0 : set → set
L1709
Variable G1 : set → set → set → set
L1710
Variable H0 : set → set
L1711
Variable H1 : set → set → set → set
L1712
Variable eta : set → set
L1713
Theorem. (MetaCat_CompFunctorNatTrans)
MetaFunctor Obj Hom id comp Obj' Hom' id' comp' F0 F1 → MetaFunctor Obj Hom id comp Obj' Hom' id' comp' G0 G1 → MetaNatTrans Obj Hom id comp Obj' Hom' id' comp' F0 F1 G0 G1 eta → MetaFunctor Obj' Hom' id' comp' Obj'' Hom'' id'' comp'' H0 H1 → MetaNatTrans Obj Hom id comp Obj'' Hom'' id'' comp'' (λX ⇒ H0 (F0 X)) (λX Y f ⇒ H1 (F0 X) (F0 Y) (F1 X Y f)) (λX ⇒ H0 (G0 X)) (λX Y f ⇒ H1 (G0 X) (G0 Y) (G1 X Y f)) (λX ⇒ H1 (F0 X) (G0 X) (eta X))
Proof:
Proof not loaded.
End of Section CompFunctorNatTrans
Beginning of Section CompNatTransFunctor
L1771
Variable Obj : set → prop
L1773
Variable Hom : set → set → set → prop
L1774
Variable id : set → set
L1775
Variable comp : set → set → set → set → set → set
L1776
Variable Obj' : set → prop
L1777
Variable Hom' : set → set → set → prop
L1778
Variable id' : set → set
L1779
Variable comp' : set → set → set → set → set → set
L1780
Variable Obj'' : set → prop
L1781
Variable Hom'' : set → set → set → prop
L1782
Variable id'' : set → set
L1783
Variable comp'' : set → set → set → set → set → set
L1784
Variable F0 : set → set
L1785
Variable F1 : set → set → set → set
L1786
Variable G0 : set → set
L1787
Variable G1 : set → set → set → set
L1788
Variable H0 : set → set
L1789
Variable H1 : set → set → set → set
L1790
Variable eta : set → set
L1791
Theorem. (MetaCat_CompNatTransFunctor)
MetaNatTrans Obj' Hom' id' comp' Obj'' Hom'' id'' comp'' F0 F1 G0 G1 eta → MetaFunctor Obj Hom id comp Obj' Hom' id' comp' H0 H1 → MetaNatTrans Obj Hom id comp Obj'' Hom'' id'' comp'' (λX ⇒ F0 (H0 X)) (λX Y f ⇒ F1 (H0 X) (H0 Y) (H1 X Y f)) (λX ⇒ G0 (H0 X)) (λX Y f ⇒ G1 (H0 X) (H0 Y) (H1 X Y f)) (λX ⇒ eta (H0 X))
Proof:
Proof not loaded.
End of Section CompNatTransFunctor
Beginning of Section MetaMonad
L1833
Variable Obj : set → prop
L1835
Variable Hom : set → set → set → prop
L1836
Variable id : set → set
L1837
Variable comp : set → set → set → set → set → set
L1838
Variable T0 : set → set
L1840
Variable T1 : set → set → set → set
L1841
Variable eta : set → set
L1842
Variable mu : set → set
L1843
Definition. We define MetaMonad to be (∀X, Obj X → comp (T0 (T0 (T0 X))) (T0 (T0 X)) (T0 X) (mu X) (T1 (T0 (T0 X)) (T0 X) (mu X)) = comp (T0 (T0 (T0 X))) (T0 (T0 X)) (T0 X) (mu X) (mu (T0 X))) ∧ (∀X, Obj X → comp (T0 X) (T0 (T0 X)) (T0 X) (mu X) (eta (T0 X)) = id (T0 X)) ∧ (∀X, Obj X → comp (T0 X) (T0 (T0 X)) (T0 X) (mu X) (T1 X (T0 X) (eta X)) = id (T0 X)) of type prop.
L1848
Definition. We define MetaMonad_strict to be MetaNatTrans_strict Obj Hom id comp Obj Hom id comp (λX ⇒ X) (λX Y f ⇒ f) T0 T1 eta ∧ MetaNatTrans_strict Obj Hom id comp Obj Hom id comp (λX ⇒ T0 (T0 X)) (λX Y f ⇒ T1 (T0 X) (T0 Y) (T1 X Y f)) T0 T1 mu ∧ MetaMonad of type prop.
L1853
Theorem. (MetaMonadI)
(∀X, Obj X → comp (T0 (T0 (T0 X))) (T0 (T0 X)) (T0 X) (mu X) (T1 (T0 (T0 X)) (T0 X) (mu X)) = comp (T0 (T0 (T0 X))) (T0 (T0 X)) (T0 X) (mu X) (mu (T0 X))) → (∀X, Obj X → comp (T0 X) (T0 (T0 X)) (T0 X) (mu X) (eta (T0 X)) = id (T0 X)) → (∀X, Obj X → comp (T0 X) (T0 (T0 X)) (T0 X) (mu X) (T1 X (T0 X) (eta X)) = id (T0 X)) → MetaMonad
Proof:
Proof not loaded.
L1863
Theorem. (MetaMonadE)
MetaMonad → (∀p : prop, ((∀X, Obj X → comp (T0 (T0 (T0 X))) (T0 (T0 X)) (T0 X) (mu X) (T1 (T0 (T0 X)) (T0 X) (mu X)) = comp (T0 (T0 (T0 X))) (T0 (T0 X)) (T0 X) (mu X) (mu (T0 X))) → (∀X, Obj X → comp (T0 X) (T0 (T0 X)) (T0 X) (mu X) (eta (T0 X)) = id (T0 X)) → (∀X, Obj X → comp (T0 X) (T0 (T0 X)) (T0 X) (mu X) (T1 X (T0 X) (eta X)) = id (T0 X)) → p) → p)
Proof:
Proof not loaded.
L1875
Theorem. (MetaMonad_strict_I)
MetaNatTrans_strict Obj Hom id comp Obj Hom id comp (λX ⇒ X) (λX Y f ⇒ f) T0 T1 eta → MetaNatTrans_strict Obj Hom id comp Obj Hom id comp (λX ⇒ T0 (T0 X)) (λX Y f ⇒ T1 (T0 X) (T0 Y) (T1 X Y f)) T0 T1 mu → MetaMonad → MetaMonad_strict
Proof:
Proof not loaded.
L1885
Theorem. (MetaMonad_strict_E)
MetaMonad_strict → ∀p : prop, (MetaNatTrans_strict Obj Hom id comp Obj Hom id comp (λX ⇒ X) (λX Y f ⇒ f) T0 T1 eta → MetaNatTrans_strict Obj Hom id comp Obj Hom id comp (λX ⇒ T0 (T0 X)) (λX Y f ⇒ T1 (T0 X) (T0 Y) (T1 X Y f)) T0 T1 mu → MetaMonad → p) → p
Proof:
Proof not loaded.
End of Section MetaMonad
Beginning of Section MetaAdjunction
L1901
Variable Obj : set → prop
L1903
Variable Hom : set → set → set → prop
L1904
Variable id : set → set
L1905
Variable comp : set → set → set → set → set → set
L1906
Variable Obj' : set → prop
L1907
Variable Hom' : set → set → set → prop
L1908
Variable id' : set → set
L1909
Variable comp' : set → set → set → set → set → set
L1910
Variable F0 : set → set
L1912
Variable F1 : set → set → set → set
L1913
Variable G0 : set → set
L1914
Variable G1 : set → set → set → set
L1915
Variable eta : set → set
L1916
Variable eps : set → set
L1917
Definition. We define MetaAdjunction to be (∀X, Obj X → comp' (F0 X) (F0 (G0 (F0 X))) (F0 X) (eps (F0 X)) (F1 X (G0 (F0 X)) (eta X)) = id' (F0 X)) ∧ (∀Y, Obj' Y → comp (G0 Y) (G0 (F0 (G0 Y))) (G0 Y) (G1 (F0 (G0 Y)) Y (eps Y)) (eta (G0 Y)) = id (G0 Y)) of type prop.
L1921
Definition. We define MetaAdjunction_strict to be MetaFunctor_strict Obj Hom id comp Obj' Hom' id' comp' F0 F1 ∧ MetaFunctor Obj' Hom' id' comp' Obj Hom id comp G0 G1 ∧ MetaNatTrans Obj Hom id comp Obj Hom id comp (λX ⇒ X) (λX Y f ⇒ f) (λX ⇒ G0 (F0 X)) (λX Y f ⇒ G1 (F0 X) (F0 Y) (F1 X Y f)) eta ∧ MetaNatTrans Obj' Hom' id' comp' Obj' Hom' id' comp' (λY ⇒ F0 (G0 Y)) (λX Y g ⇒ F1 (G0 X) (G0 Y) (G1 X Y g)) (λY ⇒ Y) (λX Y g ⇒ g) eps ∧ MetaAdjunction of type prop.
L1928
Theorem. (MetaAdjunctionI)
(∀X, Obj X → comp' (F0 X) (F0 (G0 (F0 X))) (F0 X) (eps (F0 X)) (F1 X (G0 (F0 X)) (eta X)) = id' (F0 X)) → (∀Y, Obj' Y → comp (G0 Y) (G0 (F0 (G0 Y))) (G0 Y) (G1 (F0 (G0 Y)) Y (eps Y)) (eta (G0 Y)) = id (G0 Y)) → MetaAdjunction
Proof:
Proof not loaded.
L1936
Theorem. (MetaAdjunctionE)
MetaAdjunction → ∀p : prop, ((∀X, Obj X → comp' (F0 X) (F0 (G0 (F0 X))) (F0 X) (eps (F0 X)) (F1 X (G0 (F0 X)) (eta X)) = id' (F0 X)) → (∀Y, Obj' Y → comp (G0 Y) (G0 (F0 (G0 Y))) (G0 Y) (G1 (F0 (G0 Y)) Y (eps Y)) (eta (G0 Y)) = id (G0 Y)) → p) → p
Proof:
Proof not loaded.
L1945
Theorem. (MetaAdjunction_strict_I)
MetaFunctor_strict Obj Hom id comp Obj' Hom' id' comp' F0 F1 → MetaFunctor Obj' Hom' id' comp' Obj Hom id comp G0 G1 → MetaNatTrans Obj Hom id comp Obj Hom id comp (λX ⇒ X) (λX Y f ⇒ f) (λX ⇒ G0 (F0 X)) (λX Y f ⇒ G1 (F0 X) (F0 Y) (F1 X Y f)) eta → MetaNatTrans Obj' Hom' id' comp' Obj' Hom' id' comp' (λY ⇒ F0 (G0 Y)) (λX Y g ⇒ F1 (G0 X) (G0 Y) (G1 X Y g)) (λY ⇒ Y) (λX Y g ⇒ g) eps → MetaAdjunction → MetaAdjunction_strict
Proof:
Proof not loaded.
L1959
Theorem. (MetaAdjunction_strict_E)
MetaAdjunction_strict → ∀p : prop, (MetaFunctor_strict Obj Hom id comp Obj' Hom' id' comp' F0 F1 → MetaFunctor Obj' Hom' id' comp' Obj Hom id comp G0 G1 → MetaNatTrans Obj Hom id comp Obj Hom id comp (λX ⇒ X) (λX Y f ⇒ f) (λX ⇒ G0 (F0 X)) (λX Y f ⇒ G1 (F0 X) (F0 Y) (F1 X Y f)) eta → MetaNatTrans Obj' Hom' id' comp' Obj' Hom' id' comp' (λY ⇒ F0 (G0 Y)) (λX Y g ⇒ F1 (G0 X) (G0 Y) (G1 X Y g)) (λY ⇒ Y) (λX Y g ⇒ g) eps → MetaAdjunction → p) → p
Proof:
Proof not loaded.
L1975
Theorem. (MetaAdjunctionMonad)
MetaFunctor Obj Hom id comp Obj' Hom' id' comp' F0 F1 → MetaFunctor Obj' Hom' id' comp' Obj Hom id comp G0 G1 → MetaNatTrans Obj Hom id comp Obj Hom id comp (λX ⇒ X) (λX Y f ⇒ f) (λX ⇒ G0 (F0 X)) (λX Y f ⇒ G1 (F0 X) (F0 Y) (F1 X Y f)) eta → MetaNatTrans Obj' Hom' id' comp' Obj' Hom' id' comp' (λY ⇒ F0 (G0 Y)) (λX Y g ⇒ F1 (G0 X) (G0 Y) (G1 X Y g)) (λY ⇒ Y) (λX Y g ⇒ g) eps → MetaAdjunction → MetaMonad Obj Hom id comp (λX ⇒ G0 (F0 X)) (λX Y f ⇒ G1 (F0 X) (F0 Y) (F1 X Y f)) eta (λX ⇒ G1 (F0 (G0 (F0 X))) (F0 X) (eps (F0 X)))
Proof:
Proof not loaded.
L2129
Theorem. (MetaAdjunctionMonad_strict)
MetaAdjunction_strict → MetaMonad_strict Obj Hom id comp (λX ⇒ G0 (F0 X)) (λX Y f ⇒ G1 (F0 X) (F0 Y) (F1 X Y f)) eta (λX ⇒ G1 (F0 (G0 (F0 X))) (F0 X) (eps (F0 X)))
Proof:
Proof not loaded.
End of Section MetaAdjunction
Beginning of Section MetaCatConcrete
L2178
Variable Obj : set → prop
L2180
Variable U : set → set
L2181
Variable Hom : set → set → set → prop
L2182
Theorem. (MetaCatConcrete)
(∀X Y f, Obj X → Obj Y → Hom X Y f → f ∈ U YU X) → (∀X, Obj X → Hom X X (lam_id (U X))) → (∀X Y Z f g, Obj X → Obj Y → Obj Z → Hom X Y f → Hom Y Z g → Hom X Z (lam_comp (U X) g f)) → MetaCat Obj Hom (λX ⇒ lam_id (U X)) (λX Y Z g f ⇒ lam_comp (U X) g f)
Proof:
Proof not loaded.
L2202
Theorem. (MetaCatConcreteForgetful)
(∀X Y f, Obj X → Obj Y → Hom X Y f → f ∈ U YU X) → MetaFunctor Obj Hom (λX ⇒ lam_id (U X)) (λX Y Z f g ⇒ (lam_comp (U X) f g)) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) U (λX Y f ⇒ f)
Proof:
Proof not loaded.
End of Section MetaCatConcrete
L2217
Theorem. (MetaCatSet)
MetaCat (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z g f ⇒ lam_comp X g f)
Proof:
Proof not loaded.
L2224
Theorem. (MetaCatHFSet)
MetaCat (λX ⇒ X ∈ UnivOf Empty) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g))
Proof:
Proof not loaded.
L2231
Theorem. (MetaCatSmallSet)
MetaCat (λX ⇒ X ∈ UnivOf (UnivOf Empty)) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g))
Proof:
Proof not loaded.
L2238
Theorem. (MetaCatConcreteForgetful_strict)
∀Obj : set → prop, ∀U : set → set, ∀Hom : set → set → set → prop, (∀X Y f, Obj X → Obj Y → Hom X Y f → f ∈ U YU X) → (∀X, Obj X → Hom X X (lam_id (U X))) → (∀X Y Z f g, Obj X → Obj Y → Obj Z → Hom X Y f → Hom Y Z g → Hom X Z (lam_comp (U X) g f)) → MetaFunctor_strict Obj Hom (λX ⇒ lam_id (U X)) (λX Y Z f g ⇒ (lam_comp (U X) f g)) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) U (λX Y f ⇒ f)
Proof:
Proof not loaded.
L2251
Definition. We define Hom_struct_e to be λX Y f ⇒ unpack_e_o X (λX' eX ⇒ unpack_e_o Y (λY' eY ⇒ f ∈ Y'X' ∧ f eX = eY)) of type set → set → set → prop.
L2259
Definition. We define Hom_struct_u to be λX Y f ⇒ unpack_u_o X (λX' uX ⇒ unpack_u_o Y (λY' uY ⇒ f ∈ Y'X' ∧ ∀x ∈ X', f (uX x) = uY (f x))) of type set → set → set → prop.
L2267
Definition. We define Hom_struct_b to be λX Y f ⇒ unpack_b_o X (λX' opX ⇒ unpack_b_o Y (λY' opY ⇒ f ∈ Y'X' ∧ ∀x y ∈ X', f (opX x y) = opY (f x) (f y))) of type set → set → set → prop.
L2275
Definition. We define Hom_struct_p to be λX Y f ⇒ unpack_p_o X (λX' pX ⇒ unpack_p_o Y (λY' pY ⇒ f ∈ Y'X' ∧ ∀x ∈ X', pX x → pY (f x))) of type set → set → set → prop.
L2283
Definition. We define Hom_struct_r to be λX Y f ⇒ unpack_r_o X (λX' rX ⇒ unpack_r_o Y (λY' rY ⇒ f ∈ Y'X' ∧ ∀x y ∈ X', rX x y → rY (f x) (f y))) of type set → set → set → prop.
L2291
Definition. We define Hom_struct_c to be λX Y f ⇒ unpack_c_o X (λX' CX ⇒ unpack_c_o Y (λY' CY ⇒ f ∈ Y'X' ∧ ∀U : set → prop, (∀y, U y → y ∈ Y') → CY U → CX (λx ⇒ x ∈ X' ∧ U (f x)))) of type set → set → set → prop.
L2299
Definition. We define Hom_struct_b_b_e to be λX Y f ⇒ unpack_b_b_e_o X (λX' opX op2X eX ⇒ unpack_b_b_e_o Y (λY' opY op2Y eY ⇒ f ∈ Y'X' ∧ (∀x y ∈ X', f (opX x y) = opY (f x) (f y)) ∧ (∀x y ∈ X', f (op2X x y) = op2Y (f x) (f y)) ∧ f eX = eY)) of type set → set → set → prop.
L2310
Definition. We define Hom_struct_b_b_e_e to be λX Y f ⇒ unpack_b_b_e_e_o X (λX' opX op2X eX e2X ⇒ unpack_b_b_e_e_o Y (λY' opY op2Y eY e2Y ⇒ f ∈ Y'X' ∧ (∀x y ∈ X', f (opX x y) = opY (f x) (f y)) ∧ (∀x y ∈ X', f (op2X x y) = op2Y (f x) (f y)) ∧ f eX = eY ∧ f e2X = e2Y)) of type set → set → set → prop.
L2322
Definition. We define Hom_struct_b_b_r_e_e to be λX Y f ⇒ unpack_b_b_r_e_e_o X (λX' opX op2X rX eX e2X ⇒ unpack_b_b_r_e_e_o Y (λY' opY op2Y rY eY e2Y ⇒ f ∈ Y'X' ∧ (∀x y ∈ X', f (opX x y) = opY (f x) (f y)) ∧ (∀x y ∈ X', f (op2X x y) = op2Y (f x) (f y)) ∧ (∀x y ∈ X', rX x y → rY (f x) (f y)) ∧ f eX = eY ∧ f e2X = e2Y)) of type set → set → set → prop.
L2335
Theorem. (Hom_struct_e_pack)
∀X Y eX eY f, (Hom_struct_e (pack_e X eX) (pack_e Y eY) f) = (f ∈ YX ∧ f eX = eY)
Proof:
Proof not loaded.
L2351
Theorem. (Hom_struct_u_pack)
∀X Y, ∀opX opY : set → set, ∀f, (Hom_struct_u (pack_u X opX) (pack_u Y opY) f) = (f ∈ YX ∧ (∀x ∈ X, f (opX x) = opY (f x)))
Proof:
Proof not loaded.
L2435
Theorem. (Hom_struct_b_pack)
∀X Y, ∀opX opY : set → set → set, ∀f, (Hom_struct_b (pack_b X opX) (pack_b Y opY) f) = (f ∈ YX ∧ (∀x y ∈ X, f (opX x y) = opY (f x) (f y)))
Proof:
Proof not loaded.
L2519
Theorem. (Hom_struct_p_pack)
∀X Y, ∀pX pY : set → prop, ∀f, (Hom_struct_p (pack_p X pX) (pack_p Y pY) f) = (f ∈ YX ∧ (∀x ∈ X, pX x → pY (f x)))
Proof:
Proof not loaded.
L2599
Theorem. (Hom_struct_r_pack)
∀X Y, ∀rX rY : set → set → prop, ∀f, (Hom_struct_r (pack_r X rX) (pack_r Y rY) f) = (f ∈ YX ∧ (∀x y ∈ X, rX x y → rY (f x) (f y)))
Proof:
Proof not loaded.
L2679
Theorem. (Hom_struct_c_pack)
∀X Y, ∀CX CY : (set → prop) → prop, ∀f, (Hom_struct_c (pack_c X CX) (pack_c Y CY) f) = (f ∈ YX ∧ (∀U : set → prop, (∀y, U y → y ∈ Y) → CY U → CX (λx ⇒ x ∈ X ∧ U (f x))))
Proof:
Proof not loaded.
L2775
Theorem. (Hom_struct_b_b_e_pack)
∀X Y, ∀opX op2X opY op2Y : set → set → set, ∀eX eY f, (Hom_struct_b_b_e (pack_b_b_e X opX op2X eX) (pack_b_b_e Y opY op2Y eY) f) = (f ∈ YX ∧ (∀x y ∈ X, f (opX x y) = opY (f x) (f y)) ∧ (∀x y ∈ X, f (op2X x y) = op2Y (f x) (f y)) ∧ f eX = eY)
Proof:
Proof not loaded.
L2893
Theorem. (Hom_struct_b_b_e_e_pack)
∀X Y, ∀opX op2X opY op2Y : set → set → set, ∀eX e2X eY e2Y f, (Hom_struct_b_b_e_e (pack_b_b_e_e X opX op2X eX e2X) (pack_b_b_e_e Y opY op2Y eY e2Y) f) = (f ∈ YX ∧ (∀x y ∈ X, f (opX x y) = opY (f x) (f y)) ∧ (∀x y ∈ X, f (op2X x y) = op2Y (f x) (f y)) ∧ f eX = eY ∧ f e2X = e2Y)
Proof:
Proof not loaded.
L3021
Theorem. (Hom_struct_b_b_r_e_e_pack)
∀X Y, ∀opX op2X opY op2Y : set → set → set, ∀rX rY : set → set → prop, ∀eX e2X eY e2Y f, (Hom_struct_b_b_r_e_e (pack_b_b_r_e_e X opX op2X rX eX e2X) (pack_b_b_r_e_e Y opY op2Y rY eY e2Y) f) = (f ∈ YX ∧ (∀x y ∈ X, f (opX x y) = opY (f x) (f y)) ∧ (∀x y ∈ X, f (op2X x y) = op2Y (f x) (f y)) ∧ (∀x y ∈ X, rX x y → rY (f x) (f y)) ∧ f eX = eY ∧ f e2X = e2Y)
Proof:
Proof not loaded.
Beginning of Section MetaCatStruct
L3172
Variable Obj : set → prop
L3174
Theorem. (MetaCat_struct_e_gen)
(∀X, Obj X → struct_e X) → MetaCat Obj Hom_struct_e (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
Proof:
Proof not loaded.
L3229
Theorem. (MetaCat_struct_e_Forgetful_gen)
(∀X, Obj X → struct_e X) → MetaFunctor Obj Hom_struct_e (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
Proof:
Proof not loaded.
L3250
Theorem. (MetaCat_struct_p_gen)
(∀X, Obj X → struct_p X) → MetaCat Obj Hom_struct_p (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
Proof:
Proof not loaded.
L3310
Theorem. (MetaCat_struct_p_Forgetful_gen)
(∀X, Obj X → struct_p X) → MetaFunctor Obj Hom_struct_p (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
Proof:
Proof not loaded.
L3331
Theorem. (MetaCat_struct_r_gen)
(∀X, Obj X → struct_r X) → MetaCat Obj Hom_struct_r (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
Proof:
Proof not loaded.
L3393
Theorem. (MetaCat_struct_r_Forgetful_gen)
(∀X, Obj X → struct_r X) → MetaFunctor Obj Hom_struct_r (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
Proof:
Proof not loaded.
L3414
Theorem. (MetaCat_struct_u_gen)
(∀X, Obj X → struct_u X) → MetaCat Obj Hom_struct_u (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
Proof:
Proof not loaded.
L3477
Theorem. (MetaCat_struct_u_Forgetful_gen)
(∀X, Obj X → struct_u X) → MetaFunctor Obj Hom_struct_u (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
Proof:
Proof not loaded.
L3498
Theorem. (MetaCat_struct_b_gen)
(∀X, Obj X → struct_b X) → MetaCat Obj Hom_struct_b (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
Proof:
Proof not loaded.
L3563
Theorem. (MetaCat_struct_b_Forgetful_gen)
(∀X, Obj X → struct_b X) → MetaFunctor Obj Hom_struct_b (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
Proof:
Proof not loaded.
L3584
Theorem. (MetaCat_struct_c_gen)
(∀X, Obj X → struct_c X) → MetaCat Obj Hom_struct_c (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
Proof:
Proof not loaded.
L3681
Theorem. (MetaCat_struct_c_Forgetful_gen)
(∀X, Obj X → struct_c X) → MetaFunctor Obj Hom_struct_c (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
Proof:
Proof not loaded.
L3702
Theorem. (MetaCat_struct_b_b_e_gen)
(∀X, Obj X → struct_b_b_e X) → MetaCat Obj Hom_struct_b_b_e (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
Proof:
Proof not loaded.
L3827
Theorem. (MetaCat_struct_b_b_e_Forgetful_gen)
(∀X, Obj X → struct_b_b_e X) → MetaFunctor Obj Hom_struct_b_b_e (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
Proof:
Proof not loaded.
L3848
Theorem. (MetaCat_struct_b_b_e_e_gen)
(∀X, Obj X → struct_b_b_e_e X) → MetaCat Obj Hom_struct_b_b_e_e (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
Proof:
Proof not loaded.
L3987
Theorem. (MetaCat_struct_b_b_e_e_Forgetful_gen)
(∀X, Obj X → struct_b_b_e_e X) → MetaFunctor Obj Hom_struct_b_b_e_e (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
Proof:
Proof not loaded.
L4009
Theorem. (MetaCat_struct_b_b_r_e_e_gen)
(∀X, Obj X → struct_b_b_r_e_e X) → MetaCat Obj Hom_struct_b_b_r_e_e (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
Proof:
Proof not loaded.
L4172
Theorem. (MetaCat_struct_b_b_r_e_e_Forgetful_gen)
(∀X, Obj X → struct_b_b_r_e_e X) → MetaFunctor Obj Hom_struct_b_b_r_e_e (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
Proof:
Proof not loaded.
End of Section MetaCatStruct