This is the Agda implementation of the thesis A CONTINUOUS COMPUTATIONAL INTERPRETATION OF TYPE THEORIES by Chuangjie XU It type checks and runs with Agda 2.4.2 and is available for downloading at http://cj-xu.github.io/ContinuityType/xu-thesis-agda.zip To navigate this set of files, click at module names, keywords or symbols. \begin{code} module index where \end{code} Chapter 2 investigates the Curry-Howard formulations of the two fundamental continuity principles, (Cont) and (UC). The latter, which is the one that we are working with in this thesis, is logically equivalent to the logical formulation. For this, we need to extend the type theory with propositional truncation and the axiom of function extensionality. \begin{code} -- § 2.3 The Curry-Howard interpretation of (UC) import Continuity.EquivalentFormulationsOfUC \end{code} Chapter 3 develops a variation of the topological topos, consisting of sheaves on a certain uniform-continuity site. In particular, C-spaces, corresponding to concrete sheaves, form a (locally) cartesian closed category with a natural numbers object. Moreover, there is a fan functional, in the category of C-spaces, that continuously calculates least moduli of uniform continuity of maps ₂ℕ → ℕ. \begin{code} -- § 3.2.1 The uniform-continuity site import UsingFunext.Space.Coverage -- § 3.3.1 Concrete sheaves as a variation of quasi-topological spaces import UsingFunext.Space.Space -- § 3.3.2 The (local) cartesian closed structure of C-Space import UsingFunext.Space.CartesianClosedness import UsingFunext.Space.Coproduct import UsingFunext.Space.LocalCartesianClosedness -- § 3.3.3 Discrete C-spaces and natural numbers object import UsingFunext.Space.DiscreteSpace -- § 3.4 The representable sheaf is the Cantor space import UsingFunext.Space.YonedaLemma -- § 3.5 The fan functional in the category of C-spaces import UsingFunext.Space.Fan \end{code} Chapter 4 shows how the Kleene-Kreisel continuous functionals can be calculated within C-spaces. When assuming the Brouwerian axiom that all set-theoretic functions ₂ℕ → ℕ are uniformly continuous, the full type hierarchy is equivalent to the Kleene--Kreisel continuous hierarchy within C-spaces. \begin{code} -- § 4.3 The Kleene-Kreisel and full-type hierarchies import UsingFunext.Space.IndiscreteSpace import UsingFunext.ModellingUC.Hierarchy \end{code} Chapter 5 employs C-spaces to model Gödel's system T with a skolemization of (UC), and to realizes (UC) in the intuitionistic arithmetic HAω of finite types, with the aid of the fan functional. \begin{code} -- § 5.1 A continuous model of Gödel's System T import UsingFunext.ModellingUC.TdefinableFunctionsAreUC import UsingFunext.ModellingUC.UCinT -- § 5.2 A continuous realizability semantics of HAω import UsingFunext.ModellingUC.UCinHAo \end{code} Chapter 6 validates the Curry-Howard interpretation of (UC) in the locally cartesian closed category of C-spaces using the fan functional, and demonstrates how C-spaces and sheaves form models of dependent types, without the coherence problem, via the notion of category with families (CwF). \begin{code} -- § 6.2 Modelling UC via the LCCC of C-spaces import UsingFunext.ModellingUC.ValidatingUCviaLCCC -- § 6.3 Categories with families import CwF.Sets.Base import CwF.Sets.TypesAndTerms import CwF.Sets.ContextComprehension import CwF.Sets.SigmaType import CwF.Sets.PiType import CwF.Sets.IdentityType -- § 6.4 A continuous model of dependent types import CwF.Space.Base import CwF.Space.TypesAndTerms import CwF.Space.ContextComprehension -- § 6.5 A sheaf model of dependent types import CwF.Sheaf.Base import CwF.Sheaf.TypesAndTerms import CwF.Sheaf.ContextComprehension \end{code} Other versions of implementation, in which the computational content of the development is not destroyed. \begin{code} -- § 7.2.2 Construction by using setoids import UsingSetoid.Space.Space import UsingSetoid.ModellingUC.UCinT import UsingSetoid.ModellingUC.ComputationExperiments -- § 7.2.3 Construction by adding a probe axiom import AddingProbeAxiom.Space.Space import AddingProbeAxiom.ModellingUC.UCinT import AddingProbeAxiom.ModellingUC.ComputationExperiments -- § 7.2.4 Construction by postulating ¬¬(funext) -- Construction by postulating (funext) in an irrelevant field import UsingIrrelevantFunext.Space.Space import UsingIrrelevantFunext.ModellingUC.UCinT import UsingIrrelevantFunext.ModellingUC.ComputationExperiments -- Construction by postulating the double negation of (funext) import UsingNotNotFunext.Space.Space import UsingNotNotFunext.ModellingUC.UCinT import UsingNotNotFunext.ModellingUC.ComputationExperiments \end{code}