Algebras for Program Correctness in Isabelle/HOL

@inproceedings{Armstrong2014AlgebrasFP,
  title={Algebras for Program Correctness in Isabelle/HOL},
  author={Alasdair Armstrong and Victor B. F. Gomes and Georg Struth},
  booktitle={RAMiCS},
  year={2014}
}
We present a reference formalisation of Kleene algebra and demonic refinement algebra with tests in Isabelle/HOL. It provides three different formalisations of tests. Our structured comprehensive libraries for these algebras extend an existing Kleene algebra library. It includes an algebraic account of Hoare logic for partial correctness and several refinement and concurrency control laws in a total correctness setting. Formalisation examples include a complex refinement theorem, a generic… 

Formal analysis of concurrent programs

TLDR
Extensions of Kleene algebras are used to develop algeBRas for rely-guarantee style reasoning about concurrent programs, which yields a rapid, lightweight approach for the construction of verification and refinement tools.

Lightweight Program Construction and Verification Tools in Isabelle/HOL

TLDR
This work presents a principled approach to the development of construction and verification tools for while-programs by formalisation in Isabelle/HOL that makes these tools themselves correct by construction.

Algebraic principles for program correctness tools in Isabelle/HOL

This thesis puts forward a flexible and principled approach to the development of construction and verification tools for imperative programs, in which the control flow and the data level are

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

Mechanised Theory Engineering in

TLDR
The work described here underpins specification languages such as Circus, which combines state-rich imperative operations, communication and concurrency, object orientation, references and pointers, real time, and process mobility, all with denotational, axiomatic, algebraic, and operational semantics.

Building program construction and verification tools from algebraic principles

We present a principled modular approach to the development of construction and verification tools for imperative programs, in which the control flow and the data flow are cleanly separated. Our

synchronous program algebra: a basis for reasoning about shared-memory and event-based

TLDR
The algebra has been encoded in Isabelle/HOL to provide a basis for tool support for concurrent program verification based on the rely/guarantee technique, and facilitates simpler, more general, proofs that allow a higher level of automation than what is possible in low-level, model-specific interpretations.

A synchronous program algebra: a basis for reasoning about shared-memory and event-based concurrency

TLDR
The algebra has been encoded in Isabelle/HOL to provide a basis for tool support for concurrent program verification based on the rely/guarantee technique, and facilitates simpler, more general, proofs that allow a higher level of automation than what is possible in low-level, model-specific interpretations.

Developments in concurrent Kleene algebra

Trimming the Hedges: An Algebra to Tame Concurrency

  • G. Struth
  • Mathematics
    Theories of Programming
  • 2021

References

SHOWING 1-10 OF 29 REFERENCES

Kleene Algebra with Tests and Demonic Refinement Algebras

TLDR
This work formalises Kleene algebra with tests (KAT) and demonic refinement algebra (DRA) with tests in Isabelle/HOL and derives the inference rules for Hoare logic in KAT and its relational model.

Program Analysis and Verification Based on Kleene Algebra in Isabelle/HOL

TLDR
This work formalises SKAT in Isabelle/HOL, using the quotient type package to reason equationally in this algebra and extends SKAT with assertion statements and derive the inference rules of Hoare logic.

Automated Analysis of Regular Algebra

TLDR
Isabelle/HOL's automated theorem provers and counterexample generators are used to study the regular algebras of Boffa, Conway, Kozen and Salomaa, formalise their soundness and completeness and engineer their hierarchy.

Kleene Algebra

TLDR
This work shows applicability of the algebra to a partially-ordered trace model of program execution semantics and its usefulness by validating familiar proof rules for sequential programs and for concurrent ones (Jones’s rely/guarantee calculus).

Algebra of Monotonic Boolean Transformers

TLDR
This paper introduces an algebra which can be used to model total correctness, refinement, demonic and angelic choice and the basic model of this algebra are monotonic Boolean transformers.

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

From Kleene Algebra to Refinement Algebra

TLDR
DRA (demonic Re nement Algebra), a variation of KAT for total correctness and illustrating its modeling and reasoning power with a number of applications and examples are described.

Kleene Algebra with Tests and Program Schematology

TLDR
A purely algebraic approach to scheme equivalence using Kleene algebra with tests (KAT), where instead of transforming schemes directly using combinatorial graph manipulation, they are regarded as a certain kind of automaton on abstract traces.

Automated verification of refinement laws

TLDR
This work verified two classical complex refinement laws for action systems by ATP: a data refinement law and Back’s atomicity refinement law, and presents a refinement law for infinite loops that has been discovered through automated analysis.

Normal forms in total correctness for while programs and action systems

  • Kim Solin
  • Mathematics
    J. Log. Algebraic Methods Program.
  • 2011