Project Details
Description
Dependently typed programming languages allow for specifications of programs to be expressed in types and proofs to be machine verified. This can be used for formal verification of software, but unfortunately the logical interpretation of type theory forces restrictions on type theory as a programming language. In recent work we have shown how recursion can be added safely to type theory without breaking the logical interpretation, and a version of this has been implemented in Agda.
This project looks at how to combine guarded recursion with algebraic effects, i.e., actions such as exception raising, access to memory and probabilistic choice. This will allow the programmer to write recursive programs using these effects. We do this by studying how to combine the algebraic theories for these effects with the steps of guarded recursion, and describing the monads they give rise to. We focus on two applications: Advanced notions of store and probabilistic choice.
This project looks at how to combine guarded recursion with algebraic effects, i.e., actions such as exception raising, access to memory and probabilistic choice. This will allow the programmer to write recursive programs using these effects. We do this by studying how to combine the algebraic theories for these effects with the steps of guarded recursion, and describing the monads they give rise to. We focus on two applications: Advanced notions of store and probabilistic choice.
Acronym | Alegro |
---|---|
Status | Active |
Effective start/end date | 01/07/2022 → 30/06/2026 |
Collaborative partners
- IT University of Copenhagen (lead)
- University of Edinburgh
Funding
- Independent Research Fund Denmark: DKK2,740,493.00
Keywords
- Programming languages
- logic
- recursion
- computational effects
- modal types
Fingerprint
Explore the research topics touched on by this project. These labels are generated based on the underlying awards/grants. Together they form a unique fingerprint.