Tool-Based Verification of a Relational Vertex Coloring Program

We present different approaches of using a special purpose computer algebra system and theorem provers in software verification. To this end, we first develop a purely algebraic while-program for computing a vertex coloring of an undirected (loop-free) graph. For showing its correctness, we then combine the well-known assertion-based verification method with relation-algebraic calculations. Based on this, we show how automatically to test loop-invariants by means of the RelView tool and also compare the usage of three different theorem provers in respect to the verification of the proof obligations: the automated theorem prover Prover9 and the two proof assistants Coq and Isabelle/HOL. As a result, we illustrate 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 provers that are nowadays available.

[1]  Georg Struth,et al.  Relational and Kleene-Algebraic Methods in Computer Science , 2003, Lecture Notes in Computer Science.

[2]  J. R. Büchi Review: Louise H. Chin, Alfred Tarski, Distributive and Modular Laws in the Arithmetic of Relation Algebras , 1953 .

[3]  Alfred Tarski,et al.  Distributive and Modular Laws in the Arithmetic of Relation Algebras , 1953 .

[4]  Rudolf Berghammer,et al.  Automated Verification of Relational While-Programs , 2014, RAMICS.

[5]  Rudolf Berghammer,et al.  Applying relation algebra and RelView to solve problems on orders and lattices , 2008, Acta Informatica.

[6]  Rudolf Berghammer,et al.  Deriving relational programs for computing kernels by reconstructing a proof of Richardson's theorem , 2000, Sci. Comput. Program..

[7]  Henning Schnoor,et al.  Relation Algebra and RelView Applied to Approval Voting , 2014, RAMICS.

[8]  Yves Bertot,et al.  Interactive Theorem Proving and Program Development: Coq'Art The Calculus of Inductive Constructions , 2010 .

[9]  A. Tarski,et al.  A Formalization Of Set Theory Without Variables , 1987 .

[10]  Roger D. Maddux,et al.  Relation Algebras , 1997, Relational Methods in Computer Science.

[11]  Ute Dreher Relations And Graphs Discrete Mathematics For Computer Scientists , 2016 .

[12]  Damien Pous,et al.  Kleene Algebra with Tests and Coq Tools for while Programs , 2013, ITP.

[13]  Alfred Tarski,et al.  Relational selves as self-affirmational resources , 2008 .

[14]  Lawrence C. Paulson,et al.  Extending Sledgehammer with SMT Solvers , 2011, Journal of Automated Reasoning.

[15]  Stephan Merz,et al.  Interactive Theorem Proving , 2016, Lecture Notes in Computer Science.

[16]  E. Casari Logic and the Foundations of Mathematics , 1981 .

[17]  Georg Struth,et al.  Relation Algebra , 2014, Arch. Formal Proofs.

[18]  Rudolf Berghammer,et al.  Relational depth-first-search with applications , 2001, Inf. Sci..

[19]  Michael Winter,et al.  Embedding mappings and splittings with applications , 2009, Acta Informatica.

[20]  Wolfram Kahl,et al.  Calculational Relation-Algebraic Proofs in Isabelle/Isar , 2003, RelMiCS.

[21]  Georg Struth,et al.  Automated Reasoning in Kleene Algebra , 2007, CADE.

[22]  Frank Neumann,et al.  RelView - An OBDD-Based Computer Algebra System for Relations , 2005, CASC.

[23]  Georg Struth,et al.  Kleene Algebra with Tests and Demonic Refinement Algebras , 2014, Arch. Formal Proofs.

[24]  Han-Hing Dang,et al.  First-Order Theorem Prover Evaluation w . r . t . Relation-and Kleene Algebra , 2013 .

[25]  J. Donald Monk Review: Alfred Tarski and Steven Givant, A formalization of set theory without variables , 1989 .

[26]  Markus Wenzel,et al.  Isabelle, Isar - a versatile environment for human readable formal proof documents , 2002 .

[27]  Gunther Schmidt,et al.  Relational Mathematics , 2010, Encyclopedia of Mathematics and its Applications.

[28]  Michael Winter,et al.  Investigating and Computing Bipartitions with Algebraic Means , 2015, RAMICS.

[29]  Rudolf Berghammer Combining Relational Calculus and the Dijkstra-Gries Method for Deriving Relational Programs , 1999, Inf. Sci..

[30]  Takeo Kanade,et al.  Relational and Algebraic Methods in Computer Science , 2012, Lecture Notes in Computer Science.

[31]  Maria Paola Bonacina,et al.  Automated Reasoning , 2014, Lecture Notes in Computer Science.

[32]  W. D. Duthie Review: Alfred Tarski, On the Calculus of Relations , 1942 .

[33]  Georg Struth,et al.  On Automating the Calculus of Relations , 2008, IJCAR.

[34]  Christine Paulin-Mohring,et al.  Mathematics of Program Construction , 1998, Lecture Notes in Computer Science.

[35]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[36]  Simon Foster,et al.  Automated Engineering of Relational and Algebraic Methods in Isabelle/HOL - (Invited Tutorial) , 2011, RAMiCS.

[37]  Georg Struth,et al.  On Automated Program Construction and Verification , 2010, MPC.