License: Creative Commons Attribution 4.0 International license (CC BY 4.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.FSCD.2022.32
URN: urn:nbn:de:0030-drops-163138
Go to the corresponding LIPIcs Volume Portal

McDermott, Dylan ; Mycroft, Alan

Galois Connecting Call-by-Value and Call-by-Name

LIPIcs-FSCD-2022-32.pdf (0.9 MB)


We establish a general framework for reasoning about the relationship between call-by-value and call-by-name.
In languages with side-effects, call-by-value and call-by-name executions of programs often have different, but related, observable behaviours. For example, if a program might diverge but otherwise has no side-effects, then whenever it terminates under call-by-value, it terminates with the same result under call-by-name. We propose a technique for stating and proving these properties. The key ingredient is Levy’s call-by-push-value calculus, which we use as a framework for reasoning about evaluation orders. We construct maps between the call-by-value and call-by-name interpretations of types. We then identify properties of side-effects that imply these maps form a Galois connection. These properties hold for some side-effects (such as divergence), but not others (such as mutable state). This gives rise to a general reasoning principle that relates call-by-value and call-by-name. We apply the reasoning principle to example side-effects including divergence and nondeterminism.

BibTeX - Entry

  author =	{McDermott, Dylan and Mycroft, Alan},
  title =	{{Galois Connecting Call-by-Value and Call-by-Name}},
  booktitle =	{7th International Conference on Formal Structures for Computation and Deduction (FSCD 2022)},
  pages =	{32:1--32:19},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-233-4},
  ISSN =	{1868-8969},
  year =	{2022},
  volume =	{228},
  editor =	{Felty, Amy P.},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{},
  URN =		{urn:nbn:de:0030-drops-163138},
  doi =		{10.4230/LIPIcs.FSCD.2022.32},
  annote =	{Keywords: computational effect, evaluation order, call-by-push-value, categorical semantics}

Keywords: computational effect, evaluation order, call-by-push-value, categorical semantics
Collection: 7th International Conference on Formal Structures for Computation and Deduction (FSCD 2022)
Issue Date: 2022
Date of publication: 28.06.2022

DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI