A Sequent Calculus for Integer Arithmetic with Counterexample Generation

We introduce a calculus for handling integer arithmetic in first-order logic. The method is tailored to Java program verification and meant to be used both as a supporting procedure and simplifier during interactive verification and as an automated tool for discharging (ground) proof obligations. There are four main components: a complete procedure for linear equations, a complete procedure for linear inequalities, an incomplete procedure for nonlinear (polynomial) equations, and an incomplete procedure for nonlinear inequalities. The calculus is complete for the generation of counterexamples for invalid ground formula in integer arithmetic. All parts described here have been implemented as part of the KeY verification system.

[1]  Amy P. Felty,et al.  The Coq proof assistant user's guide : version 5.6 , 1990 .

[2]  Natarajan Shankar,et al.  PVS: Combining Specification, Proof Checking, and Model Checking , 1996, FMCAD.

[3]  Deepak Kapur,et al.  Reasoning about nonlinear inequality constraints: a multi-level approach , 1989 .

[4]  Zohar Manna,et al.  Proving termination with multiset orderings , 1979, CACM.

[5]  Wojciech Mostowski,et al.  Fully Verified Java Card API Reference Implementation , 2007, VERIFY.

[6]  Melvin Fitting,et al.  First-Order Logic and Automated Theorem Proving , 1990, Graduate Texts in Computer Science.

[7]  Bart Jacobs,et al.  Specifying and Verifying a Decimal Representation in Java for Smart Cards , 2002, AMAST.

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

[9]  James C. King,et al.  Symbolic execution and program testing , 1976, CACM.

[10]  Warren A. Hunt,et al.  Linear and Nonlinear Arithmetic in ACL2 , 2003, CHARME.

[11]  J. S. Moore,et al.  ACL2: an industrial strength version of Nqthm , 1996, Proceedings of 11th Annual Conference on Computer Assurance. COMPASS '96.

[12]  N. A C H U M D E R S H O W I T Z Termination of Rewriting' , 2022 .

[13]  Bruno Buchberger,et al.  A critical-pair/completion algorithm for finitely generated ideals in rings , 1983, Logic and Machines.

[14]  Donald E. Knuth,et al.  The art of computer programming. Vol.2: Seminumerical algorithms , 1981 .

[15]  Donald E. Knuth The Art of Computer Programming 2 / Seminumerical Algorithms , 1971 .

[16]  Muhammad Ali Shah,et al.  Proving Programs Incorrect Using a Sequent Calculus for Java Dynamic Logic , 2007, TAP.

[17]  Alexander Schrijver,et al.  Theory of linear and integer programming , 1986, Wiley-Interscience series in discrete mathematics and optimization.

[18]  John Harrison,et al.  The HOL Light manual (1.1) , 2000 .