diff --git a/doc/conclusion.tex b/doc/conclusion.tex index 834e579..86c5618 100644 --- a/doc/conclusion.tex +++ b/doc/conclusion.tex @@ -1,3 +1,52 @@ \chapter{Conclusion} +This thesis highlighted some of issues with the standard inductive definition of +propositional equality used in Agda. Functional extensionality and univalence +are two examples not admissible in Intensional Type Theory (ITT). This issue is +overcome with an extension to Agda's type system called Cubical Agda. With +Cubical Agda both functional extensionality and univalence are admissible. +Cubical Agda is more expressive, but there are certain issues that arise that +are not present in standard Agda. For one thing ITT and standard Agda enjoys +Uniqueness of Identity Proofs (UIP). This is not the case in Cubical Agda. In +stead there exists a hierarchy of types with increasing \nomen{homotopical + structure}. It turns out to be useful to built the formalization with this in +mind as it can simplify proofs considerably. Another issue one must overcome in +Cubical Agda is when a type has a field whose type depends on a previous field. +In this case paths between such types will be heterogeneous paths which in +practice turns out to be considerably more difficult to work with than +homogeneous paths. The thesis also demonstrated how to use appropriate +abstraction techniques for dealing with this, such as based path-induction. -\TODO{\ldots} +This thesis formalized some of the core concepts from category theory including; +categories, functors, products, exponentials, Cartesian closed categories, +natural transformations, the yoneda embedding and monads. Category theory is an +interesting case-study for the application of Cubical Agda for two reasons in +particular: Because category theory is the study of abstract algebra of +functions, meaning that functional extensionality is particularly relevant. +Another reason is that in category theory it is commonplace to identity +isomorphic structures and univalence allows us to make this notion precise. The +thesis also demonstrated another technique that is common in category theory; +namely to define categories to prove properties of other structures. +Specifically a category was defined to demonstrate that any two product objects +in a category are isomorphic. Furthermore the thesis showed two formulations of +monads and proved that they indeed are equivalent: Namely monoidal- and Kleisli- +monads. The monoidal formulation is more typical to category theoretic +formulations and the Kleisli formulation will be more familiar to functional +programmers. In the formulation we also saw how paths can be used to extract +functions. A path between two types induce an isomorphism between the two types. +This e.g. permits developers to write a monad instance for a given type using +the Kleisli formulation. By transporting this formulation to become a monoidal +monad one can reuse all results about monoidal monads on the Kleisli +formulation. +%% +%% problem with inductive type +%% overcome with cubical +%% the path type +%% homotopy levels +%% depdendent paths +%% +%% category theory +%% algebra of functions ~ funExt +%% identify isomorphic types ~ univalence +%% using categories to prove properties +%% computational properties +%% reusability, compositional