Applicative transition system
An applicative transition system (ATS) is a structure that models an untyped
Definition (lazy)
The original definition of an ATS comes from Abramsky 1990, and concerns lazy untyped
A quasi-applicative transition system (qATS)
\textsf{ev} : A \rightharpoonup (A \to A)
We write
The function
Based on a qATS, we may define a relation
An ATS is then defined as a qATS that preserves applicative simulation, in the sense that
Definition (call-by-value, effectful)
Dal Lago et al. 2017 have presented a monadic CBV variant of a qATS, which is appropriate for effectful CBV languages. The definition of a qATS is adapted to support both values and computations.
A monadic, CBV qATS over a (
- a set
\mathcal{V} of values - a set
\mathcal{X} of computations - an evaluation function
\textsf{eval} : \mathcal{X} \to T(\mathcal{V}) mapping computations to monadic values - and an application function
\mathbin{\cdot} : \mathcal{V} \times \mathcal{V} \to \mathcal{X} for applying two values.
References
@incollection{abramsky_1990,
title = {The Lazy Lambda Calculus},
url = {https://www.cs.ox.ac.uk/files/293/lazy.pdf},
pages = {65--117},
booktitle = {Research Topics in Functional Programming},
publisher = {Addison Wesley},
author = {Abramsky, Samson},
date = {1990}
}
@inproceedings{dal_lago_effectful_2017,
title = {Effectful applicative bisimilarity: Monads, relators, and Howe's method},
doi = {10.1109/LICS.2017.8005117},
booktitle = {2017 32nd Annual {ACM}/{IEEE} Symposium on Logic in Computer Science ({LICS})},
publisher = {{IEEE}},
author = {Dal Lago, Ugo and Gavazzo, Francesco and Levy, Paul Blain},
date = {2017},
archivePrefix = {arXiv},
eprint = {1704.04647}
}