PhD defence by Danil Annenkov – University of Copenhagen

Forward this page to a friend Resize Print kalender-ikon Bookmark and Share

Department of Computer Science DIKU > Event Calendar 2018 > PhD defence by Danil A...

PhD defence by Danil Annenkov


Adventures in Formalisation: Financial Contracts, Modules, and Two-Level Type Theory


We present three projects concerned with applications of certified programming techniques and proof assistants in the area of programming language theory and mathematics.

The first project is about a certified compilation technique for a domain-specific programming language for financial contracts (the CL language). The code in CL is translated into a simple expression language well-suited for integration with software components implementing Monte Carlo simulation techniques (pricing engines). The compilation procedure is accompanied with formal proofs of correctness carried out in the Coq proof assistant.

The second project presents a number of techniques that allow for formal reasoning with nested and mutually inductive structures built up from finite maps and sets (also called semantic objects). The techniques, which build on the theory of nominal sets combined with the ability to work with multiple isomorphic representations of finite maps, make it possible to give a formal treatment, in Coq, of a higher-order module system, including the ability to eliminate entirely, at compile time, abstraction barriers introduced by the module system. The development is based on earlier work on static interpretation of modules and provides the foundation for a higher-order module language for Futhark, an optimising compiler targeting data-parallel architectures, such as GPGPUs.

The third project presents an implementation of two-level type theory, a version of Martin-Lof type theory with two equality types: the first acts as the usual equality of homotopy type theory, while the second allows us to reason about strict equality. In this system, we can formalise results of partially meta-theoretic nature. We develop and explore in details how two-level type theory can be implemented in a proof assistant, providing a prototype implementation in the proof assistant Lean. We demonstrate an application of two-level type theory by developing some results on the theory of inverse diagrams using our Lean implementation.

Assessment Committee

  • Chairman: Associate Professor Andrzej Filinski, Department of Computer Science, University of Copenhagen, Denmark
  • Professor Lars Birkedal, Department of Computer Science, Aarhus University, Denmark
  • Professor Andrew Pitts, University of Cambridge, United Kingdom

Academic Supervisor

  • Associate Professor Martin Elsman, Department of Computer Science, University of Copenhagen

For an electronic copy of the thesis, please contact