Towards a Unified Theory of Operational and Axiomatic Semantics

This paper presents a nine-rule language-independent proof system that takes an operational semantics as axioms and derives program reachability properties, including ones corresponding to Hoare triples. This eliminates the need for language-specific Hoare-style proof rules to verify programs, and, implicitly, the tedious step of proving such proof rules sound for each language separately. The key proof rule is Circularity, which is coinductive in nature and allows for reasoning about constructs with repetitive behaviors (e.g., loops). The generic proof system is shown sound and has been implemented in the MatchC verifier.

[1]  Chucky Ellison,et al.  An executable formal semantics of C with applications , 2011, POPL '12.

[2]  Hervé Grall,et al.  Coinductive big-step operational semantics , 2009, Inf. Comput..

[3]  Gérard Berry,et al.  The chemical abstract machine , 1989, POPL '90.

[4]  José Meseguer,et al.  Conditioned Rewriting Logic as a United Model of Concurrency , 1992, Theor. Comput. Sci..

[5]  Grigore Rosu,et al.  From Hoare Logic to Matching Logic , 2012 .

[6]  Peter W. O'Hearn,et al.  Symbolic Execution with Separation Logic , 2005, APLAS.

[7]  Hanbing Liu,et al.  Java Program Verification via a JVM Deep Embedding in ACL2 , 2004, TPHOLs.

[8]  Tobias Nipkow Winskel is (Almost) Right: Towards a Mechanized Semantics Textbook , 1996, FSTTCS.

[9]  José Meseguer,et al.  Java+ITP: A Verification Tool Based on Hoare Logic and Algebraic Semantics , 2006, WRLA.

[10]  Grigore Rosu,et al.  Matching logic: a new program verification approach (NIER track) , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[11]  Andrew W. Appel,et al.  Verified Software Toolchain , 2012, NASA Formal Methods.

[12]  Takeo Kanade,et al.  Unifying Theories of Programming , 2010, Lecture Notes in Computer Science.

[13]  Alexander Kurz,et al.  Algebra and Coalgebra in Computer Science, Third International Conference, CALCO 2009, Udine, Italy, September 7-10, 2009. Proceedings , 2009, CALCO.

[14]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[15]  Chucky Ellison,et al.  Matching Logic: An Alternative to Hoare/Floyd Logic , 2010, AMAST.

[16]  Robert W. Floyd,et al.  Assigning meaning to programs , 1967 .

[17]  Tobias Nipkow,et al.  Winskel is (almost) Right: Towards a Mechanized Semantics Textbook , 1996, Formal Aspects of Computing.

[18]  Michael R. Lowry,et al.  Combining unit-level symbolic execution and system-level concrete execution for testing nasa software , 2008, ISSTA '08.

[19]  Grigore Rosu,et al.  Circular Coinduction: A Proof Theoretical Foundation , 2009, CALCO.

[20]  Bart Jacobs,et al.  Weakest pre-condition reasoning for Java programs with JML annotations , 2004, J. Log. Algebraic Methods Program..

[21]  Peter D. Mosses,et al.  Casl Reference Manual , 2004, Lecture Notes in Computer Science.

[22]  Grigore Rosu,et al.  From Hoare Logic to Matching Logic Reachability , 2012, FM.

[23]  Grigore Rosu,et al.  An overview of the K semantic framework , 2010, J. Log. Algebraic Methods Program..

[24]  Bernhard Beckert,et al.  Verification of Object-Oriented Software. The KeY Approach - Foreword by K. Rustan M. Leino , 2007, The KeY Approach.

[25]  Lauretta O. Osho,et al.  Axiomatic Basis for Computer Programming , 2013 .

[26]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[27]  Bernhard Beckert,et al.  Dynamic Logic , 2007, The KeY Approach.

[28]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[29]  David Aspinall,et al.  Formalising Java's Data Race Free Guarantee , 2007, TPHOLs.

[30]  Matthias Felleisen,et al.  Semantics Engineering with PLT Redex , 2009 .