49 research outputs found
Program Equivalence with Names
The nu-calculus of Pitts and Stark was introduced as a paradigmatic
functional language with a very basic local-state effect: references of unit
type. These were called names, and the motto of the new language went as
follows:
"Names are created with local scope, can be tested for equality, and are
passed around via function application, but that is all."
Because of this limited framework, the hope was that fully abstract models
and complete proof techniques could be obtained. However, it was soon
realised that the behaviour of nu-calculus programs is quite intricate, and
program equivalence in particular is surprisingly difficult to capture. Here we
shall focus on the following "hard" equivalence.
new x,y in f. (fx=fy) == f. true
We shall examine attempts and proofs of the above, explain the advantages
and disadvantages of the proof methods and discuss why program
equivalence in this simple language remains to date a mystery
Investigations on the Dual Calculus
AbstractThe Dual Calculus, proposed recently by Wadler, is the outcome of two distinct lines of research in theoretical computer science:(A)Efforts to extend the Curry–Howard isomorphism, established between the simply-typed lambda calculus and intuitionistic logic, to classical logic.(B)Efforts to establish the tacit conjecture that call-by-value (CBV) reduction in lambda calculus is dual to call-by-name (CBN) reduction.This paper initially investigates relations of the Dual Calculus to other calculi, namely the simply-typed lambda calculus and the Symmetric lambda calculus. Moreover, Church–Rosser and Strong Normalization properties are proven for the calculus’ CBV reduction relation. Finally, extensions of the calculus to second-order types are briefly introduced
History-Register Automata
Programs with dynamic allocation are able to create and use an unbounded
number of fresh resources, such as references, objects, files, etc. We propose
History-Register Automata (HRA), a new automata-theoretic formalism for
modelling such programs. HRAs extend the expressiveness of previous approaches
and bring us to the limits of decidability for reachability checks. The
distinctive feature of our machines is their use of unbounded memory sets
(histories) where input symbols can be selectively stored and compared with
symbols to follow. In addition, stored symbols can be consumed or deleted by
reset. We show that the combination of consumption and reset capabilities
renders the automata powerful enough to imitate counter machines, and yields
closure under all regular operations apart from complementation. We moreover
examine weaker notions of HRAs which strike different balances between
expressiveness and effectiveness.Comment: LMCS (improved version of FoSSaCS
Higher-order linearisability
Linearisability is a central notion for verifying concurrent libraries: a library is proven correct if its operational history can be rearranged into a sequential one that satisfies a given specification. Until now, linearisability has been examined for libraries in which method arguments and method results were of ground type. In this paper we extend linearisability to the general higher-order setting, where methods of arbitrary type can be passed as arguments and returned as values, and establish its soundness
Pushdown Normal-Form Bisimulation: A Nominal Context-Free Approach to Program Equivalence
We propose Pushdown Normal Form (PDNF) Bisimulation to verify contextual
equivalence in higher-order functional programming languages with local state.
Similar to previous work on Normal Form (NF) bisimulation, PDNF Bisimulation is
sound and complete with respect to contextual equivalence. However, unlike
traditional NF Bisimulation, PDNF Bisimulation is also decidable for a class of
program terms that reach bounded configurations but can potentially have
unbounded call stacks and input an unbounded number of unknown functions from
their context. Our approach relies on the principle that, in model-checking for
reachability, pushdown systems can be simulated by finite-state automata
designed to accept their initial/final stack content. We embody this in a
stackless Labelled Transition System (LTS), together with an on-the-fly
saturation procedure for call stacks, upon which bisimulation is defined. To
enhance the effectiveness of our bisimulation, we develop up-to techniques and
confirm their soundness for PDNF Bisimulation. We develop a prototype
implementation of our technique which is able to verify equivalence in examples
from practice and the literature that were out of reach for previous work
FULL ABSTRACTION FOR NOMINAL GENERAL REFERENCES
Copyright for articles published in Logical Methods in Computer Science is retained by the authors. Logical Methods in Computer Science is an open-access journal. All journal content is licensed under a Creative Commons license (http://creativecommons.org/licenses/by-nd/2.0/)Published in Logical Methods in Computer Science
Vol. 5 (3:8) 2009, pp. 1–69
www.lmcs-online.orgResearch financially supported by the Engineering and Physical Sciences Research Council, the Eugenides
Foundation, the A. G. Leventis Foundation and Brasenose College
Polynomial-time equivalence testing for deterministic fresh-register automata
Register automata are one of the most studied automata models over infinite alphabets. The complexity of language equivalence for register automata is quite subtle. In general, the problem is undecidable but, in the deterministic case, it is known to be decidable and in NP. Here we propose a polynomial-time algorithm building upon automata- and group-theoretic techniques. The algorithm is applicable to standard register automata with a fixed number of registers as well as their variants with a variable number of registers and ability to generate fresh data values (fresh-register automata). To complement our findings, we also investigate the associated inclusion problem and show that it is PSPACE-complete
Fresh-Register Automata
What is a basic automata-theoretic model of computation with names and fresh-name generation? We introduce Fresh-Register Automata (FRA), a new class of automata which operate on an infinite alphabet of names and use a finite number of registers to store fresh names, and to compare incoming names with previously stored ones. These finite machines extend Kaminski and Francez’s Finite-Memory Automata by being able to recognise globally fresh inputs, that is, names fresh in the whole current run. We exam-ine the expressivity of FRA’s both from the aspect of accepted languages and of bisimulation equivalence. We establish primary properties and connections between automata of this kind, and an-swer key decidability questions. As a demonstrating example, we express the theory of the pi-calculus in FRA’s and characterise bisimulation equivalence by an appropriate, and decidable in the finitary case, notion in these automata