-
Notifications
You must be signed in to change notification settings - Fork 42
/
index.lagda
187 lines (154 loc) · 7.17 KB
/
index.lagda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
TypeTopology
Various new theorems in univalent mathematics written in Agda
-------------------------------------------------------------
Martin Escardo and collaborators,
2010--2024--∞, continuously evolving.
https://www.cs.bham.ac.uk/~mhe/
https://github.com/martinescardo/TypeTopology
Tested with Agda 2.7.0.1. (It may still work with Agda 2.6.4.3.)
* Our main use of this development is as a personal blackboard or
notepad for our research and that of collaborators. In
particular, some modules have better and better results or
approaches, as time progresses, with the significant steps kept,
and with failed ideas and calculations eventually erased.
* We offer this page as a preliminary announcement of results to be
submitted for publication, of the kind we would get when we visit
a mathematician's office.
* We have also used this development for learning other people's
results, and so some previously known constructions and theorems
are included (sometimes with embellishments).
* The required material on HoTT/UF has been developed on demand
over the years to fulfill the needs of the above as they arise,
and hence is somewhat chaotic. It will continue to expand as the
need arises. Its form is the result of evolution rather than
intelligent design (paraphrasing Linus Torvalds).
Our lecture notes develop HoTT/UF in Agda in a more principled
way, and offers better approaches to some constructions and
simpler proofs of some (previously) difficult theorems.
(https://www.cs.bham.ac.uk/~mhe/HoTT-UF-in-Agda-Lecture-Notes/)
Our philosophy, here and in the lecture notes, is to work with a
minimal Martin-Löf type theory, and use principles from HoTT/UF
(existence of propositional truncations, function extensionality,
propositional extensionality, univalence, propositional resizing)
and classical mathematics (excluded middle, choice, LPO, WLPO) as
explicit assumptions for the theorems, or for the modules, that
require them. As a consequence, we are able to tell very
precisely which assumptions of HoTT/UF and classical mathematics,
if any, we have used for each construction, theorem or set of
results. We also work, deliberately, with a minimal subset of
Agda. See below for more about the philosophy.
* There is also a module that links some "unsafe" modules that use
type theory beyond MLTT and HoTT/UF, which cannot be included in
this safe-modules index: The system with type-in-type is
inconsistent (as is well known), countable Tychonoff, and
compactness of the Cantor type using countable Tychonoff.
(https://www.cs.bham.ac.uk/~mhe/TypeTopology/AllModulesIndex.html)
* In our last count, on 2024.10.15, this development has 793 Agda
files with 228K lines of code, including comments and blank
lines.
Philosophy of the repository
----------------------------
* We adopt the univalent point of view, even in modules which don't
assume the univalence axiom. In particular, we take seriously the
distinction between types that are singletons (contractible),
propositions, sets, 1-groupoids etc., even when the univalence
axiom, or its typical consequences such as function
extensionality and propositional extensionality, are not needed
to reason about them.
* We work in a minimal version of intensional Martin Löf Type
Theory, with very few exceptions, which we refer to as Spartan
MLTT. This is compatible with the UniMath approach.
* We adopt the Agda flag exact-split, so that Agda definitions by
pattern matching are definitional equalities, to stay as close as
Agda can check to the above MLTT.
* We work in a minimal subset of Agda to implement Spartan MLTT and
work with it. In particular, we restrict ourselves to safe
features (with the flags --safe --no-sized-types --no-guardedness).
* Some functions, and theorems, and definitions need HoTT/UF
axioms. They are always given explicitly as
assumptions. Postulates are not allowed in this development.
* The development is mostly constructive. A few theorems have
non-constructive, explicit assumptions, such as excluded middle,
or choice and global choice. One example is
Cantor-Schröder-Bernstein for arbitrary (homotopy) types, which
was published in the Journal of Homotopy and Related Structures
(written in mathematical vernacular as advanced in the HoTT book
and originally proposed by Peter Aczel).
* We don't assume propositional resizing as Voevodsky and UniMath
do. But there are some theorems whose hypotheses or conclusions
involve propositional resizing (as an axiom, rather than as a
rule of the type theory as unimath does).
* The general idea is that any theorem here should be valid in any
∞-topos.
* In particular, we don't use Cubical Agda features, deliberately,
because at present it is not known whether (some) cubical type
theory has an interpretation in any ∞ topos.
* However, by fulfilling the HoTT hypotheses with Cubical-Agda
implementations, we should be able to run the constructions and
proofs given here, so that we get constructivity in the
computational sense (as opposed to constructivity in the sense of
validity in any (∞-)topos).
* Although our philosophy is based on HoTT/UF and ∞-toposes, it
should be emphasized that much of what we do here also holds in
the setoid model. In particular, this model validates function
extensionality, the existence of propositional truncationsm and
the existence of quotients, and some higher inductive types.
Click at the imported module names to navigate to them:
\begin{code}
{-# OPTIONS --safe --without-K #-}
module index where
import Apartness.index
import BinarySystems.index
import CantorSchroederBernstein.index
import Cardinals.index
import Categories.index
import Circle.index
import CoNaturals.index
import ContinuityAxiom.index
import Coslice.index
import CrossedModules.index
import DedekindReals.index
import DiscreteGraphicMonoids.index
import DomainTheory.index
import Dominance.index
import Duploids.index
import Dyadics.index
import DyadicsInductive.index
import EffectfulForcing.index
import Factorial.index
import Field.index
import Fin.index
import Games.index
import Groups.index
import InjectiveTypes.index
import Integers.index
import Iterative.index
import Lifting.index
import Locales.index
import MGS.index
import MLTT.index
import MetricSpaces.index
import Modal.index
import Naturals.index
import Notation.index
import NotionsOfDecidability.index
import OrderedTypes.index
import Ordinals.index
import PCF.index
import PathSequences.index
import Quotient.index
import Rationals.index
import Relations.index
import Slice.index
import TWA.index
import Taboos.index
import TypeTopology.index
import UF.index
import Various.index
import W.index
import WildCategories.index
import gist.index
\end{code}
TODO. Explain what each of the above does here.
The above includes only the --safe modules. A list of all modules is here:
https://www.cs.bham.ac.uk/~mhe/TypeTopology/AllModulesIndex.html