module HoTT whereThe 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
_ = 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 - 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 
apis 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ā- Theorem 2.7.2: 
Ī£-pathpā - 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: 
univalenceua,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-contract
_ = Σ-contr-snd
_ = Σ-contr-fst- 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-contract - Lemma 3.11.9: 
Ī£-contr-snd,Ī£-contr-fst 
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-fst
_ = is-propāequivā„-ā„
_ = Listingā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-fst - 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-propThis 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-surjectiveis-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āæ-mapforn = 1 
6.3: The intervalš
_ = [0,1]
_ = I
_ = interval-contractibleThis 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- The pushout: 
Pushout - Definition 6.8.1: 
Cocone - Lemma 6.8.2: 
Pushout-is-universal-cocone - Observation: 
Suspāpushout 
6.9: Truncationsš
_ = ā„-ā„ā-elim- Lemma 6.9.1: 
ā„-ā„ā-elim 
6.10: Quotientsš
_ = Coeq
_ = _/_
_ = Coeq-univWe 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¹āInt
_ = ĻāS¹ā
ā¤
_ = ĻāāāS¹ā”0- Corollary 8.1.10: 
Ī©S¹āInt - 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
_ = suspend-is-n-connected
_ = freudenthal.code
_ = freudenthal-equivalence
_ = Sāæ-stability
_ = ĻāSāæāInt- Lemma 8.6.1: 
relative-n-type-const-plus - Lemma 8.6.2: 
Wedge.elim - Theorem 8.6.4: 
suspend-is-n-connected - Definition 8.6.5: 
freudenthal.code - Corollary 8.6.14: 
freudenthal-equivalence - Corollary 8.6.15: 
Sāæ-stability - Theorem 8.6.17: 
ĻāSāæāInt 
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-pathpandNat-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.pentagonforCat. - Lemma 9.2.11: See the definition of 
Prebicategory.triangleforCat. 
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ā©ļø