Skip to content

Commit 94427e8

Browse files
committed
wip topos
1 parent b0a7d80 commit 94427e8

1 file changed

Lines changed: 22 additions & 4 deletions

File tree

library/mathematics/categories/topos.anders

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,14 +128,32 @@ def SetCurry (A B X: SET) (f: (SetProd X A).1 -> B.1) : isContr (Sigma (X.1 -> (
128128
def SetCCC : isCCC1 Set
129129
:= (SetProd, SetP1, SetP2, SetUniv, SetExp, SetApply, SetCurry, SetTerminal)
130130

131-
axiom SetOmega : SET
132-
axiom SetTrue : SetTerminal.1.1 -> SetOmega.1
133-
axiom SetXi : Π (Y X: SET), (Y.1 -> X.1) -> (X.1 -> SetOmega.1)
131+
-- | Subobject Classifier for the Set Topos.
132+
133+
axiom SetOmegaSet : isSet (Sigma U (λ (A: U), isProp A))
134+
def SetOmega : SET := (Sigma U (λ (A: U), isProp A), SetOmegaSet)
135+
136+
def SetTrue : SetTerminal.1.1 -> SetOmega.1 := λ (x: SetTerminal.1.1), (𝟏, isContrProp 𝟏 (★, 𝟏-contr))
137+
138+
def SetXi (Y X: SET) (j: Y.1 -> X.1) : X.1 -> SetOmega.1 :=
139+
λ (x: X.1), (Π (P: U), isProp P -> (fiber Y.1 X.1 j x -> P) -> P,
140+
propPi U (λ (P: U), isProp P -> (fiber Y.1 X.1 j x -> P) -> P)
141+
(λ (P: U), propPi (isProp P) (λ (_: isProp P), (fiber Y.1 X.1 j x -> P) -> P)
142+
(λ (hP: isProp P), propPi (fiber Y.1 X.1 j x -> P) (λ (_: fiber Y.1 X.1 j x -> P), P)
143+
(λ (hF: fiber Y.1 X.1 j x -> P), hP))))
144+
145+
def mono-to-prop (Y X: SET) (j: Y.1 -> X.1) (m: mono1 Set Y X j) (x: X.1) : isProp (fiber Y.1 X.1 j x) :=
146+
λ (f1 f2: fiber Y.1 X.1 j x),
147+
<i> ( (m (𝟏, SetIsSet1) (λ (z: 𝟏), f1.1) (λ (z: 𝟏), f2.1) (<i> λ (z: 𝟏), comp-Path X.1 (j f1.1) x (j f2.1) (inv X.1 x (j f1.1) f1.2) f2.2 @ i) @ i) ★,
148+
lemPropF Y.1 (λ (y: Y.1), Path X.1 x (j y)) (λ (y: Y.1), X.2 x (j y)) f1.1 f2.1
149+
(<i> (m (𝟏, SetIsSet1) (λ (z: 𝟏), f1.1) (λ (z: 𝟏), f2.1) (<i> λ (z: 𝟏), comp-Path X.1 (j f1.1) x (j f2.1) (inv X.1 x (j f1.1) f1.2) f2.2 @ i) @ i) ★)
150+
f1.2 f2.2 @ i )
151+
134152
axiom SetSquare (Y X: SET) (j: Y.1 -> X.1) (m: mono1 Set Y X j) : hasPullbackLarge Set (SetOmega, (SetTerminal.1, λ (x: 𝟏), SetTrue x), (X, SetXi Y X j))
135153
axiom SetUniq (Y X: SET) (j: Y.1 -> X.1) (k: X.1 -> SetOmega.1) (m: mono1 Set Y X j) (p: hasPullbackLarge Set (SetOmega, (SetTerminal.1, λ (x: 𝟏), SetTrue x), (X, k))) : Path (X.1 -> SetOmega.1) (SetXi Y X j) k
136154

137155
def SetSubobject : subobjectClassifier1 Set :=
138-
(SetOmega, SetTerminal, (λ (x: 𝟏), SetTrue x), (λ (Y X: SET) (j: Y.1 -> X.1), SetXi Y X j), SetSquare, SetUniq)
156+
(SetOmega, SetTerminal, (λ (x: 𝟏), SetTrue x), SetXi, SetSquare, SetUniq)
139157

140158
def Topos1 (cat: precategory1) : U₁ := Σ (ccc: isCCC1 cat), subobjectClassifier1 cat
141159
def internal : Topos1 Set := (SetCCC, SetSubobject)

0 commit comments

Comments
 (0)