L1
Definition. We define True to be ∀p : prop, pp of type prop.
L1
Definition. We define False to be ∀p : prop, p of type prop.
L2
Axiom. (FalseE) We take the following as an axiom:
False∀p : prop, p
L4
Definition. We define not to be λA : propAFalse of type propprop.
Notation. We use ¬ as a prefix operator with priority 700 corresponding to applying term not.
L9
Definition. We define and to be λA B : prop∀p : prop, (ABp)p of type proppropprop.
Notation. We use as an infix operator with priority 780 and which associates to the left corresponding to applying term and.
L14
Axiom. (andI) We take the following as an axiom:
∀A B : prop, ABA B
Beginning of Section Eq
L18
Variable A : SType
L19
Definition. We define eq to be λx y : A∀Q : AAprop, Q x yQ y x of type AAprop.
L20
Definition. We define neq to be λx y : A¬ eq x y of type AAprop.
End of Section Eq
Notation. We use = as an infix operator with priority 502 and no associativity corresponding to applying term eq.
Notation. We use as an infix operator with priority 502 and no associativity corresponding to applying term neq.
Beginning of Section Ex
L28
Variable A : SType
L29
Definition. We define ex to be λQ : Aprop∀P : prop, (∀x : A, Q xP)P of type (Aprop)prop.
End of Section Ex
Primitive. The name In is a term of type setsetprop.
Notation. We use as an infix operator with priority 500 and no associativity corresponding to applying term In. Furthermore, we may write xA, B to mean x : set, xAB.
Notation. We use x...y [possibly with ascriptions] , B as a binder notation corresponding to a term constructed using ex and handling ∈ or ⊆ ascriptions using and.
Primitive. The name Empty is a term of type set.
Primitive. The name ordsucc is a term of type setset.
Notation. Natural numbers 0,1,2,... are notation for the terms formed using Empty as 0 and forming successors with ordsucc.
L43
Axiom. (neq_0_1) We take the following as an axiom:
L45
Axiom. (In_0_2) We take the following as an axiom:
L46
Axiom. (In_1_2) We take the following as an axiom:
Primitive. The name nat_p is a term of type setprop.
L50
Axiom. (nat_2) We take the following as an axiom:
L52
Axiom. (nat_p_trans) We take the following as an axiom:
∀n, nat_p n∀mn, nat_p m
L53
Axiom. (cases_2) We take the following as an axiom:
∀i2, ∀p : setprop, p 0p 1p i
Primitive. The name omega is a term of type set.
L58
Axiom. (nat_p_omega) We take the following as an axiom:
∀n : set, nat_p nn omega
Primitive. The name lam is a term of type set(setset)set.
L63
Definition. We define setprod to be λX Y : setlam X (λ_ ⇒ Y) of type setsetset.
Notation. We use as an infix operator with priority 440 and which associates to the left corresponding to applying term setprod.
Primitive. The name ap is a term of type setsetset.
Notation. When x is a set, a term x y is notation for ap x y.
Notation. λ xAB is notation for the set lam Ax : set ⇒ B).
L74
Axiom. (beta) We take the following as an axiom:
∀X : set, ∀F : setset, ∀x : set, x X(λxXF x) x = F x
L76
Definition. We define lam_id to be λX ⇒ lam X (λx ⇒ x) of type setset.
L78
Definition. We define lam_comp to be λX g f ⇒ lam X (λx : setg (f x)) of type setsetsetset.
L81
Definition. We define struct_id to be λX ⇒ lam_id (X 0) of type setset.
L83
Definition. We define struct_comp to be λX Y Z f g ⇒ lam_comp (X 0) f g of type setsetsetsetsetset.
Primitive. The name Pi is a term of type set(setset)set.
Notation. We use x...y [possibly with ascriptions] , B as a binder notation corresponding to a term constructed using Pi.
L91
Axiom. (lam_Pi) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀F : setset, (∀xX, F x Y x)(λxXF x) (xX, Y x)
L94
Definition. We define setexp to be λY X : setxX, Y of type setsetset.
Notation. We use :^: as an infix operator with priority 430 and which associates to the left corresponding to applying term setexp.
L98
Definition. We define HomSet to be λX Y f ⇒ f YX of type setsetsetprop.
Primitive. The name SNo is a term of type setprop.
Primitive. The name mul_SNo is a term of type setsetset.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mul_SNo.
L108
Axiom. (omega_SNo) We take the following as an axiom:
L110
Axiom. (SNo_0) We take the following as an axiom:
L112
Axiom. (SNo_1) We take the following as an axiom:
L113
Axiom. (mul_SNo_zeroL) We take the following as an axiom:
∀x, SNo x0 * x = 0
L115
Axiom. (mul_SNo_oneL) We take the following as an axiom:
∀x, SNo x1 * x = x
L116
Axiom. (mul_SNo_oneR) We take the following as an axiom:
∀x, SNo xx * 1 = x
L117
Axiom. (mul_SNo_assoc) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx * (y * z) = (x * y) * z
Beginning of Section Initial
L121
Variable Obj : setprop
L123
Variable Hom : setsetsetprop
L124
Variable id : setset
L125
Variable comp : setsetsetsetsetset
L126
Definition. We define initial_p to be λY h ⇒ Obj Y ∀X : set, Obj XHom Y X (h X) ∀h' : set, Hom Y X h'h' = h X of type set(setset)prop.
End of Section Initial
Primitive. The name pack_b is a term of type set(setsetset)set.
L137
Definition. We define struct_b to be λS ⇒ ∀q : setprop, (∀X : set, ∀F : setsetset, (∀x yX, F x y X)q (pack_b X F))q S of type setprop.
L139
Axiom. (pack_struct_b_I) We take the following as an axiom:
∀X, ∀F : setsetset, (∀x yX, F x y X)struct_b (pack_b X F)
Primitive. The name unpack_b_o is a term of type set(set(setsetset)prop)prop.
L144
Axiom. (unpack_b_o_eq) We take the following as an axiom:
∀Phi : set(setsetset)prop, ∀X, ∀F : setsetset, (∀F' : setsetset, (∀x yX, F x y = F' x y)Phi X F' = Phi X F)unpack_b_o (pack_b X F) Phi = Phi X F
Primitive. The name Hom_struct_b is a term of type setsetsetprop.
L153
Axiom. (Hom_struct_b_pack) We take the following as an axiom:
∀X Y, ∀opX opY : setsetset, ∀f, (Hom_struct_b (pack_b X opX) (pack_b Y opY) f) = (f YX (∀x yX, f (opX x y) = opY (f x) (f y)))
L159
Definition. We define struct_b_monoid to be λX ⇒ struct_b X unpack_b_o X (λX' op ⇒ (∀x y zX', op (op x y) z = op x (op y z)) (∃eX', ∀xX', op x e = x op e x = x)) of type setprop.
Primitive. The name MetaCat is a term of type (setprop)(setsetsetprop)(setset)(setsetsetsetsetset)prop.
L170
Axiom. (MetaCatSet_initial) We take the following as an axiom:
∃Y : set, ∃uniqa : setset, initial_p (λ_ ⇒ True) HomSet (λX ⇒ (λxXx)) (λX Y Z f g ⇒ (λxXf (g x))) Y uniqa
Primitive. The name MetaAdjunction_strict is a term of type (setprop)(setsetsetprop)(setset)(setsetsetsetsetset)(setprop)(setsetsetprop)(setset)(setsetsetsetsetset)(setset)(setsetsetset)(setset)(setsetsetset)(setset)(setset)prop.
L175
Axiom. (LeftAdjointsPreserveInitial) We take the following as an axiom:
∀Obj : setprop, ∀x1 : setsetsetprop, ∀Id : setset, ∀Comp : setsetsetsetsetset, ∀Obj' : setprop, ∀Hom' : setsetsetprop, ∀Id' : setset, ∀Comp' : setsetsetsetsetset, ∀F0 : setset, ∀F1 : setsetsetset, ∀G0 : setset, ∀G1 : setsetsetset, ∀eta eps : setset, MetaAdjunction_strict Obj x1 Id Comp Obj' Hom' Id' Comp' F0 F1 G0 G1 eta eps∀Init, ∀uniq : setset, initial_p Obj x1 Id Comp Init uniq∃uniq' : setset, initial_p Obj' Hom' Id' Comp' (F0 Init) uniq'
L195
Axiom. (struct_b_monoid_Phi) We take the following as an axiom:
∀X, ∀F : setsetset, (∀x yX, F x y X)∀F' : setsetset, (∀x yX, F x y = F' x y)((∀x y zX, F' (F' x y) z = F' x (F' y z)) (∃eX, ∀xX, F' x e = x F' e x = x)) = ((∀x y zX, F (F x y) z = F x (F y z)) (∃eX, ∀xX, F x e = x F e x = x))
L202
Proof:
Proof not loaded.
L334
Proposition. (MetaCat_struct_b_monoid_left_adjoint_forgetful_neg)
¬ ∃F0 : setset, ∃F1 : setsetsetset, ∃eta eps : setset, MetaAdjunction_strict (λ_ ⇒ True) HomSet (λX ⇒ (lam_id X)) (λX Y Z f g ⇒ (lam_comp X f g)) struct_b_monoid Hom_struct_b struct_id struct_comp F0 F1 (λX ⇒ X 0) (λX Y f ⇒ f) eta eps
Proof:
Proof not loaded.