2016
DOI: 10.1007/s00165-015-0343-1
|View full text |Cite
|
Sign up to set email alerts
|

Building program construction and verification tools from algebraic principles

Abstract: 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 simplest verification tool uses Kleene algebra with tests for the control flow of while-programs and their standard relational semantics for the data flow. It is expanded to a basic program construction tool by adding an operation for the specification statement and one single axiom. To include recursive procedures, Kl… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1

Citation Types

0
88
0

Year Published

2016
2016
2020
2020

Publication Types

Select...
8

Relationship

4
4

Authors

Journals

citations
Cited by 32 publications
(88 citation statements)
references
References 33 publications
0
88
0
Order By: Relevance
“…Altogether we have proven over 200 hundred laws of predicate and relational calculus, many of which can be imported either from HOL or by Armstrong's algebraic hierarchy [1]. This then gives us the foundation on which to build UTP theories for Cyber-Physical Systems.…”
Section: Theorem 5 Relational Laws Of Programmingmentioning
confidence: 98%
See 2 more Smart Citations
“…Altogether we have proven over 200 hundred laws of predicate and relational calculus, many of which can be imported either from HOL or by Armstrong's algebraic hierarchy [1]. This then gives us the foundation on which to build UTP theories for Cyber-Physical Systems.…”
Section: Theorem 5 Relational Laws Of Programmingmentioning
confidence: 98%
“…Isabelle is a powerful proof assistant that can be used both for the mechanisation of mathematics, and for the application of such mechanisations to program verification, which is famously illustrated by the seL4 microkernel verification project [26]. Another excellent example is the use of Kleene algebras to build program verification tools [1], from which Hoare logics, weakest-precondition calculi, rely-guarantee calculi, and separation logics have been created. Specifically of interest for CPS, there has also been a lot of recent work on formalising calculus, analysis, and ordinary differential equations (ODEs) in Isabelle [25], which can then be applied to verification of hybrid systems.…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…Thus one can apply predicate calculus to reason about programs, as well as prove the algebraic laws of programming themselves [19]. These laws can then be applied to construct semantic presentations for the purpose of verification, such as operational semantics, Hoare calculi, separation logic, and refinement calculi, to name a few [2,9]. This further enables the application of automated theorem provers to build program verification tools, an approach which has seen multiple successes [1,22].…”
Section: Introductionmentioning
confidence: 99%
“…We have already built mathematical components for variants of Kleene algebras, regular algebras and relation algebras in Isabelle [6,17,4,13,2], integrated some of them into verification components for sequential programs [16,5,18], local reasoning with separation logic [12] and the rely-guarantee calculus [3]. In all of them, an abstract algebraic layer has been linked via formal soundness proofs with concrete computational models, e.g.…”
mentioning
confidence: 99%