TY - GEN
T1 - Abstract Operational Methods for Call-by-Push-Value
AU - Goncharov, Sergey
AU - Tsampas, Stelios
AU - Urbat, Henning
PY - 2025/1/9
Y1 - 2025/1/9
N2 - Levy's call-by-push-value is a comprehensive programming paradigm that combines elements from functional and imperative programming, supports computational effects and subsumes both call-by-value and call-by-name evaluation strategies. In the present work, we develop modular methods to reason about program equivalence in call-by-push-value, and in fine-grain call-by-value, which is a popular lightweight call-by-value sublanguage of the former. Our approach is based on the fundamental observation that presheaf categories of sorted sets are suitable universes to model call-by-(push)-value languages, and that natural, coalgebraic notions of program equivalence such as applicative similarity and logical relations can be developed within. Starting from this observation, we formalize fine-grain call-by-value and call-by-push-value in the higher-order abstract GSOS framework, reduce their key congruence properties to simple syntactic conditions by leveraging existing theory and argue that introducing changes to either language incurs minimal proof overhead.
AB - Levy's call-by-push-value is a comprehensive programming paradigm that combines elements from functional and imperative programming, supports computational effects and subsumes both call-by-value and call-by-name evaluation strategies. In the present work, we develop modular methods to reason about program equivalence in call-by-push-value, and in fine-grain call-by-value, which is a popular lightweight call-by-value sublanguage of the former. Our approach is based on the fundamental observation that presheaf categories of sorted sets are suitable universes to model call-by-(push)-value languages, and that natural, coalgebraic notions of program equivalence such as applicative similarity and logical relations can be developed within. Starting from this observation, we formalize fine-grain call-by-value and call-by-push-value in the higher-order abstract GSOS framework, reduce their key congruence properties to simple syntactic conditions by leveraging existing theory and argue that introducing changes to either language incurs minimal proof overhead.
KW - Higher-order Abstract GSOS
KW - Categorical semantics
KW - Call-by-push-value
UR - https://arxiv.org/abs/2410.17045
U2 - 10.1145/3704871
DO - 10.1145/3704871
M3 - Conference contribution
T3 - Proceedings of the Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
SP - 1013
EP - 1039
BT - Proceedings of the ACM on Programming Languages
PB - Association for Computing Machinery (ACM)
T2 - The 52nd Annual ACM SIGPLAN Symposium on Principles of Programming Languages
Y2 - 19 January 2025 through 25 January 2025
ER -