Towards Patterns for Heaps and Imperative Lambdas
David A. Naumann

TL;DR
This paper develops semantics for an extended lambda calculus that integrates pointwise and point-free styles, focusing on heap manipulation and pattern matching, with potential applications in imperative program verification.
Contribution
It introduces a semantics using ideal relations and predicate transformers for a lambda calculus with pattern matching, bridging pointwise and point-free paradigms in imperative programming.
Findings
Laws like lax beta and eta are proved in the models.
Semantics are provided using ideal relations and predicate transformers.
Open problems related to the semantics are discussed.
Abstract
In functional programming, point-free relation calculi have been fruitful for general theories of program construction, but for specific applications pointwise expressions can be more convenient and comprehensible. In imperative programming, refinement calculi have been tied to pointwise expression in terms of state variables, with the curious exception of the ubiquitous but invisible heap. To integrate pointwise with point-free, de Moor and Gibbons extended lambda calculus with non-injective pattern matching interpreted using relations. This article gives a semantics of that language using ``ideal relations'' between partial orders, and a second semantics using predicate transformers. The second semantics is motivated by its potential use with separation algebra, for pattern matching in programs acting on the heap. Laws including lax beta and eta are proved in these models and a number…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
