DeepAI AI Chat
Log In Sign Up

On the Simply-Typed Functional Machine Calculus: Categorical Semantics and Strong Normalisation

by   Chris Barrett, et al.

The Functional Machine Calculus (FMC) was recently introduced as a generalization of the lambda-calculus to include higher-order global state, probabilistic and non-deterministic choice, and input and output, while retaining confluence. The calculus can encode both the call-by-name and call-by-value semantics of these effects. This is enabled by two independent generalisations, both natural from the perspective of the FMC's operational semantics, which is given by a simple multi-stack machine. The first generalization decomposes the syntax of the lambda-calculus in a way that allows for sequential composition of terms and the encoding of reduction strategies. Specifically, there exist translations of the call-by-name and call-by-value lambda-calculus which preserve operational semantics. The second parameterizes application and abstraction in terms of 'locations' (corresponding to the multiple stacks of the machine), which gives a unification of the operational semantics, syntax, and reduction rules of the given effects with those of the lambda-calculus. The FMC further comes equipped with a simple type system which restricts and captures the behaviour of effects. This thesis makes two main contributions, showing that two fundamental properties of the lambda-calculus are preserved by the FMC. The first is to show that the categorical semantics of the FMC, modulo an appropriate equational theory, is given by the free Cartesian closed category. The equational theory is validated by a notion of observational equivalence. The second contribution is a proof that typed FMC-terms are strongly normalising. This is an extension (and small simplification) of Gandy's proof for the lambda-calculus, which additionally emphasizes its latent operational intuition.


page 1

page 2

page 3

page 4


The Functional Machine Calculus II: Semantics

The Functional Machine Calculus (FMC), recently introduced by the author...

A categorical framework for congruence of applicative bisimilarity in higher-order languages

Applicative bisimilarity is a coinductive characterisation of observatio...

The Functional Machine Calculus

This paper presents the Functional Machine Calculus (FMC) as a simple mo...

Semantics of a Relational λ-Calculus (Extended Version)

We extend the λ-calculus with constructs suitable for relational and fun...

Recovering Purity with Comonads and Capabilities

In this paper, we take a pervasively effectful (in the style of ML) type...

Strategies as Resource Terms, and their Categorical Semantics

As shown by Tsukada and Ong, normal (extensional) simply-typed resource ...

Semantic Analysis of Normalisation by Evaluation for Typed Lambda Calculus

This paper studies normalisation by evaluation for typed lambda calculus...