Table of Contents
Fetching ...

Abstract Operational Methods for Call-by-Push-Value

Sergey Goncharov, Stelios Tsampas, Henning Urbat

TL;DR

This work develops a modular, categorical theory of program equivalence for call-by-push-value and its fine-grain variant FGCBV using Higher-Order Abstract GSOS. By modeling CBPV and FGCBV in presheaf categories with sorting into values and computations, it derives generic notions of applicative similarity and step-indexed logical relations whose soundness reduces to simple rule-based checks. The approach unifies operational reasoning for complex higher-order languages, including binding and effects, and yields modular proofs of contextually relevant congruences. The framework promises scalable tooling for reasoning about compilation targets and effectful languages, with future directions toward richer effects and rule formats.

Abstract

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.

Abstract Operational Methods for Call-by-Push-Value

TL;DR

This work develops a modular, categorical theory of program equivalence for call-by-push-value and its fine-grain variant FGCBV using Higher-Order Abstract GSOS. By modeling CBPV and FGCBV in presheaf categories with sorting into values and computations, it derives generic notions of applicative similarity and step-indexed logical relations whose soundness reduces to simple rule-based checks. The approach unifies operational reasoning for complex higher-order languages, including binding and effects, and yields modular proofs of contextually relevant congruences. The framework promises scalable tooling for reasoning about compilation targets and effectful languages, with future directions toward richer effects and rule formats.

Abstract

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.

Paper Structure

This paper contains 24 sections, 7 theorems, 98 equations, 5 figures.

Key Result

Theorem 2.3

Both $\lesssim^{\mathsf{app}}$ and $\mathcal{L}$ are adequate congruences. Hence, for all $p,q\in \Lambda_{\mathsf{\tiny CL}}$,

Figures (5)

  • Figure 1: Operational semantics of the $\textbf{xCL}\xspace$ calculus.
  • Figure 2: Operational model of a higher-order GSOS law
  • Figure 3: Call-by-value operational semantics for the xCL$_{\mathrm{fg}}$ calculus.
  • Figure 4: Syntax of CBPV.
  • Figure 5: Small-step operational semantics for CBPV.

Theorems & Definitions (40)

  • Definition 2.1
  • Definition 2.2
  • Theorem 2.3: Soundness
  • Example 2.4
  • Example 2.5
  • Example 2.6
  • Example 2.7
  • Remark 2.8: Canonical Liftings
  • Example 2.9
  • Definition 2.10: Abstract Contextual Preorder
  • ...and 30 more