210 research outputs found
Decidability and syntactic control of interference
AbstractWe investigate the decidability of observational equivalence and approximation in Reynoldsâ âSyntactic Control of Interferenceâ (SCI), a prototypical functional-imperative language in which covert interference between functions and their arguments is prevented by the use of an affine typing discipline.By associating denotations of terms in a fully abstract ârelationalâ model of finitary basic SCI (due to Reddy) with multitape finite state automata, we show that observational approximation is not decidable (even at first order), but that observational equivalence is decidable for all terms.We then consider the same problems for basic SCI extended with non-local control in the form of backwards jumps. We show that both observational approximation and observational equivalence are decidable in this âobservably sequentialâ version of the language by describing a fully abstract games model in which strategies are regular languages
Q# as a Quantum Algorithmic Language
Q# is a standalone domain-specific programming language from Microsoft for
writing and running quantum programs. Like most industrial languages, it was
designed without a formal specification, which can naturally lead to ambiguity
in its interpretation. We aim to provide a formal language definition for Q#,
placing the language on a solid mathematical foundation and enabling further
evolution of its design and type system. This paper presents -Q#, an
idealized version of Q# that illustrates how we may view Q# as a quantum Algol
(algorithmic language). We show the safety properties enforced by
-Q#'s type system and present its equational semantics based on a
fully complete algebraic theory by Staton.Comment: In Proceedings QPL 2022, arXiv:2311.0837
Compositional software verification based on game semantics
One of the major challenges in computer science is to put programming on a firmer mathematical basis, in order to improve the correctness of computer programs. Automatic program verification is acknowledged to be a very hard problem, but current work is reaching the point where at least the foundationalĂ?Ă· aspects of the problem can be addressed and it is becoming a part of industrial software development. This thesis presents a semantic framework for verifying safety properties of open sequ;ptial programs. The presentation is focused on an Algol-like programming language that embodies many of the core ingredients of imperative and functional languages and incorporates data abstraction in its syntax. Game semantics is used to obtain a compositional, incremental way of generating accurate models of programs. Model-checking is made possible by giving certain kinds of concrete automata-theoretic representations of the model. A data-abstraction refinement procedure is developed for model-checking safety properties of programs with infinite integer types. The procedure starts by model-checking the most abstract version of the program. If no counterexample, or a genuine one, is found, the procedure terminates. Otherwise, it uses a spurious counterexample to refine the abstraction for the next iteration. Abstraction refinement, assume-guarantee reasoning and the L* algorithm for learning regular languages are combined to yield a procedure for compositional verification. Construction of a global model is avoided using assume-guarantee reasoning and the L* algorithm, by learning assumptions for arbitrary subprograms. An implementation based on the FDR model checker for the CSP process algebra demonstrates practicality of the methods
An observationally complete program logic for imperative higher-order functions
We establish a strong completeness property called observational completeness of the program logic for imperative, higher-order functions introduced in [1]. Observational completeness states that valid assertions characterise program behaviour up to observational congruence, giving a precise correspondence between operational and axiomatic semantics. The proof layout for the observational completeness which uses a restricted syntactic structure called finite canonical forms originally introduced in game-based semantics, and characteristic formulae originally introduced in the process calculi, is generally applicable for a precise axiomatic characterisation of more complex program behaviour, such as aliasing and local state
Fragments of ML decidable by nested data class memory automata
The call-by-value language RML may be viewed as a canonical restriction of Standard ML to ground-type references, augmented by a âbad variableâ construct in the sense of Reynolds. We consider the fragment of (finitary) RML terms of order at most 1 with free variables of order at most 2, and identify two subfragments of this for which we show observational equivalence to be decidable. The first subfragment, RMLPâStr2âą1, consists of those terms in which the P-pointers in the game semantic representation are determined by the underlying sequence of moves. The second subfragment consists of terms in which the O-pointers of moves corresponding to free variables in the game semantic representation are determined by the underlying moves. These results are shown using a reduction to a form of automata over data words in which the data values have a tree-structure, reflecting the tree-structure of the threads in the game semantic plays. In addition we show that observational equivalence is undecidable at every third- or higher-order type, every second-order type which takes at least two first-order arguments, and every second-order type (of arity greater than one) that has a first-order argument which is not the final argument
Thin Games with Symmetry and Concurrent Hyland-Ong Games
We build a cartesian closed category, called Cho, based on event structures.
It allows an interpretation of higher-order stateful concurrent programs that
is refined and precise: on the one hand it is conservative with respect to
standard Hyland-Ong games when interpreting purely functional programs as
innocent strategies, while on the other hand it is much more expressive. The
interpretation of programs constructs compositionally a representation of their
execution that exhibits causal dependencies and remembers the points of
non-deterministic branching.The construction is in two stages. First, we build
a compact closed category Tcg. It is a variant of Rideau and Winskel's category
CG, with the difference that games and strategies in Tcg are equipped with
symmetry to express that certain events are essentially the same. This is
analogous to the underlying category of AJM games enriching simple games with
an equivalence relations on plays. Building on this category, we construct the
cartesian closed category Cho as having as objects the standard arenas of
Hyland-Ong games, with strategies, represented by certain events structures,
playing on games with symmetry obtained as expanded forms of these arenas.To
illustrate and give an operational light on these constructions, we interpret
(a close variant of) Idealized Parallel Algol in Cho
The Safe Lambda Calculus
Safety is a syntactic condition of higher-order grammars that constrains
occurrences of variables in the production rules according to their
type-theoretic order. In this paper, we introduce the safe lambda calculus,
which is obtained by transposing (and generalizing) the safety condition to the
setting of the simply-typed lambda calculus. In contrast to the original
definition of safety, our calculus does not constrain types (to be
homogeneous). We show that in the safe lambda calculus, there is no need to
rename bound variables when performing substitution, as variable capture is
guaranteed not to happen. We also propose an adequate notion of beta-reduction
that preserves safety. In the same vein as Schwichtenberg's 1976
characterization of the simply-typed lambda calculus, we show that the numeric
functions representable in the safe lambda calculus are exactly the
multivariate polynomials; thus conditional is not definable. We also give a
characterization of representable word functions. We then study the complexity
of deciding beta-eta equality of two safe simply-typed terms and show that this
problem is PSPACE-hard. Finally we give a game-semantic analysis of safety: We
show that safe terms are denoted by `P-incrementally justified strategies'.
Consequently pointers in the game semantics of safe lambda-terms are only
necessary from order 4 onwards
Fragments of ML Decidable by Nested Data Class Memory Automata
The call-by-value language RML may be viewed as a canonical restriction of
Standard ML to ground-type references, augmented by a "bad variable" construct
in the sense of Reynolds. We consider the fragment of (finitary) RML terms of
order at most 1 with free variables of order at most 2, and identify two
subfragments of this for which we show observational equivalence to be
decidable. The first subfragment consists of those terms in which the
P-pointers in the game semantic representation are determined by the underlying
sequence of moves. The second subfragment consists of terms in which the
O-pointers of moves corresponding to free variables in the game semantic
representation are determined by the underlying moves. These results are shown
using a reduction to a form of automata over data words in which the data
values have a tree-structure, reflecting the tree-structure of the threads in
the game semantic plays. In addition we show that observational equivalence is
undecidable at every third- or higher-order type, every second-order type which
takes at least two first-order arguments, and every second-order type (of arity
greater than one) that has a first-order argument which is not the final
argument
- âŠ