Abstract

Concurrent Kleene Algebra (CKA) extends basic Kleene algebra with a parallel composition operator, which enables reasoning about concurrent programs. However, CKA fundamentally misses tests, which are needed to model standard programming constructs such as conditionals and mathsf {while}-loops. It turns out that integrating tests in CKA is subtle, due to their interaction with parallelism. In this paper we provide a solution in the form of Concurrent Kleene Algebra with Observations (CKAO). Our main contribution is a completeness theorem for CKAO. Our result resorts on a more general study of CKA “with hypotheses”, of which CKAO turns out to be an instance: this analysis is of independent interest, as it can be applied to extensions of CKA other than CKAO.

Highlights

  • Kleene algebra with tests (KAT) is aalgebraic framework [17,19] that allows one to study properties of imperative programs with conditional branching, i.e. if-statements and while-loops

  • B∧b expresses a single test executed atomically, whereas b·b describes two distinct executions, occurring one after the other. This distinction is crucial when moving from the sequential setting of KA to the concurrent setting of CKA, as actions from another thread that happen to be scheduled after b but before b may as well change the outcome of b. This newly developed extension of KA enables a novel attempt to enrich CKA with the ability to reason about programs that have the traditional conditionals: in this paper, we present Concurrent Kleene Algebra with Observations (CKAO) and show that it overcomes the problems present in Concurrent Kleene Algebra with Tests (CKAT)

  • – We introduce Concurrent Kleene Algebra with Hypotheses (CKAH), a formalism for studying extensions of CKA; this is a concurrent extension of Kleene Algebra with Hypotheses (Section 4)

Read more

Summary

Introduction

Kleene algebra with tests (KAT) is a (co)algebraic framework [17,19] that allows one to study properties of imperative programs with conditional branching, i.e. if-statements and while-loops. This distinction is crucial when moving from the sequential setting of KA to the concurrent setting of CKA, as actions from another thread that happen to be scheduled after b but before b may as well change the outcome of b This newly developed extension of KA enables a novel attempt to enrich CKA with the ability to reason about programs that have the traditional conditionals: in this paper, we present Concurrent Kleene Algebra with Observations (CKAO) and show that it overcomes the problems present in CKAT. For the sake of brevity, some proofs appear in the extended version [14]

Preliminaries
Pomset contexts
Concurrent Kleene Algebra with Hypotheses
Reification
Factoring the exchange law
Lifting
Instantiation to CKA with Observations
Discussion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call