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
L16
Definition. We define iff to be λA B : prop(AB) (BA) of type proppropprop.
Notation. We use as an infix operator with priority 805 and no associativity corresponding to applying term iff.
Beginning of Section Eq
L23
Variable A : SType
L24
Definition. We define eq to be λx y : A∀Q : AAprop, Q x yQ y x 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.
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
Notation. We use x...y [possibly with ascriptions] , B as a binder notation corresponding to a term constructed using 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.
Primitive. The name Empty is a term of type set.
Primitive. The name lam is a term of type set(setset)set.
L40
Definition. We define lam_id to be λX ⇒ lam X (λx ⇒ x) of type setset.
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.
L46
Definition. We define lam_comp to be λX g f ⇒ lam X (λx : setg (f x)) of type setsetsetset.
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.
L55
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.
L60
Definition. We define HomSet to be λX Y f ⇒ f YX of type setsetsetprop.
L62
Axiom. (lam_id_exp_In) We take the following as an axiom:
∀X, lam_id X XX
L64
Axiom. (lam_comp_id_R) We take the following as an axiom:
∀X Y f, f YXlam_comp X f (lam_id X) = f
L65
Axiom. (lam_comp_id_L) We take the following as an axiom:
∀X Y f, f YXlam_comp X (lam_id Y) f = f
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.
L70
Definition. We define struct_id to be λA : setlam_id (A 0) of type setset.
L72
Definition. We define struct_comp to be λA B C : setlam_comp (A 0) of type setsetsetsetsetset.
Primitive. The name pack_r is a term of type set(setsetprop)set.
L78
Definition. We define struct_r to be λS ⇒ ∀q : setprop, (∀X : set, ∀R : setsetprop, q (pack_r X R))q S of type setprop.
L83
Axiom. (pack_r_0_eq2) We take the following as an axiom:
∀X, ∀R : setsetprop, X = pack_r X R 0
Primitive. The name BinRelnHom is a term of type setsetsetprop.
L88
Axiom. (BinRelnHom_eq) We take the following as an axiom:
∀X Y, ∀R Q : setsetprop, ∀h, BinRelnHom (pack_r X R) (pack_r Y Q) h = (h YX ∀x yX, R x yQ (h x) (h y))
Primitive. The name IrrPartOrd is a term of type setprop.
L94
Axiom. (IrrPartOrd_I) We take the following as an axiom:
∀X, ∀R : setsetprop, (∀xX, ¬ R x x)(∀x y zX, R x yR y zR x z)IrrPartOrd (pack_r X R)
L99
Axiom. (IrrPartOrd_E) We take the following as an axiom:
∀A, IrrPartOrd A∀q : setprop, (∀X, ∀R : setsetprop, (∀xX, ¬ R x x)(∀x y zX, R x yR y zR x z)q (pack_r X R))q A
Primitive. The name MetaCat is a term of type (setprop)(setsetsetprop)(setset)(setsetsetsetsetset)prop.
L111
Axiom. (MetaCat_Set) We take the following as an axiom:
MetaCat (λ_ ⇒ True) HomSet lam_id (λX _ _ ⇒ lam_comp X)
L113
Axiom. (MetaCat_IrrPartOrd) We take the following as an axiom:
Primitive. The name MetaFunctor is a term of type (setprop)(setsetsetprop)(setset)(setsetsetsetsetset)(setprop)(setsetsetprop)(setset)(setsetsetsetsetset)(setset)(setsetsetset)prop.
L118
Axiom. (MetaFunctor_I) We take the following as an axiom:
∀C0 : setprop, ∀C1 : setsetsetprop, ∀idC : setset, ∀compC : setsetsetsetsetset, ∀D0 : setprop, ∀D1 : setsetsetprop, ∀idD : setset, ∀compD : setsetsetsetsetset, ∀F0 : setset, ∀F1 : setsetsetset, (∀X, C0 XD0 (F0 X))(∀X Y f, C0 XC0 YC1 X Y fD1 (F0 X) (F0 Y) (F1 X Y f))(∀X, C0 XF1 X X (idC X) = idD (F0 X))(∀X Y Z f g, C0 XC0 YC0 ZC1 X Y fC1 Y Z gF1 X Z (compC X Y Z g f) = compD (F0 X) (F0 Y) (F0 Z) (F1 Y Z g) (F1 X Y f))MetaFunctor C0 C1 idC compC D0 D1 idD compD F0 F1
L131
Axiom. (MetaFunctor_IrrPartOrd_forgetful) We take the following as an axiom:
MetaFunctor IrrPartOrd BinRelnHom struct_id struct_comp (λ_ ⇒ True) HomSet lam_id (λX _ _ ⇒ lam_comp X) (λA ⇒ ap A 0) (λX Y f ⇒ f)
Primitive. The name MetaFunctor_strict is a term of type (setprop)(setsetsetprop)(setset)(setsetsetsetsetset)(setprop)(setsetsetprop)(setset)(setsetsetsetsetset)(setset)(setsetsetset)prop.
L136
Axiom. (MetaFunctor_strict_I) We take the following as an axiom:
∀C0 : setprop, ∀C1 : setsetsetprop, ∀idC : setset, ∀compC : setsetsetsetsetset, ∀D0 : setprop, ∀D1 : setsetsetprop, ∀idD : setset, ∀compD : setsetsetsetsetset, ∀F0 : setset, ∀F1 : setsetsetset, MetaCat C0 C1 idC compCMetaCat D0 D1 idD compDMetaFunctor C0 C1 idC compC D0 D1 idD compD F0 F1MetaFunctor_strict C0 C1 idC compC D0 D1 idD compD F0 F1
Primitive. The name MetaNatTrans is a term of type (setprop)(setsetsetprop)(setset)(setsetsetsetsetset)(setprop)(setsetsetprop)(setset)(setsetsetsetsetset)(setset)(setsetsetset)(setset)(setsetsetset)(setset)prop.
L150
Axiom. (MetaNatTrans_I) We take the following as an axiom:
∀C0 : setprop, ∀C1 : setsetsetprop, ∀idC : setset, ∀compC : setsetsetsetsetset, ∀D0 : setprop, ∀D1 : setsetsetprop, ∀idD : setset, ∀compD : setsetsetsetsetset, ∀F0 : setset, ∀F1 : setsetsetset, ∀G0 : setset, ∀G1 : setsetsetset, ∀eta : setset, (∀X, C0 XD1 (F0 X) (G0 X) (eta X))(∀X Y f, C0 XC0 YC1 X Y fcompD (F0 X) (G0 X) (G0 Y) (G1 X Y f) (eta X) = compD (F0 X) (F0 Y) (G0 Y) (eta Y) (F1 X Y f))MetaNatTrans C0 C1 idC compC D0 D1 idD compD F0 F1 G0 G1 eta
Primitive. The name MetaAdjunction is a term of type (setprop)(setsetsetprop)(setset)(setsetsetsetsetset)(setprop)(setsetsetprop)(setset)(setsetsetsetsetset)(setset)(setsetsetset)(setset)(setsetsetset)(setset)(setset)prop.
L166
Axiom. (MetaAdjunction_I) We take the following as an axiom:
∀C0 : setprop, ∀C1 : setsetsetprop, ∀idC : setset, ∀compC : setsetsetsetsetset, ∀D0 : setprop, ∀D1 : setsetsetprop, ∀idD : setset, ∀compD : setsetsetsetsetset, ∀F0 : setset, ∀F1 : setsetsetset, ∀G0 : setset, ∀G1 : setsetsetset, ∀eta eps : setset, (∀X, C0 XcompD (F0 X) (F0 (G0 (F0 X))) (F0 X) (eps (F0 X)) (F1 X (G0 (F0 X)) (eta X)) = idD (F0 X))(∀Y, D0 YcompC (G0 Y) (G0 (F0 (G0 Y))) (G0 Y) (G1 (F0 (G0 Y)) Y (eps Y)) (eta (G0 Y)) = idC (G0 Y))MetaAdjunction C0 C1 idC compC D0 D1 idD compD F0 F1 G0 G1 eta eps
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.
L181
Axiom. (MetaAdjunction_strict_I) We take the following as an axiom:
∀C0 : setprop, ∀C1 : setsetsetprop, ∀idC : setset, ∀compC : setsetsetsetsetset, ∀D0 : setprop, ∀D1 : setsetsetprop, ∀idD : setset, ∀compD : setsetsetsetsetset, ∀F0 : setset, ∀F1 : setsetsetset, ∀G0 : setset, ∀G1 : setsetsetset, ∀eta eps : setset, MetaFunctor_strict C0 C1 idC compC D0 D1 idD compD F0 F1MetaFunctor D0 D1 idD compD C0 C1 idC compC G0 G1MetaNatTrans C0 C1 idC compC C0 C1 idC compC (λX : setX) (λX Y f : setf) (λX : setG0 (F0 X)) (λX Y f : setG1 (F0 X) (F0 Y) (F1 X Y f)) etaMetaNatTrans D0 D1 idD compD D0 D1 idD compD (λA : setF0 (G0 A)) (λA B h : setF1 (G0 A) (G0 B) (G1 A B h)) (λA : setA) (λA B h : seth) epsMetaAdjunction C0 C1 idC compC D0 D1 idD compD F0 F1 G0 G1 eta epsMetaAdjunction_strict C0 C1 idC compC D0 D1 idD compD F0 F1 G0 G1 eta eps
L196
Theorem. (MetaCat_struct_r_partialord_left_adjoint_forgetful)
∃F0 : setset, ∃F1 : setsetsetset, ∃eta : setset, ∃eps : setset, MetaAdjunction_strict (λX : setTrue) HomSet lam_id (λX Y Z : setlam_comp X) IrrPartOrd BinRelnHom struct_id struct_comp F0 F1 (λA : setA 0) (λA B f : setf) eta eps
Proof:
Proof not loaded.