138 research outputs found
Algebraic Principles for Rely-Guarantee Style Concurrency Verification Tools
We provide simple equational principles for deriving rely-guarantee-style
inference rules and refinement laws based on idempotent semirings. We link the
algebraic layer with concrete models of programs based on languages and
execution traces. We have implemented the approach in Isabelle/HOL as a
lightweight concurrency verification tool that supports reasoning about the
control and data flow of concurrent programs with shared variables at different
levels of abstraction. This is illustrated on two simple verification examples
Concurrent Kleene Algebra: Free Model and Completeness
Concurrent Kleene Algebra (CKA) was introduced by Hoare, Moeller, Struth and
Wehrman in 2009 as a framework to reason about concurrent programs. We prove
that the axioms for CKA with bounded parallelism are complete for the semantics
proposed in the original paper; consequently, these semantics are the free
model for this fragment. This result settles a conjecture of Hoare and
collaborators. Moreover, the techniques developed along the way are reusable;
in particular, they allow us to establish pomset automata as an operational
model for CKA.Comment: Version 2 includes an overview section that outlines the completeness
proof, as well as some extra discussion of the interpolation lemma. It also
includes better typography and a number of minor fixes. Version 3
incorporates the changes by comments from the anonymous referees at ESOP.
Among other things, these include a worked example of computing the syntactic
closure by han
On partial order semantics for SAT/SMT-based symbolic encodings of weak memory concurrency
Concurrent systems are notoriously difficult to analyze, and technological
advances such as weak memory architectures greatly compound this problem. This
has renewed interest in partial order semantics as a theoretical foundation for
formal verification techniques. Among these, symbolic techniques have been
shown to be particularly effective at finding concurrency-related bugs because
they can leverage highly optimized decision procedures such as SAT/SMT solvers.
This paper gives new fundamental results on partial order semantics for
SAT/SMT-based symbolic encodings of weak memory concurrency. In particular, we
give the theoretical basis for a decision procedure that can handle a fragment
of concurrent programs endowed with least fixed point operators. In addition,
we show that a certain partial order semantics of relaxed sequential
consistency is equivalent to the conjunction of three extensively studied weak
memory axioms by Alglave et al. An important consequence of this equivalence is
an asymptotically smaller symbolic encoding for bounded model checking which
has only a quadratic number of partial order constraints compared to the
state-of-the-art cubic-size encoding.Comment: 15 pages, 3 figure
Learning Pomset Automata
We extend the L* algorithm to learn bimonoids recognising pomset languages.
We then identify a class of pomset automata that accepts precisely the class of
pomset languages recognised by bimonoids and show how to convert between
bimonoids and automata
A Denotational Semantics for SPARC TSO
The SPARC TSO weak memory model is defined axiomatically, with a
non-compositional formulation that makes modular reasoning about programs
difficult. Our denotational approach uses pomsets to provide a compositional
semantics capturing exactly the behaviours permitted by SPARC TSO. It uses
buffered states and an inductive definition of execution to assign an
input-output meaning to pomsets. We show that our denotational account is sound
and complete relative to the axiomatic account, that is, that it captures
exactly the behaviours permitted by the axiomatic account. Our compositional
approach facilitates the study of SPARC TSO and supports modular analysis of
program behaviour
Learning Pomset Automata.
We extend the L⋆ algorithm to learn bimonoids recognising pomset languages. We then identify a class of pomset automata that accepts precisely the class of pomset languages recognised by bimonoids and show how to convert between bimonoids and automata
Equivalence checking for weak bi-Kleene algebra
Pomset automata are an operational model of weak bi-Kleene algebra, which describes programs that can fork an execution into parallel threads, upon completion of which execution can join to resume as a single thread. We characterize a fragment of pomset automata that admits a decision procedure for language equivalence. Furthermore, we prove that this fragment corresponds precisely to series-rational expressions, i.e., rational expressions with an additional operator for bounded parallelism. As a consequence, we obtain a new proof that equivalence of series-rational expressions is decidable
- …