module HoTT where
The HoTT Book?š
While the 1Lab has not been consciously designed as a project to formalise the HoTT book, in the course of our explorations into formalised univalent mathematics, we have formalised a considerable subset of the first part, and most of chapter 9. The vast majority of the 1Lab is material that was not covered in the HoTT book.
Part 1: Foundationsš
Chapter 2: Homotopy type theoryš
2.1: Types are higher groupoidsš
_ = sym
_ = _ā_
_ = ā-idl
_ = ā-idr
_ = ā-invl
_ = ā-invr
_ = ā-assoc
_ = Ī©āæāŗĀ²-is-abelian-group
_ = Typeā
_ = Ī©āæ
- Lemma 2.1.1:
sym
- Lemma 2.1.2:
_ā_
- Lemma 2.1.4:
ā-idl
,ā-idr
ā-invl
,ā-invr
- Definitional in cubical type theory
ā-assoc
- Theorem 2.1.6:
Ī©āæāŗĀ²-is-abelian-group
- Definition 2.1.7:
Typeā
- Definition 2.1.8:
Ī©āæ
2.2: Functions are functorsš
_ = ap
_ = ap-ā
- Lemma 2.2.1:
ap
- Lemma 2.2.2:
ap-ā
- Definitional in cubical type theory
- Definitional in cubical type theory
- Definitional in cubical type theory
2.3: Type families are fibrationsš
_ = subst
_ = Ī£-pathp
_ = transport-refl
_ = subst-ā
- Lemma 2.3.1:
subst
- Lemma 2.3.2:
Ī£-pathp
- Lemma 2.3.4: Our
ap
is dependent by nature. - Lemma 2.3.5:
transport-refl
- Lemma 2.3.9:
subst-ā
- Lemma 2.3.10: Definitional in cubical type theory
2.4: Homotopies and equivalencesš
_ = homotopy-natural
_ = homotopy-invert
_ = is-iso
_ = transportā»transport
_ = id-equiv
_ = Equiv.inverse
_ = _āe_
- Lemma 2.4.3:
homotopy-natural
- Lemma 2.4.4:
homotopy-invert
- Lemma 2.4.6:
is-iso
- Example 2.4.9:
transportā»transport
- Lemma 2.4.12:
id-equiv
,Equiv.inverse
,_āe_
2.7: Cartesian product typesš
_ = Ī£-pathp-iso
- Theorem 2.7.2:
Ī£-pathp-iso
- Theorem 2.7.3: Agda has definitional Ī· equality for records.
2.9: Ī -types and function extensionalityš
_ = funext
_ = funext-dep
- Theorem 2.9.3:
funext
(no longer an axiom) - Lemma 2.9.6:
funext-dep
(no longer an axiom)
2.10: Universes and univalenceš
_ = pathāequiv
_ = univalence
_ = ua
_ = uaĪ²
_ = ua-id-equiv
_ = uaā
_ = sym-ua
- Lemma 2.10.1:
pathāequiv
- Theorem 2.10.3:
univalence
ua
,uaĪ²
ua-id-equiv
,uaā
,sym-ua
2.11: Identity typeš
_ = is-equivāis-embedding
_ = subst-path-left
_ = subst-path-right
_ = transport-path
_ = commutesāsquare
- Theorem 2.11.1:
is-equivāis-embedding
- Lemma 2.11.2:
subst-path-left
,subst-path-right
,transport-path
- Theorem 2.11.5:
commutesāsquare
2.12: Coproductsš
_ = āPath.CodeāPath
- Theorem 2.12.5:
āPath.CodeāPath
Exercisesš
_ = Ī£-assoc
- Exercise 2.10:
Ī£-assoc
Chapter 3: Sets and Logicš
3.1: Sets and n-typesš
_ = is-set
_ = Nat-is-set
_ = Ć-is-hlevel
_ = Ī -is-hlevel
_ = is-groupoid
_ = is-hlevel-suc
- Definition 3.1.1:
is-set
- Example 3.1.2: Definitional in cubical type theory.
- Example 3.1.4:
Nat-is-set
- Example 3.1.5:
Ć-is-hlevel
(special case) - Example 3.1.6:
Ī -is-hlevel
(special case)
- Definition 3.1.7:
is-groupoid
- Lemma 3.1.8:
is-hlevel-suc
(special case)
3.2: Propositions as types?š
_ = Ā¬DNEā
_ = Ā¬LEMā
- Theorem 3.2.2:
Ā¬DNEā
- Corollary 3.2.7:
Ā¬LEMā
3.3: Mere propositionsš
_ = is-prop
_ = prop-ext
_ = is-propāis-set
_ = is-prop-is-prop
_ = is-hlevel-is-prop
- Definition 3.3.1:
is-prop
- Lemma 3.3.3:
prop-ext
- Lemma 3.3.4:
is-propāis-set
- Lemma 3.3.5:
is-prop-is-prop
,is-hlevel-is-prop
3.4: Classical vs.Ā intuitionistic logicš
_ = LEM
_ = DNE
_ = Dec
_ = Discrete
- Definition 3.4.1:
LEM
- Definition 3.4.2:
DNE
- Definition 3.4.3:
Dec
Discrete
3.5: Subsets and propositional resizingš
_ = Ī£-prop-path
_ = Ī©
_ = ā”
- Lemma 3.5.1:
Ī£-prop-path
- Axiom 3.5.5:
Ī©
,ā”
.
3.7: Propositional truncationš
_ = ā„_ā„
_ = ā
The type itself is defined as a higher-inductive type ā„_ā„
. We also
define ā
as a shorthand for the
truncation of Ī£
.
3.8: The axiom of choiceš
_ = Axiom-of-choice
- Definition 3.8.3:
Axiom-of-choice
3.9: The principle of unique choiceš
_ = is-propāequivā„-ā„
_ = ā„-ā„-univ
_ = ā„-ā„-out
- Lemma 3.9.1:
is-propāequivā„-ā„
- Corollary 3.9.2: Implicit in e.g.Ā
ā„-ā„-univ
,ā„-ā„-out
3.11: Contractibilityš
_ = is-contr
_ = is-contr-is-prop
_ = retractāis-contr
_ = Singleton-is-contr
_ = Ī£-contract
_ = Ī£-contr-eqv
- Definition 3.11.1:
is-contr
- Definition 3.11.4:
is-contr-is-prop
- Definition 3.11.7:
retractāis-contr
- Definition 3.11.8:
Singleton-is-contr
- Lemma 3.11.9:
Ī£-contract
,Ī£-contr-eqv
Exercisesš
_ = equivāis-hlevel
_ = ā-is-hlevel
_ = Ī£-is-hlevel
_ = is-contr-if-inhabitedāis-prop
_ = is-propāāis-contr
_ = H-Level-Dec
_ = disjoint-ā-is-prop
_ = Ā¬global-choice
_ = ā„-ā„-elim
_ = LEMāDNE
_ = ā-well-ordered
_ = Ī£-contr-eqv
_ = is-propāequivā„-ā„
_ = Finite-choice
- Exercise 3.1:
equivāis-hlevel
- Exercise 3.2:
ā-is-hlevel
- Exercise 3.3:
Ī£-is-hlevel
- Exercise 3.5:
is-contr-if-inhabitedāis-prop
,is-propāāis-contr
- Exercise 3.6:
H-Level-Dec
- Exercise 3.7:
disjoint-ā-is-prop
- Exercise 3.11:
Ā¬global-choice
- Exercise 3.17:
ā„-ā„-elim
- Exercise 3.18:
LEMāDNE
- Exercise 3.19:
ā-well-ordered
- Exercise 3.20:
Ī£-contr-eqv
- Exercise 3.21:
is-propāequivā„-ā„
- Exercise 3.22:
Finite-choice
Chapter 4: Equivalencesš
4.2: Half adjoint equivalencesš
_ = is-half-adjoint-equiv
_ = is-isoāis-half-adjoint-equiv
_ = fibre
_ = fibre-paths
_ = is-half-adjoint-equivāis-equiv
_ = linv
_ = rinv
_ = is-equivāpre-is-equiv
_ = is-equivāpost-is-equiv
_ = is-isoāis-contr-linv
_ = is-isoāis-contr-rinv
- Definition 4.2.1:
is-half-adjoint-equiv
- Definition 4.2.3:
is-isoāis-half-adjoint-equiv
- Definition 4.2.4:
fibre
- Lemma 4.2.5:
fibre-paths
- Theorem 4.2.6:
is-half-adjoint-equivāis-equiv
- Definition 4.2.7:
linv
,rinv
- Lemma 4.2.8:
is-equivāpre-is-equiv
,is-equivāpost-is-equiv
- Lemma 4.2.9:
is-isoāis-contr-linv
,is-isoāis-contr-rinv
4.3: Bi-invertible mapsš
_ = is-biinv
_ = is-biinv-is-prop
- Definition 4.3.1:
is-biinv
- Theorem 4.3.2:
is-biinv-is-prop
4.4: Contractible fibresš
_ = is-equiv
_ = is-equivāis-half-adjoint-equiv
_ = is-equiv-is-prop
This is our ādefaultā definition of equivalence, but we generally use it through the interface of half-adjoint equivalences.
- Definition 4.4.1:
is-equiv
- Theorem 4.4.3:
is-equivāis-half-adjoint-equiv
- Lemma 4.4.4:
is-equiv-is-prop
4.6: Surjections and embeddingsš
_ = is-surjective
_ = is-embedding
_ = embeddingācancellable
_ = injective
_ = is-equivāis-surjective
_ = is-equivāis-embedding
_ = embedding-surjectiveāis-equiv
- Definition 4.6.1:
is-surjective
is-embedding
,embeddingācancellable
- Definition 4.6.2:
injective
- Theorem 4.6.3:
is-equivāis-surjective
,is-equivāis-embedding
,embedding-surjectiveāis-equiv
4.8: The object classifierš
_ = Fibre-equiv
_ = Total-equiv
_ = Map-classifier
- Lemma 4.8.1:
Fibre-equiv
- Lemma 4.8.2:
Total-equiv
- Theorem 4.8.3:
Map-classifier
Chapter 5: Inductionš
5.3: W-typesš
_ = W
- W-types:
W
5.4: Inductive types are initial algebrasš
_ = W-initial
- Theorem 5.4.7:
W-initial
5.5: Homotopy-inductive typesš
_ = initialāinduction.elim
- Theorem 5.5.5:
initialāinduction.elim
Chapter 6: Higher inductive typesš
6.2: Induction principles and dependent pathsš
_ = to-pathp
_ = from-pathp
_ = SĀ¹-rec
_ = Ī©āæāSāæ-map
- Remark 6.2.3:
to-pathp
,from-pathp
- Induction principle for : by pattern matching.
- Lemma 6.2.5:
SĀ¹-rec
- Lemma 6.2.9:
Ī©āæāSāæ-map
forn = 1
6.3: The intervalš
_ = [0,1]
_ = I
_ = interval-contractible
This is the higher inductive type [0,1]
, not the interval type I
.
- Lemma 6.3.1:
interval-contractible
6.4: Circles and spheresš
_ = reflā loop
_ = always-loop
_ = ap-square
- Lemma 6.4.1:
reflā loop
- Lemma 6.4.2:
always-loop
- Lemma 6.4.4:
ap-square
6.5: Suspensionsš
_ = Susp
_ = SuspSā°ā”SĀ¹
_ = Sāæā»Ā¹
_ = Ī£-mapāāmapā-Ī©
- The suspension:
Susp
- Lemma 6.5.1:
SuspSā°ā”SĀ¹
- Definition 6.5.2:
Sāæā»Ā¹
- Lemma 6.5.4:
Ī£-mapāāmapā-Ī©
6.6: Cell complexesš
_ = TĀ²
- The torus:
TĀ²
.
6.8: Pushoutsš
_ = Pushout
_ = Cocone
_ = Pushout-is-universal-cocone
_ = Suspā”Pushout-ā¤āAāā¤
- The pushout:
Pushout
- Definition 6.8.1:
Cocone
- Lemma 6.8.2:
Pushout-is-universal-cocone
- Observation:
Suspā”Pushout-ā¤āAāā¤
6.9: Truncationsš
_ = ā„-ā„ā-elim
- Lemma 6.9.1:
ā„-ā„ā-elim
6.10: Quotientsš
_ = Coeq
_ = _/_
_ = Coeq-univ
We define the quotient _/_
in terms of coequalisers Coeq
.
- Lemma 6.10.3:
Coeq-univ
.
6.11: Algebraš
_ = Monoid-on
_ = Group-on
_ = Ļāāā
_ = Monoid.Free-monoidā£Forget
_ = Group.make-free-group
- Definition 6.11.1:
Monoid-on
,Group-on
- Definition 6.11.4:
Ļāāā
- Lemma 6.11.5:
Monoid.Free-monoidā£Forget
- Lemma 6.11.6:
Group.make-free-group
Exercisesš
_ = TĀ²āSĀ¹ĆSĀ¹
- Exercise 6.3:
TĀ²āSĀ¹ĆSĀ¹
Chapter 7: Homotopy n-typesš
7.1: Definition of n-typesš
_ = is-hlevel
_ = retractāis-hlevel
_ = Ī -is-hlevel
_ = n-Type-is-hlevel
- Definition 7.1.1:
is-hlevel
- Theorem 7.1.4:
retractāis-hlevel
- Corollary 7.1.5:
equivāis-hlevel
- Theorem 7.1.7:
is-hlevel-suc
- Theorem 7.1.8:
Ī£-is-hlevel
- Theorem 7.1.9:
Ī -is-hlevel
- Theorem 7.1.10:
is-hlevel-is-prop
- Theorem 7.1.11:
n-Type-is-hlevel
7.2: Uniqueness of identity proofs and Hedbergās theoremš
_ = set-identity-system
_ = identity-systemāhlevel
_ = Discreteāis-set
_ = Discrete-Nat
_ = hubs-and-spokesāhlevel
_ = hlevelāhubs-and-spokes
- Theorem 7.2.2:
set-identity-system
,identity-systemāhlevel
- Theorem 7.2.5:
Discreteāis-set
- Theorem 7.2.6:
Discrete-Nat
- Theorem 7.2.7:
hubs-and-spokesāhlevel
,hlevelāhubs-and-spokes
7.3: Truncationsš
_ = n-Tr-is-hlevel
_ = n-Tr-elim
_ = n-Tr-path-equiv
- Lemma 7.3.1:
n-Tr-is-hlevel
- Lemma 7.3.2:
n-Tr-elim
- Theorem 7.3.12:
n-Tr-path-equiv
7.5: Connectednessš
_ = is-n-connected
_ = is-n-connected-Tr
_ = relative-n-type-const
_ = is-n-connectedān-type-const
_ = n-type-constāis-n-connected
_ = is-n-connected-point
_ = point-is-n-connected
- Definition 7.5.1:
is-n-connected
,is-n-connected-Tr
- Lemma 7.5.7:
relative-n-type-const
- Corollary 7.5.9:
is-n-connectedān-type-const
,n-type-constāis-n-connected
- Lemma 7.5.11:
is-n-connected-point
,point-is-n-connected
Exercisesš
_ = is-n-connectedāā„-ā„
- Exercise 7.6:
is-n-connectedāā„-ā„
Part 2: Mathematicsš
Chapter 8: Homotopy theoryš
The only non-trivial result worth mentioning from Chapter 8 is the fundamental group of the circle.
8.1: Ļā(SĀ¹)š
_ = SĀ¹Path.Cover
_ = SĀ¹Path.encode
_ = SĀ¹Path.decode
_ = SĀ¹Path.encode-decode
_ = SĀ¹Path.encode-loopāæ
_ = Ī©SĀ¹āintegers
_ = ĻāSĀ¹ā”ā¤
_ = ĻāāāSĀ¹ā”0
- Definition 8.1.1:
SĀ¹Path.Cover
- Definition 8.1.5:
SĀ¹Path.encode
- Definition 8.1.6:
SĀ¹Path.decode
- Lemma 8.1.7:
SĀ¹Path.encode-decode
- Lemma 8.1.8:
SĀ¹Path.encode-loopāæ
- Corollary 8.1.10:
Ī©SĀ¹āintegers
- Corollary 8.1.11:
ĻāSĀ¹ā”ā¤
,ĻāāāSĀ¹ā”0
8.2: Connectedness of suspensionsš
_ = Susp-is-connected
_ = Sāæā»Ā¹-is-connected
- Theorem 8.2.1:
Susp-is-connected
- Corollary 8.2.2:
Sāæā»Ā¹-is-connected
8.6: The Freudenthal suspension theoremš
_ = relative-n-type-const-plus
_ = Wedge.elim
- Lemma 8.6.1:
relative-n-type-const-plus
- Lemma 8.6.2:
Wedge.elim
Chapter 9: Category theoryš
Since a vast majority of the 1Labās mathematics consists of pure category theory, or mathematics done with a very categorical inclination, this is our most complete chapter.
9.1: Categories and Precategoriesš
_ = Precategory
_ = is-invertible
_ = _ā
_
_ = is-invertible-is-prop
_ = Cat[_,_]
_ = pathāiso
_ = is-category
_ = equiv-pathāidentity-system
_ = Univalent.Ob-is-groupoid
_ = Hom-transport
_ = pathāto-sym
_ = pathāto-ā
_ = Poset
_ = is-gaunt
_ = Disc
_ = Rel
_ = Sets
_ = Sets-is-category
- Definition 9.1.1:
Precategory
- Definition 9.1.2:
is-invertible
,_ā _
- Lemma 9.1.3:
is-invertible-is-prop
- Lemma 9.1.4:
pathāiso
- Example 9.1.5:
Sets
- Definition 9.1.61:
is-category
- Example 9.1.7:
Sets-is-category
- Lemma 9.1.8:
Univalent.Ob-is-groupoid
- Lemma 9.1.9:
Hom-transport
(9.1.10),pathāto-sym
(9.1.11),pathāto-ā
(9.1.12/9.1.13) - Example 9.1.14:
Poset
- Example 9.1.15:
is-gaunt
- Example 9.1.16:
Disc
- Example 9.1.19:
Rel
9.2: Functors and Transformationsš
_ = Functor
_ = _=>_
_ = Nat-is-set
_ = Functor-path
_ = invertibleāinvertibleāæ
_ = isoāæāiso
_ = Functor-is-category
_ = _Fā_
_ = _ā_
_ = _āø_
_ = Fā-assoc
_ = Prebicategory.pentagon
_ = Prebicategory.triangle
_ = Cat
- Definition 9.2.1:
Functor
- Definition 9.2.2:
_=>_
- The paragraph immediately after 9.2.2 is
Nat-pathp
andNat-is-set
- The one after that is
Functor-path
.
- The paragraph immediately after 9.2.2 is
- Definition 9.2.3:
Cat[_,_]
- Lemma 9.2.4: If:
invertibleāinvertibleāæ
; Only if:isoāæāiso
- Theorem 9.2.5:
Functor-is-category
- Theorem 9.2.6:
_Fā_
- Definition 9.2.7:
_ā_
,_āø_
- Lemma 9.2.9:
Fā-assoc
- Lemma 9.2.10: See the definition of
Prebicategory.pentagon
forCat
. - Lemma 9.2.11: See the definition of
Prebicategory.triangle
forCat
.
9.3: Adjunctionsš
_ = _ā£_
_ = is-left-adjoint-is-prop
- Lemma 9.3.1:
_ā£_
- Lemma 9.3.2:
is-left-adjoint-is-prop
9.4: Equivalencesš
_ = is-equivalence
_ = is-faithful
_ = is-full
_ = is-fully-faithful
_ = is-split-eso
_ = is-eso
_ = ff+split-esoāis-equivalence
_ = Essential-fibre-between-cats-is-prop
_ = ff+esoāis-equivalence
_ = is-precat-iso
_ = is-equivalenceāis-precat-iso
_ = is-precat-isoāis-equivalence
_ = Precategory-identity-system
_ = Category-identity-system
- Definition 9.4.1:
is-equivalence
- Definition 9.4.3:
is-faithful
,is-full
,is-fully-faithful
- Definition 9.4.4:
is-split-eso
- Lemma 9.4.5:
ff+split-esoāis-equivalence
- Definition 9.4.6:
is-eso
- Lemma 9.4.7:
Essential-fibre-between-cats-is-prop
,ff+esoāis-equivalence
- Definition 9.4.8:
is-precat-iso
- Lemma 9.4.14:
is-equivalenceāis-precat-iso
,is-precat-isoāis-equivalence
- Lemma 9.4.15:
Precategory-identity-system
- Theorem 9.4.16:
Category-identity-system
9.5: The Yoneda lemmaš
_ = _^op
_ = _Ćį¶_
_ = Curry
_ = Uncurry
_ = Hom[-,-]
_ = ć
_ = ć-is-fully-faithful
_ = Representation
_ = Representation-is-prop
_ = hom-isoāadjoints
- Definition 9.5.1:
_^op
- Definition 9.5.2:
_Ćį¶_
- Lemma 9.5.3:
Curry
,Uncurry
- The
Hom[-,-]
- The Yoneda embedding:
ć
- The
- Corollary 9.5.6:
ć-is-fully-faithful
- Corollary 9.5.7: As a corollary of
Representation-is-prop
- Definition 9.5.8:
Representation
- Theorem 9.5.9:
Representation-is-prop
- Lemma 9.5.10: Adjoints in terms of representability
9.6: Strict categoriesš
This chapter is mostly text.
- Definition 9.6.1: Strict precategories
9.7: Dagger categoriesš
We do not have a type of dagger-categories, but note that we do have the closely-related notion of allegory.
9.8: The structure identity principleš
_ = Structured-objects-is-category
_ = is-category-total
_ = Thin-structure-over
_ = Displayed
- Definition 9.8.1:
Thin-structure-over
, generalised intoDisplayed
- Theorem 9.8.2:
Structured-objects-is-category
, generalised intois-category-total
9.9: The Rezk completionš
_ = Rezk-completion-is-category
_ = weak-equivāpre-equiv
_ = weak-equivāpre-iso
_ = is-esoāprecompose-is-faithful
_ = eso-fullāpre-ff
_ = Rezk-completion
_ = complete-is-eso
_ = complete-is-ff
_ = complete
- Lemma 9.9.1:
is-esoāprecompose-is-faithful
- Lemma 9.9.2:
eso-fullāpre-ff
- Lemma 9.9.4:
weak-equivāpre-equiv
,weak-equivāpre-iso
- Theorem 9.9.5:
Rezk-completion
,Rezk-completion-is-category
,complete
,complete-is-ff
,complete-is-eso
.
Exercisesš
_ = is-equivalence.Fā»Ā¹ā£F
_ = Total-space-is-eso
_ = slice-is-category
_ = Total-space-is-ff
_ = Prebicategory
_ = Total-space
_ = Slice
- Exercise 9.1:
Slice
,slice-is-category
- Exercise 9.2:
Total-space
,Total-space-is-ff
,Total-space-is-eso
- Exercise 9.3:
is-equivalence.Fā»Ā¹ā£F
- Exercise 9.4:
Prebicategory
Chapter 10: Set theoryš
10.1: The category of setsš
_ = Sets-is-complete
_ = Sets-is-cocomplete
_ = Sets-regular
_ = surjectiveāregular-epi
_ = epiāsurjective
_ = Sets-effective-congruences
_ = Congruence.is-effective
_ = Susp-prop-is-set
_ = Susp-prop-path
_ = ACāLEM
- 10.1.1 Limits and colimits:
Sets-is-complete
,Sets-is-cocomplete
- Theorem 10.1.5:
Sets-regular
,surjectiveāregular-epi
,epiāsurjective
- 10.1.3 Quotients:
Sets-effective-congruences
- Lemma 10.1.8:
Congruence.is-effective
- Lemma 10.1.13:
Susp-prop-is-set
,Susp-prop-path
- Theorem 10.1.14:
ACāLEM
10.5: The cumulative hierarchyš
_ = V
_ = presentation
_ = Presentation.members
_ = extensionality
_ = empty-set
_ = pairing
_ = zeroāā
_ = sucāā
_ = union
_ = ā-induction
_ = replacement
_ = separation
- Definition 10.5.1:
V
- Lemma 10.5.6:
presentation
- Definition 10.5.7:
Presentation.members
- Theorem 10.5.8:
extensionality
empty-set
pairing
zeroāā
,sucāā
union
ā-induction
replacement
separation
We use a slightly different definition of univalence for categories. It is shown equivalent to the usual formulation by
equiv-pathāidentity-system
ā©ļø