In dependently typed programming languages, quotients can be introduced in two different ways: elements of each equivalence class can be made either propositionally equal, at the cost of having to manipulate those equality proofs, or definitionally equal, at the cost of requiring a normalization function.
The convenience of definitional equality could make the requirement of a normalization function tolerable, if it weren’t for the fact that those quotients need to be normalized every time we look at them. In the context of proof assistants, this is sometimes acceptable since efficiency of the code is not always relevant, but for a programming language it means these kinds of quotient types are usable only with normalization functions which are cheap, and in the end they do not offer very many benefits over the use of \emph{smart constructors} which eagerly normalize their return value.
We propose an adjustment to the elimination rule of \emph{normalized types} so as to allow manipulating values of such types without having to normalize them, thus offering much finer control over the code’s efficiency, as well as making those quotient types usable when normalization functions are too costly or impractical at runtime.
Fri 6 SepDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
14:00 - 15:30 | |||
14:00 22mTalk | Modal Mu-Calculus for Free in Agda TyDe | ||
14:22 22mTalk | First-class Algebraic Presentations with Elaborator Reflection (Extended Abstract) TyDe File Attached | ||
14:45 22mTalk | Normalizable types TyDe Stefan Monnier Université de Montréal | ||
15:07 22mTalk | Intrinsically Typed Syntax, a Logical Relation, and the Scourge of the Transfer Lemma TyDe Hannes Saffrich University of Freiburg, Peter Thiemann University of Freiburg, Germany, Marius Weidner University of Freiburg |