# On Automated Program Construction and Verification

@inproceedings{Berghammer2010OnAP, title={On Automated Program Construction and Verification}, author={R. Berghammer and G. Struth}, booktitle={MPC}, year={2010} }

A new approach for automating the const construction and verification of imperative programs is presented. Based on the standard methods of Floyd, Dijkstra, Gries and Hoare, it supports proof and refutation games with automated theorem provers, model search tools and computer algebra systems combined with "hidden" domain-specific algebraic theories that have been designed and optimised for automation. The feasibility of this approach is demonstrated through fully automated correctness proofs of… Expand

#### Topics from this paper

#### 17 Citations

Formal analysis of concurrent programs

- Computer Science, Mathematics
- 2015

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. Expand

Automated Verification of Relational While-Programs

- Computer Science
- RAMICS
- 2014

This paper shows how to automatically verify imperative programs for relation-based discrete structures by combining relation algebra and the well-known assertion-based verification method with automated theorem proving. Expand

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

- Mathematics, Computer Science
- ITP
- 2013

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. Expand

Tool-Based Verification of a Relational Vertex Coloring Program

- Computer Science
- RAMICS
- 2015

It is illustrated that algebraic abstraction yields verification tasks that can easily be verified with off-the-shelf theorem provers, but also reveal some shortcomings and difficulties with theorem Prover9 and the two proof assistants Coq and Isabelle/HOL. Expand

Program Verification based on Kleene Algebra in Isabelle / HOL

- 2013

Schematic Kleene algebra with tests (SKAT) supports the equational verification of flowchart scheme equivalence and captures simple while programs with assignment statements. We formalise SKAT in… Expand

Automated Engineering of Relational and Algebraic Methods in Isabelle/HOL - (Invited Tutorial)

- Mathematics, Computer Science
- RAMICS
- 2011

We present a new integration of relational and algebraic methods in the Isabelle/HOL theorem proving environment. It consists of a fine grained hierarchy of algebraic structures based on Isabelle's… Expand

Simple Rectangle-Based Functional Programs for Computing Reflexive-Transitive Closures

- Mathematics, Computer Science
- RAMICS
- 2012

It is shown how to systematically derive simple purely functional algorithms for computing the reflexive-transitive closure of directed graphs by developing simple Haskell programs for two specific choices of rectangles and showing that one of them has cubic runtime like an imperative implementation of Warshall's standard algorithm. Expand

Relational Characterisations of Paths

- Computer Science
- Arch. Formal Proofs
- 2020

A purely algebraic way to specify different kinds of paths in relation algebras and to demonstrate the applicability of the algebraic framework the correctness of three basic graph algorithms is verified. Expand

Combining relation algebra and data refinement to develop rectangle-based functional programs for reflexive-transitive closures

- Computer Science, Mathematics
- J. Log. Algebraic Methods Program.
- 2015

It is shown how to systematically derive simple purely functional algorithms for computing the reflexive–transitive closure of directed graphs using data refinement and shows that one of them has cubic running time like Warshall's standard algorithm. Expand

Verifying the Correctness of Disjoint-Set Forests with Kleene Relation Algebras

- Computer Science
- RAMiCS
- 2020

A simple relation-algebraic semantics of read and write operations on associative arrays is given that seamlessly integrate with assignments in computation models supporting while-programs and can be used for verifying programs with Associative arrays. Expand

#### References

SHOWING 1-10 OF 31 REFERENCES

Automated Reasoning in Kleene Algebra

- Mathematics, Computer Science
- CADE
- 2007

It is demonstrated that off-the-shelf automated proof and counterexample search is an interesting alternative if combined with the right domain model and Kleene algebras might therefore provide light-weight formal methods with heavy-weight automation. Expand

Automated verification of refinement laws

- Computer Science, Mathematics
- Annals of Mathematics and Artificial Intelligence
- 2009

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. Expand

Automated Deduction - CADE-21, 21st International Conference on Automated Deduction, Bremen, Germany, July 17-20, 2007, Proceedings

- Computer Science
- CADE
- 2007

Improvements in Formula Generalization on the Normalization and Unique Normalization Properties of Term Rewrite Systems and Handling Polymorphism in Automated Deduction. Expand

Modal Semirings Revisited

- Mathematics, Computer Science
- MPC
- 2008

A new axiomatisation for domain and codomain on semirings and Kleene algebras is proposed. It is simpler, more general and more flexible than a predecessor, and it is particularly suitable for… Expand

An axiomatic basis for computer programming

- Computer Science
- CACM
- 1969

An attempt is made to explore the logical foundations of computer programming by use of techniques which were first applied in the study of geometry and have later been extended to other branches of mathematics by elucidation of sets of axioms and rules of inference. Expand

Refinement Calculus: A Systematic Introduction

- Computer Science
- 1998

The book addresses specific issues related to program refinement, such as implementing specification statements, making refinements in context, and transforming iterative structures in a correctness preserving way. Expand

Assigning Meanings to Programs

- Computer Science
- 1993

This paper attempts to provide an adequate basis for formal definitions of the meanings of programs in appropriately defined programming languages, in such a way that a rigorous standard is… Expand

Combining Relational Calculus and the Dijkstra-Gries Method for Deriving Relational Programs

- Mathematics, Computer Science
- Inf. Sci.
- 1999

Abstract We show how to derive imperative programs for relation-based discrete structures by combining relational calculus and the Dijkstra–Gries method. Three examples are given, viz. Warshall's… Expand

Kleene algebra with tests

- Computer Science
- TOPL
- 1997

A purely equational proof is given, using Kleene algebra with tests and commutativity conditions, of the following classical result: every while program can be simulated by a while program with at most one while loop. Expand

Implementation of Relational Algebra Using Binary Decision Diagrams

- Mathematics, Computer Science
- RelMiCS
- 2001

It is shown how relations and their operations can efficiently be implemented by means of Binary Decision Diagrams and how it can be applied to attack computationally hard problems. Expand