The fire triangle: how to mix substitution, dependent elimination, and effects
At a glance
- الاستشهادات
- 41
- المراجع
- 26
- Comments
- 0
Abstract
There is a critical tension between substitution, dependent elimination and effects in type theory. In this paper, we crystallize this tension in the form of a no-go theorem that constitutes the fire triangle of type theory. To release this tension, we propose ∂CBPV, an extension of call-by-push-value (CBPV) —a general calculus of effects—to dependent types. Then, by extending to ∂CBPV the well-known decompositions of call-by-name and call-by-value into CBPV, we show why, in presence of effects, dependent elimination must be restricted in call-by-name, and substitution must be restricted in call-by-value. To justify ∂CBPV and show that it is general enough to interpret many kinds of effects, we define various effectful syntactic translations from ∂CBPV to Martin-Löf type theory: the reader, weaning and forcing translations.
Publication details
- DOI
- 10.1145/3371126
- OpenAlex
- W2991260502
- Document type
- article
- Language
- EN
- Source
- Proceedings of the ACM on Programming Languages
- Last metadata update
Comments
تسجيل الدخول للانضمام إلى النقاش.