Various new theorems in univalent mathematics written in Agda
   -------------------------------------------------------------

   Martin Escardo and collaborators,
   2010--2023--∞, continuously evolving.
   https://www.cs.bham.ac.uk/~mhe/
   https://github.com/martinescardo/TypeTopology

   Tested with Agda 2.6.3

   The main new results are about compact types, totally separated
   types, compact ordinals and injective types, but there are many
   other things (see the clickable index below).

   * Our main use of this development is as a personal blackboard or
     notepad for our research. 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 fullfil 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/Unsafe.index.html)

   * In our last count, on 18th May 2023, this development has 153k
     lines, including comments and blank lines. But we don't update
     the count frequently.

   * A module dependency graph is available, updated manually from
     time to time last tine on 19th December 2022:
     https://www.cs.bham.ac.uk/~mhe/TypeTopology/dependency-graph.pdf

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 flag --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.

   * Howover, 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).

Click at the imported module names to navigate to them:

\begin{code}

{-# OPTIONS --without-K --exact-split --safe --no-sized-types --no-guardedness --auto-inline #-}

module index where

import BinarySystems.index
import CantorSchroederBernstein.index
import Categories.index               -- by Jon Sterling
import Circle.index                   -- by Tom de Jong
import CoNaturals.index
import ContinuityAxiom.index          -- by Martin Escardo and Chuangjie Xu
import CrossedModules.index           -- by Ettore Aldrovandi and Keri D'Angelo
import DedekindReals.index            -- by Andrew Sneap
import DomainTheory.index             -- by Tom de Jong
import Dominance.index
import Duploids.index                 -- by Jon Sterling
import Dyadics.index                  -- by Andrew Sneap
import DyadicsInductive.index         -- by Tom de Jong
import EffectfulForcing.index
import Factorial.index
import Field.index                    -- by Andrew Sneap
import Fin.index
import Games.index                    -- by Martin Escardo and Paulo Oliva
import Groups.index                   -- originally by Martin Escardo with many additions
                                      -- by Ettore Aldrovandi and Keri D'Angelo
import InjectiveTypes.index
import Integers.index                 -- by Andrew Sneap
import Lifting.index
import Locales.index                  -- by Ayberk Tosun
import MGS.index                      -- Modular version of https://github.com/martinescardo/HoTT-UF-Agda-Lecture-Notes
import MLTT.index
import MetricSpaces.index             -- by Andrew Sneap
import Modal.index                    -- by Jon Sterling
import Naturals.index
import Notation.index
import NotionsOfDecidability.index    -- by Tom de Jong and Martin Escardo
import Ordinals.index
import PCF.index                      -- by Tom de Jong and Brendan Hart
import Posets.index                   -- by Tom de Jong and Martin Escardo
import Rationals.index                -- by Andrew Sneap
import Slice.index
import TWA.index                      -- by Todd Waugh Ambridge
import Taboos.index
import TypeTopology.index
import UF.index
import Various.index

\end{code}

The above includes only the --safe modules. A list of all modules is here:

https://www.cs.bham.ac.uk/~mhe/TypeTopology/AllModulesIndex.html