3 minute read

Today I submitted my “phase 2” project proposal, for approval by the examiners. The text of the proposal is presented below.

This was also a test of how easy it is for me to include portions of markup (Org Mode) written for LaTeX in this HTML “blog”, and vice-versa to keep HTML markup as usable with LaTeX. In this instance I copied the file over and edited the parts that were LaTeX-specific. My notes (including the proposal text) and these posts live in different repositories, which is a problem for file-inclusion that I have not yet resolved. Org is quite suited both to including (portions of) other files, along with its own macros to paper over my liberal use of quoted HTML/LaTeX. Headings, quotation marks, and even citations are processed just fine by the export backend though, and I’m sure other features could be configured or reprogrammed so that I don’t need to use inline LaTeX so often. If I achieved my goals, you could maybe read these posts as beautifully typeset LaTeX too, wouldn’t that be grand?

Anyway, the proposal:

Abstract

Call-by-value and call-by-name are dual evaluation strategies in programming languages; when these are mixed in an effectful language, function composition ceases to be associative, rendering ordinary categories unsuitable for modelling their denotational semantics. Suitable constructs such as duploids have been studied in previous work, but in a univalent setting it is desirable to work with “univalent” versions, where equivalences correspond to identity types. In this work we will study and formalise the suitable notions of univalence for these constructs using the Rocq UniMath library.

Introduction, approach and outcomes

Call-by-value (CBV) and call-by-name (CBN) are two evaluation strategies in lambda calculus, corresponding to whether arguments are evaluated before application, or substituted without evaluation. CBV languages can variously be modelled by monads and their Kleisli categories [1], [2], or the related Freyd categories [3], or abstract Kleisli categories [4] (also called “thunk-force categories”). For mixed evaluation orders, categories are not sufficient: one must relax categories’ associativity condition. A suitable structure is the duploid by [5], [6] where objects are polarized depending on which of their incoming or outgoing maps associate.

From a different direction, univalent foundations (UF), built on dependent type theory, allow for internalising the identity of indiscernibles: equivalent mathematical structures, when correctly constructed, can be identified with each other. This is the univalence principle, which can be stated for many constructions [7], and where the univalence axiom states that it holds for types. In category theory, for instance, one can speak of univalent categories where isomorphic objects are identified [8]. Likewise, we would thus like to speak of univalent [duploids/Freyd categories/thunk-force categories], where suitably equivalent objects are identified.

The aim of this project is to formalise univalent [duploids and/or Freyd categories and/or thunk-force categories], for their use in denotational semantics involving computational effects, where UF have proven useful [9]. In particular, I intend to mechanise some of the existing theorems about [e.g. duploids] [6], hope to explore consequences of their univalence, and aspire to construct the “Rezk-completion” of non-univalent [duploids] into weakly equivalent univalent [duploids], by reference to Rezk-completion for categories [8]. I will be targeting and hoping to contribute to the UniMath [10] library of univalent mathematics, written using the Rocq Prover [11].

References

[1]
E. Moggi, “Computational lambda-calculus and monads,” in [1989] Proceedings. fourth annual symposium on logic in computer science, 1989, pp. 14–23, doi: 10.1109/LICS.1989.39155.
[2]
E. Moggi, “Notions of computation and monads,” Information and computation, vol. 93, no. 1, pp. 55–92, 1991, doi: https://doi.org/10.1016/0890-5401(91)90052-4. [Online]. Available: https://www.sciencedirect.com/science/article/pii/0890540191900524
[3]
P. Levy, J. Power, and H. Thielecke, “Modelling environments in call-by-value programming languages,” Information and computation, vol. 185, no. 2, pp. 182–210, 2003, doi: https://doi.org/10.1016/S0890-5401(03)00088-9. [Online]. Available: https://www.sciencedirect.com/science/article/pii/S0890540103000889
[4]
C. Führmann, “Direct models of the computational lambda-calculus,” Electronic notes in theoretical computer science, vol. 20, pp. 245–292, 1999, doi: https://doi.org/10.1016/S1571-0661(04)80078-1. [Online]. Available: https://www.sciencedirect.com/science/article/pii/S1571066104800781
[5]
G. Munch-Maccagnoni, “Syntax and Models of a non-Associative Composition of Programs and Proofs,” Theses, Université Paris-Diderot - Paris VII, 2013 [Online]. Available: https://theses.hal.science/tel-00918642
[6]
G. Munch-Maccagnoni, “Models of a non-associative composition,” in Foundations of software science and computation structures, 2014, pp. 396–410, doi: 10.1007/978-3-642-54830-7_26.
[7]
B. Ahrens, P. R. North, M. Shulman, and D. Tsementzis, “The univalence principle.” 2022 [Online]. Available: https://arxiv.org/abs/2102.06275
[8]
B. Ahrens, K. Kapulkin, and M. Shulman, “Univalent categories and the rezk completion,” Mathematical structures in computer science, vol. 25, no. 5, pp. 1010–1039, 2015, doi: 10.1017/S0960129514000486.
[9]
J. Sterling, D. Gratzer, and L. Birkedal, “Towards univalent reference types.” 2023 [Online]. Available: https://arxiv.org/abs/2307.16608
[10]
D. R. Grayson et al., “Unimath/unimath: v20250923.” Zenodo, Sep. 2025 [Online]. Available: https://doi.org/10.5281/zenodo.17186647
[11]
The Coq Development Team, “The Coq standard library – release 8.20.0,” Sep. 2024. [Online]. Available: https://docs.rocq-prover.org/V8.20.0/stdlib/

Updated: