Ranking Templates for Linear Loops

Size: px
Start display at page:

Download "Ranking Templates for Linear Loops"

Transcription

1 Ranking Templates for Linear Loops Jan Leike Matthias Heizmann The Australian National University University of Freiburg

2 Termination safety reduced to reachability - liveness reduced to termination

3 Termination safety reduced to reachability - liveness reduced to termination neither provable nor refutable by testing

4 Termination safety reduced to reachability - liveness reduced to termination neither provable nor refutable by testing computing fixpoint on sets of states does not work

5 Termination safety reduced to reachability - liveness reduced to termination neither provable nor refutable by testing computing fixpoint on sets of states does not work ranking function (decreasing, bounded, contradiction!)

6 Research directions 1. practical tools for termination analysis Urban, Miné An Abstract Domain to Infer Ordinal-Valued Ranking Functions (ESOP 2014) Brockschmidt, Cook, Fuhs Better Termination Proving through Cooperation (CAV 2013) Kroening, Sharygina, Tsitovich, Wintersteiger (CAV 2010) Termination analysis with compositional transition invariants Cook, B., Podelski, A., Rybalchenko, A. Terminator: Beyond safety (CAV 2006) decidability of terminaton for restricted classes of programs Ben-Amram, Genaim Ranking functions for linear-constraint loops (POPL 2013) Ben-Amram, Genaim, Masud On the Termination of Integer Loops (VMCAI 2012) Tiwari Termination of Linear Programs (CAV 2004) constraint-based synthesis of ranking functions for loops Cook, Kroening, Rümmer, Wintersteiger Ranking function synthesis for bit-vector relations (FMSD 2013) Rybalchenko Constraint solving for program verification theory and practice by example (CAV 2010) Colón, Sankaranarayanan, Sipma Linear invariant generation using non-linear constraint solving (CAV 2003)...

7 Ranking functions for loops - applications termination analysis for programs Terminator (Cook, Rybalchenko, et al.) T2 (Brockschmidt, et al.) Tan (Chen, Kroening, Wintersteiger, et al.) Ultimate Büchi Automizer (H. et al.)

8 Ranking functions for loops - applications termination analysis for programs Terminator (Cook, Rybalchenko, et al.) T2 (Brockschmidt, et al.) Tan (Chen, Kroening, Wintersteiger, et al.) Ultimate Büchi Automizer (H. et al.) cost analysis stability of hybrid systems

9 affine-linear ranking functions Colón, Sipma Synthesis of Linear Ranking Functions (TACAS 2001) Podelski, Rybalchenko A complete method for the synthesis of linear ranking functions (VMCAI 2004) Bradley, Manna, Sipma Termination Analysis of Integer Linear Loops (CONCUR 2005) Cook, Kroening, Rümmer, Wintersteiger Ranking function synthesis for bit-vector relations (FMSD 2013) Ben-Amram, Genaim Ranking functions for linear-constraint loops (POPL 2013)

10 affine-linear ranking functions Colón, Sipma Synthesis of Linear Ranking Functions (TACAS 2001) Podelski, Rybalchenko A complete method for the synthesis of linear ranking functions (VMCAI 2004) Bradley, Manna, Sipma Termination Analysis of Integer Linear Loops (CONCUR 2005) Cook, Kroening, Rümmer, Wintersteiger Ranking function synthesis for bit-vector relations (FMSD 2013) Ben-Amram, Genaim Ranking functions for linear-constraint loops (POPL 2013) lexicographic linear ranking functions Bradley, Manna, Sipma Linear ranking with reachability (CAV 2005) Alias, Darte, Feautrier, Gonnord Multi-dimensional Rankings, Program Termination, and Complexity Bounds of Flowchart Programs (SAS 2010) Cook, See, Zuleger Ramsey vs. Lexicographic Termination Proving (TACAS 2013)

11 affine-linear ranking functions Colón, Sipma Synthesis of Linear Ranking Functions (TACAS 2001) Podelski, Rybalchenko A complete method for the synthesis of linear ranking functions (VMCAI 2004) Bradley, Manna, Sipma Termination Analysis of Integer Linear Loops (CONCUR 2005) Cook, Kroening, Rümmer, Wintersteiger Ranking function synthesis for bit-vector relations (FMSD 2013) Ben-Amram, Genaim Ranking functions for linear-constraint loops (POPL 2013) lexicographic linear ranking functions Bradley, Manna, Sipma Linear ranking with reachability (CAV 2005) Alias, Darte, Feautrier, Gonnord Multi-dimensional Rankings, Program Termination, and Complexity Bounds of Flowchart Programs (SAS 2010) Cook, See, Zuleger Ramsey vs. Lexicographic Termination Proving (TACAS 2013) piecewise linear ranking functions Urban, Miné An Abstract Domain to Infer Ordinal-Valued Ranking Functions (ESOP 2014)

12 affine-linear ranking functions Colón, Sipma Synthesis of Linear Ranking Functions (TACAS 2001) Podelski, Rybalchenko A complete method for the synthesis of linear ranking functions (VMCAI 2004) Bradley, Manna, Sipma Termination Analysis of Integer Linear Loops (CONCUR 2005) Cook, Kroening, Rümmer, Wintersteiger Ranking function synthesis for bit-vector relations (FMSD 2013) Ben-Amram, Genaim Ranking functions for linear-constraint loops (POPL 2013) lexicographic linear ranking functions Bradley, Manna, Sipma Linear ranking with reachability (CAV 2005) Alias, Darte, Feautrier, Gonnord Multi-dimensional Rankings, Program Termination, and Complexity Bounds of Flowchart Programs (SAS 2010) Cook, See, Zuleger Ramsey vs. Lexicographic Termination Proving (TACAS 2013) piecewise linear ranking functions Urban, Miné An Abstract Domain to Infer Ordinal-Valued Ranking Functions (ESOP 2014) multiphase ranking functions Bradley, Manna, Sipma The polyranking principle (ICALP 2005)

13 one method to synthesize them all

14 Ranking function Loop(x, x )

15 Ranking function xx. Loop(x, x ) f(x) > f(x ) f(x) > 0 decreasing bounded

16 Synthesis of ranking function xx. Loop(x, x ) f(x) > f(x ) f(x) > 0 decreasing bounded Idea: write definition as logical formula, let theorem prover find satisfying assignment for free variables

17 Synthesis of ranking function xx. Loop(x, x ) f(x) > f(x ) f(x) > 0 decreasing bounded Idea: write definition as logical formula, let theorem prover find satisfying assignment for free variables Problem: no theorem prover for domain of functions Solution: use template T(x, x )

18 Synthesis of ranking function xx. Loop(x, x ) T(x, x ) Idea: write definition as logical formula, let theorem prover find satisfying assignment for free variables Problem: no theorem prover for domain of functions Solution: use template T(x, x )

19 Synthesis of affine-linear ranking function xx. Loop(x, x ) T(x, x ) where the template T(x, x ) is f (x) > f (x ) f (x) > 0 decreasing bounded and f (x) is a shorthand for the affine-linear term c 1 x c n x 1 + c 0

20 Synthesis of affine-linear ranking function xx. Loop(x, x ) T(x, x ) where the template T(x, x ) is f (x) > f (x ) f (x) > 0 decreasing bounded and f (x) is a shorthand for the affine-linear term c 1 x c n x 1 + c 0 Difficult! universal quantification ( x... ) nonlinear arithmetic (c 1 x 1... )

21 Synthesis of affine-linear ranking function xx. Loop(x, x ) T(x, x ) where the template T(x, x ) is f (x) > f (x ) f (x) > 0 decreasing bounded and f (x) is a shorthand for the affine-linear term c 1 x c n x 1 + c 0 Difficult! universal quantification ( x... ) nonlinear arithmetic (c 1 x 1... ) Lemma (Farkas) x. (......) iff λ (...)

22 Synthesis of affine-linear ranking function xx. Loop(x, x ) T(x, x ) where the template T(x, x ) is f (x) > f (x ) f (x) > 0 decreasing bounded and f (x) is a shorthand for the affine-linear term c 1 x c n x 1 + c 0 Difficult! universal quantification ( x... ) nonlinear arithmetic (c 1 x 1... ) Lemma (Farkas) x. (......) iff λ (...) Colón, Sipma Synthesis of Linear Ranking Functions (TACAS 2001)

23 Lexicographic ranking function Lexicographic ranking function program state lexicographic ordered tuple Lexicographic order: e.g. (2, 3, 4) (2, 2, 9)

24 Lexicographic ranking function Lexicographic ranking function program state lexicographic ordered tuple Lexicographic order: e.g. (2, 3, 4) (2, 2, 9) Linear lexicographic ranking function each entry of the tuple defined by linear function f(x) = ( f 1 (x),..., f k (x) )

25 Lexicographic ranking function Lexicographic ranking function program state lexicographic ordered tuple Lexicographic order: e.g. (2, 3, 4) (2, 2, 9) Linear lexicographic ranking function each entry of the tuple defined by linear function Recall: Idea: f(x) = ( f 1 (x),..., f k (x) ) write definition as logical formula, let theorem prover find satisfying assignment for free variables

26 Linear lexicographic ranking functions f 1 bounded f 2 bounded T(x, x ) := f 1 (x) 0 f 2 (x ) 0 ( f 1 (x) > f 1 (x ) f 1 (x) f 1 (x ) ) f 2 (x) > f 2 (x ) f 1 decreasing f 1 not increasing f 2 decreasing

27 Linear lexicographic ranking functions f 1 bounded f 2 bounded T(x, x ) := f 1 (x) 0 f 2 (x ) 0 ( f 1 (x) > f 1 (x ) f 1 (x) f 1 (x ) ) f 2 (x) > f 2 (x ) f 1 decreasing f 1 not increasing f 2 decreasing each f(x) is a shorthand for an affine-linear term c 1 x c n x 1 + c 0

28 Linear lexicographic ranking functions f 1 bounded f 2 bounded T(x, x ) := f 1 (x) 0 f 2 (x ) 0 ( f 1 (x) > f 1 (x ) f 1 (x) f 1 (x ) ) f 2 (x) > f 2 (x ) f 1 decreasing f 1 not increasing f 2 decreasing xx. Loop(x, x ) T(x, x )

29 Linear lexicographic ranking functions f 1 bounded f 2 bounded T(x, x ) := f 1 (x) 0 f 2 (x ) 0 ( f 1 (x) > f 1 (x ) f 1 (x) f 1 (x ) ) f 2 (x) > f 2 (x ) f 1 decreasing f 1 not increasing f 2 decreasing xx. Loop(x, x ) T(x, x ) Lemma (Farkas) x. (......) iff λ (...)

30 Linear lexicographic ranking functions f 1 bounded f 2 bounded T(x, x ) := f 1 (x) 0 f 2 (x ) 0 ( f 1 (x) > f 1 (x ) f 1 (x) f 1 (x ) ) f 2 (x) > f 2 (x ) f 1 decreasing f 1 not increasing f 2 decreasing xx. Loop(x, x ) T(x, x ) Lemma (Farkas) Theorem (Motzkin) x. (......) iff λ (...) x. ( <... ) iff λ (...)

31 Ranking Template xx. Loop(x, x ) T(x, x ) building blocks linear functions f (x) = c 1 x c n x 1 + c 0

32 Ranking Template xx. Loop(x, x ) T(x, x ) building blocks linear functions f (x) = c 1 x c n x 1 + c 0 boolean combinations of linear inequalities (Motzkin applicable)

33 Ranking Template xx. Loop(x, x ) T(x, x ) building blocks linear functions f (x) = c 1 x c n x 1 + c 0 boolean combinations of linear inequalities (Motzkin applicable) well-founded

34 Ranking Template xx. Loop(x, x ) T(x, x ) building blocks linear functions f (x) = c 1 x c n x 1 + c 0 boolean combinations of linear inequalities (Motzkin applicable) well-founded Definition (Linear ranking template) A linear ranking template T(x, x ) is a boolean combination whose atoms are of the following form α f f(x) + β f f(x ) 0, f F where each f(x) is an affine-linear term c 1 x c n x 1 + c 0, each α f, and β f is a constant and {, >}. such that each instance of T(x, x ) defines a well-founded relation.

35 affine-linear ranking function template Taffine(x, x ) Lemma the template Taffine(x, x ) is a linear ranking template. linear lexicographic ranking function k-lexicographic template Tk-lex(x, x ) Lemma the template Tk-lex(x, x ) is a linear ranking template, for each k piecewise linear ranking function k-piece template Tk-piece(x, x ) Lemma the template Tk-piece(x, x ) is a linear ranking template, for each k multiphase linear ranking function k-phase template Tk-phase(x, x ) Lemma the template Tk-phase(x, x ) is a linear ranking template, for each k

36 Why has no one used this method before? Our explanation: recent progress in solving nonlinear arithmetic Jovanovic,Moura Solving non-linear arithmetic (IJCAR 2012) SMT solver Z3

37 Our tool: LassoRanker

38 New kind of ranking function? You can synthesize your new ranking function automatically in three steps. write down a template T(x, x ) for this ranking function prove that each instance of T(x, x ) is a well-founded relation add template T(x, x ) to our tool LassoRanker

Synthesizing Ranking Functions from Bits and Pieces

Synthesizing Ranking Functions from Bits and Pieces Synthesizing Ranking Functions from Bits and Pieces Caterina Urban 1,2, Arie Gurfinkel 2, and Temesghen Kahsai 2,3 1 ETH Zürich, Switzerland 2 Carnegie Mellon University, USA 3 NASA Ames Research Center,

More information

Synthesizing Ranking Functions from Bits and Pieces

Synthesizing Ranking Functions from Bits and Pieces Synthesizing Ranking Functions from Bits and Pieces Caterina Urban 1,2, Arie Gurfinkel 2, and Temesghen Kahsai 2,3 1 ETH Zürich, Switzerland 2 Carnegie Mellon University, USA 3 NASA Ames Research Center,

More information

Ranking Functions. Linear-Constraint Loops

Ranking Functions. Linear-Constraint Loops for Linear-Constraint Loops Amir Ben-Amram 1 for Loops Example 1 (GCD program): while (x > 1, y > 1) if x

More information

Termination Analysis of Java Bytecode

Termination Analysis of Java Bytecode Termination Analysis of Java Bytecode E. Albert 1, P. Arenas 1, M. Codish 2, S. Genaim 3, G. Puebla 3, and D. Zanardini 3 1 DSIC, Complutense University of Madrid, E-28040 Madrid, Spain 2 Computer Science,

More information

Tree Interpolation in Vampire

Tree Interpolation in Vampire Tree Interpolation in Vampire Régis Blanc 1, Ashutosh Gupta 2, Laura Kovács 3, and Bernhard Kragl 4 1 EPFL 2 IST Austria 3 Chalmers 4 TU Vienna Abstract. We describe new extensions of the Vampire theorem

More information

Syntax-Guided Termination Analysis

Syntax-Guided Termination Analysis Syntax-Guided Termination Analysis Grigory Fedyukovich, Yueling Zhang, Aarti Gupta Princeton University, Princeton, USA {grigoryf,yuelingz,aartig}@cs.princeton.edu Abstract. We present new algorithms for

More information

Proving Program. termination. review articles. In contrast to popular belief, proving termination is not always impossible.

Proving Program. termination. review articles. In contrast to popular belief, proving termination is not always impossible. In contrast to popular belief, proving termination is not always impossible. By Byron Cook, Andreas Podelski, and Andrey Rybalchenko doi:10.1145/1941487.1941509 Proving Program Termination T he program

More information

Proof Pearl: The Termination Analysis of Terminator

Proof Pearl: The Termination Analysis of Terminator Proof Pearl: The Termination Analysis of Terminator Joe Hurd Computing Laboratory Oxford University joe.hurd@comlab.ox.ac.uk Abstract. Terminator is a static analysis tool developed by Microsoft Research

More information

Yices 1.0: An Efficient SMT Solver

Yices 1.0: An Efficient SMT Solver Yices 1.0: An Efficient SMT Solver SMT-COMP 06 Leonardo de Moura (joint work with Bruno Dutertre) {demoura, bruno}@csl.sri.com. Computer Science Laboratory SRI International Menlo Park, CA Yices: An Efficient

More information

The Apron Library. Bertrand Jeannet and Antoine Miné. CAV 09 conference 02/07/2009 INRIA, CNRS/ENS

The Apron Library. Bertrand Jeannet and Antoine Miné. CAV 09 conference 02/07/2009 INRIA, CNRS/ENS The Apron Library Bertrand Jeannet and Antoine Miné INRIA, CNRS/ENS CAV 09 conference 02/07/2009 Context : Static Analysis What is it about? Discover properties of a program statically and automatically.

More information

Certification of Termination for Integer Transition Systems

Certification of Termination for Integer Transition Systems Certification of Termination for Integer Transition Systems Marc Brockschmidt, Sebastiaan Joosten, René Thiemann and Akihisa Yamada Sebastiaan.Joosten@uibk.ac.at Supported by FWF project Y 757 Reliable

More information

A Decision Tree Abstract Domain for Proving Conditional Termination

A Decision Tree Abstract Domain for Proving Conditional Termination A Decision Tree Abstract Domain for Proving Conditional Termination Caterina Urban, Antoine Miné To cite this version: Caterina Urban, Antoine Miné. A Decision Tree Abstract Domain for Proving Conditional

More information

Alternation for Termination

Alternation for Termination Alternation for Termination William R. Harris 1, Akash Lal 2, Aditya V. Nori 2, and Sriram K. Rajamani 2 1 University of Wisconsin; Madison, WI, USA 2 Microsoft Research India; Bangalore, India Abstract.

More information

Proving program termination

Proving program termination Proving program termination In contrast to popular belief, proving termination is not always impossible Byron Cook ABSTRACT After Turing proved the halting problem undecidable in 1936, the dream of automatic

More information

Towards certification of TLA + proof obligations with SMT solvers

Towards certification of TLA + proof obligations with SMT solvers Towards certification of TLA + proof obligations with SMT solvers Stephan Merz and Hernán Vanzetto INRIA Nancy Grand-Est & LORIA Nancy, France Abstract TLA + is a formal specification language that is

More information

Using Loop Bound Analysis For Invariant Generation

Using Loop Bound Analysis For Invariant Generation Using Loop Bound Analysis For Invariant Generation Pavel Čadek, Clemens Danninger, Moritz Sinn, Florian Zuleger TU Wien St. Pölten UAS Abstract The problem of loop bound analysis can conceptually be seen

More information

Proving Termination of Programs with Bitvector Arithmetic by Symbolic Execution

Proving Termination of Programs with Bitvector Arithmetic by Symbolic Execution Proving Termination of Programs with Bitvector Arithmetic by Symbolic Execution Jera Hensel, Jürgen Giesl, Florian Frohn, and Thomas Ströder LuFG Informatik 2, RWTH Aachen University, Germany Abstract.

More information

Bounded Model Checking with Parametric Data Structures

Bounded Model Checking with Parametric Data Structures Bounded Model Checking with Marc Herbstritt (joint work with Erika Ábrahám, Bernd Becker, Martin Steffen) www.avacs.org August 15 2006 4th International Workshop on Bounded Model Checking Context Automated

More information

Automatic termination proofs for programs with shape-shifting heaps

Automatic termination proofs for programs with shape-shifting heaps To appear in: CAV 2006. Automatic termination proofs for programs with shape-shifting heaps Josh Berdine 1, Byron Cook 1, Dino Distefano 2, and Peter W. O Hearn 1,2 1 Microsoft Research 2 Queen Mary, University

More information

Interpolation-based Software Verification with Wolverine

Interpolation-based Software Verification with Wolverine Interpolation-based Software Verification with Wolverine Daniel Kroening 1 and Georg Weissenbacher 2 1 Computer Science Department, Oxford University 2 Department of Electrical Engineering, Princeton University

More information

Interprocedurally Analysing Linear Inequality Relations

Interprocedurally Analysing Linear Inequality Relations Interprocedurally Analysing Linear Inequality Relations Helmut Seidl, Andrea Flexeder and Michael Petter Technische Universität München, Boltzmannstrasse 3, 85748 Garching, Germany, {seidl, flexeder, petter}@cs.tum.edu,

More information

Abstract Interpretation

Abstract Interpretation Abstract Interpretation Ranjit Jhala, UC San Diego April 22, 2013 Fundamental Challenge of Program Analysis How to infer (loop) invariants? Fundamental Challenge of Program Analysis Key issue for any analysis

More information

VS 3 : SMT Solvers for Program Verification

VS 3 : SMT Solvers for Program Verification VS 3 : SMT Solvers for Program Verification Saurabh Srivastava 1,, Sumit Gulwani 2, and Jeffrey S. Foster 1 1 University of Maryland, College Park, {saurabhs,jfoster}@cs.umd.edu 2 Microsoft Research, Redmond,

More information

Duet: Static Analysis for Unbounded Parallelism

Duet: Static Analysis for Unbounded Parallelism Duet: Static Analysis for Unbounded Parallelism Azadeh Farzan and Zachary Kincaid University of Toronto Abstract. Duet is a static analysis tool for concurrent programs in which the number of executing

More information

Yices 1.0: An Efficient SMT Solver

Yices 1.0: An Efficient SMT Solver Yices 1.0: An Efficient SMT Solver AFM 06 Tutorial Leonardo de Moura (joint work with Bruno Dutertre) {demoura, bruno}@csl.sri.com. Computer Science Laboratory SRI International Menlo Park, CA Yices: An

More information

Xuandong Li. BACH: Path-oriented Reachability Checker of Linear Hybrid Automata

Xuandong Li. BACH: Path-oriented Reachability Checker of Linear Hybrid Automata BACH: Path-oriented Reachability Checker of Linear Hybrid Automata Xuandong Li Department of Computer Science and Technology, Nanjing University, P.R.China Outline Preliminary Knowledge Path-oriented Reachability

More information

Summaries for While Programs with Recursion

Summaries for While Programs with Recursion I N F O R M A T I K Summaries for While Programs with Recursion Andreas Podelski Ina Schaefer Silke Wagner MPI I 2004 1 007 December 2004 FORSCHUNGSBERICHT RESEARCH REPORT M A X - P L A N C K - I N S T

More information

Numerical Computations and Formal Methods

Numerical Computations and Formal Methods Program verification Formal arithmetic Decision procedures Proval, Laboratoire de Recherche en Informatique INRIA Saclay IdF, Université Paris Sud, CNRS October 28, 2009 Program verification Formal arithmetic

More information

TNT. Runtime Errors. Proving Non-Termination. Proving Non-Termination. Non-Termination Errors. TNT: Testing Non-Termination

TNT. Runtime Errors. Proving Non-Termination. Proving Non-Termination. Non-Termination Errors. TNT: Testing Non-Termination Runtime Errors Proving Non-Termination Ashutosh K. Gupta Thomas A. Henzinger Rupak Majumdar MPI-SWS EPFL UCLA Andrey Rybalchenko Ru-Gang Xu MPI-SWS UCLA 2 Non-Termination Errors Proving Non-Termination...

More information

Abstraction Refinement for Quantified Array Assertions

Abstraction Refinement for Quantified Array Assertions Abstraction Refinement for Quantified Array Assertions Mohamed Nassim Seghir 1,, Andreas Podelski 1, and Thomas Wies 1,2 1 University of Freiburg, Germany 2 EPFL, Switzerland Abstract. We present an abstraction

More information

From Z3 to Lean, Efficient Verification

From Z3 to Lean, Efficient Verification From Z3 to Lean, Efficient Verification Turing Gateway to Mathematics, 19 July 2017 Leonardo de Moura, Microsoft Research Joint work with Nikolaj Bjorner and Christoph Wintersteiger Satisfiability Solution/Model

More information

Automated Debugging with Error Invariants

Automated Debugging with Error Invariants Automated Debugging with Error Invariants Thomas Wies New York University joint work with Jürgen Christ, Evren Ermis (Freiburg University), Martin Schäf (SRI), Daniel Schwartz-Narbonne (NYU) Faulty Shell

More information

Finding Loop Invariants for Programs over Arrays UsingaTheoremProver

Finding Loop Invariants for Programs over Arrays UsingaTheoremProver Finding Loop Invariants for Programs over Arrays UsingaTheoremProver Laura Kovács 1 and Andrei Voronkov 2 1 EPFL 2 University of Manchester Abstract. We present a new method for automatic generation of

More information

SMT-LIB for HOL. Daniel Kroening Philipp Rümmer Georg Weissenbacher Oxford University Computing Laboratory. ITP Workshop MSR Cambridge 25 August 2009

SMT-LIB for HOL. Daniel Kroening Philipp Rümmer Georg Weissenbacher Oxford University Computing Laboratory. ITP Workshop MSR Cambridge 25 August 2009 1 / 13 SMT-LIB for HOL Daniel Kroening Philipp Rümmer Georg Weissenbacher Oxford University Computing Laboratory ITP Workshop MSR Cambridge 25 August 2009 2 / 13 The SMT-LIB Standard SMT Satisfiability

More information

Combining Induction, Deduction and Structure for Synthesis

Combining Induction, Deduction and Structure for Synthesis Combining Induction, Deduction and Structure for Synthesis Sanjit A. Seshia Associate Professor EECS Department UC Berkeley Students: S. Jha, B. Brady, J. Kotker, W.Li Collaborators: R. Bryant, S. Gulwani,

More information

Numerical Optimization

Numerical Optimization Convex Sets Computer Science and Automation Indian Institute of Science Bangalore 560 012, India. NPTEL Course on Let x 1, x 2 R n, x 1 x 2. Line and line segment Line passing through x 1 and x 2 : {y

More information

Non-context-Free Languages. CS215, Lecture 5 c

Non-context-Free Languages. CS215, Lecture 5 c Non-context-Free Languages CS215 Lecture 5 c 2007 1 The Pumping Lemma Theorem (Pumping Lemma) Let be context-free There exists a positive integer divided into five pieces Proof for for each and Let and

More information

Formally Certified Satisfiability Solving

Formally Certified Satisfiability Solving SAT/SMT Proof Checking Verifying SAT Solver Code Future Work Computer Science, The University of Iowa, USA April 23, 2012 Seoul National University SAT/SMT Proof Checking Verifying SAT Solver Code Future

More information

Property-Directed Shape Analysis

Property-Directed Shape Analysis Property-Directed Shape Analysis S. Itzhaky 1, N. Bjørner 2, T. Reps 3,4, M. Sagiv 1, and A. Thakur 3 1 Tel Aviv University, Tel Aviv, Israel 2 Microsoft Research, USA 3 University of Wisconsin Madison,

More information

Finding heap-bounds for hardware synthesis

Finding heap-bounds for hardware synthesis Finding heap-bounds for hardware synthesis B. Cook MSR A. Gupta MPI-SWS S. Magill CMU A. Rybalchenko MPI-SWS J. Simsa CMU S. Singh MSR V. Vafeiadis MSR Abstract Dynamically allocated and manipulated data

More information

Resource Aware ML. 1 Introduction. Jan Hoffmann 1, Klaus Aehlig 2, and Martin Hofmann 2

Resource Aware ML. 1 Introduction. Jan Hoffmann 1, Klaus Aehlig 2, and Martin Hofmann 2 Resource Aware ML Jan Hoffmann 1, Klaus Aehlig 2, and Martin Hofmann 2 1 Yale University 2 Ludwig-Maximilians-Universität München Abstract. The automatic determination of the quantitative resource consumption

More information

Decision Procedures for Recursive Data Structures with Integer Constraints

Decision Procedures for Recursive Data Structures with Integer Constraints Decision Procedures for Recursive Data Structures with Ting Zhang, Henny B Sipma, Zohar Manna Stanford University tingz,sipma,zm@csstanfordedu STeP Group, June 29, 2004 IJCAR 2004 - p 1/31 Outline Outline

More information

The Acyclicity Inference of COSTA

The Acyclicity Inference of COSTA 1 Introduction The Acyclicity Inference of COSTA Samir Genaim DSIC, Complutense University of Madrid (UCM), Spain Damiano Zanardini CLIP, DIA, Technical University of Madrid (UPM), Spain Programming languages

More information

Lecture 6: Faces, Facets

Lecture 6: Faces, Facets IE 511: Integer Programming, Spring 2019 31 Jan, 2019 Lecturer: Karthik Chandrasekaran Lecture 6: Faces, Facets Scribe: Setareh Taki Disclaimer: These notes have not been subjected to the usual scrutiny

More information

Predicate Refinement Heuristics in Program Verification with CEGAR

Predicate Refinement Heuristics in Program Verification with CEGAR Predicate Refinement Heuristics in Program Verification with CEGAR Tachio Terauchi (JAIST) Part of this is joint work with Hiroshi Unno (U. Tsukuba) 1 Predicate Abstraction with CEGAR Iteratively generate

More information

POLYHEDRAL GEOMETRY. Convex functions and sets. Mathematical Programming Niels Lauritzen Recall that a subset C R n is convex if

POLYHEDRAL GEOMETRY. Convex functions and sets. Mathematical Programming Niels Lauritzen Recall that a subset C R n is convex if POLYHEDRAL GEOMETRY Mathematical Programming Niels Lauritzen 7.9.2007 Convex functions and sets Recall that a subset C R n is convex if {λx + (1 λ)y 0 λ 1} C for every x, y C and 0 λ 1. A function f :

More information

The Reachability-Bound Problem

The Reachability-Bound Problem The Reachability-Bound Problem Sumit Gulwani Microsoft Research sumitg@microsoft.com Florian Zuleger TU Darmstadt zuleger@forstye.cs.tu-darmstadt.de Abstract We define the reachability-bound problem to

More information

Invariant Generation in Vampire

Invariant Generation in Vampire Invariant Generation in Vampire Kryštof Hoder 1,LauraKovács 2, and Andrei Voronkov 1 1 University of Manchester 2 TU Vienna Abstract. This paper describes a loop invariant generator implemented in the

More information

Counterexamples with Loops for Predicate Abstraction

Counterexamples with Loops for Predicate Abstraction Counterexamples with Loops for Predicate Abstraction Daniel Kroening and Georg Weissenbacher Computer Systems Institute, ETH Zurich, 8092 Zurich, Switzerland {daniel.kroening, georg.weissenbacher}@inf.ethz.ch

More information

Arithmetic Strengthening for Shape Analysis

Arithmetic Strengthening for Shape Analysis Arithmetic Strengthening for Shape Analysis Stephen Magill 1, Josh Berdine 2, Edmund Clarke 1, and Byron Cook 2 1 Carnegie Mellon University 2 Microsoft Research Abstract. Shape analyses are often imprecise

More information

Static Analysis of Programs with Probabilities. Sriram Sankaranarayanan University of Colorado, Boulder, USA.

Static Analysis of Programs with Probabilities. Sriram Sankaranarayanan University of Colorado, Boulder, USA. Static Analysis of Programs with Probabilities Sriram Sankaranarayanan University of Colorado, Boulder, USA. Joint Work Aleksandar Chakarov Univ. Colorado, Boulder now at Phase Change Olivier Bouissou

More information

Parameter Synthesis with IC3

Parameter Synthesis with IC3 Parameter Synthesis with IC3 Alessandro Cimatti Email: cimatti@fbk.eu Alberto Griggio Email: griggio@fbk.eu Sergio Mover Email: mover@fbk.eu Stefano Tonetta Email: tonettas@fbk.eu Abstract Parametric systems

More information

Lecture 9: Reachability

Lecture 9: Reachability Lecture 9: Reachability Outline of Lecture Reachability General Transition Systems Algorithms for Reachability Safety through Reachability Backward Reachability Algorithm Given hybrid automaton H : set

More information

Temporal Refinement Using SMT and Model Checking with an Application to Physical-Layer Protocols

Temporal Refinement Using SMT and Model Checking with an Application to Physical-Layer Protocols Temporal Refinement Using SMT and Model Checking with an Application to Physical-Layer Protocols Lee Pike (Presenting), Galois, Inc. leepike@galois.com Geoffrey M. Brown, Indiana University geobrown@cs.indiana.edu

More information

Acceleration of Affine Hybrid Transformations

Acceleration of Affine Hybrid Transformations Acceleration of Affine Hybrid Transformations Bernard Boigelot 1, Frédéric Herbreteau 2, and Isabelle Mainz 1 1 Institut Montefiore, B28, Univ. Liège, Belgium {boigelot,mainz}@montefiore.ulg.ac.be 2 Univ.

More information

Ufo: A Framework for Abstraction- and Interpolation-Based Software Verification

Ufo: A Framework for Abstraction- and Interpolation-Based Software Verification Ufo: A Framework for Abstraction- and Interpolation-Based Software Verification Aws Albarghouthi 1, Yi Li 1, Arie Gurfinkel 2, and Marsha Chechik 1 1 Department of Computer Science, University of Toronto,

More information

The Constraint Database Approach to Software Verification

The Constraint Database Approach to Software Verification The Constraint Database Approach to Software Verification Peter Revesz Max Planck Institut für Informatik University of Nebraska-Lincoln revesz@cse.unl.edu Abstract. Based on constraint database techniques,

More information

Built-in Treatment of an Axiomatic Floating-Point Theory for SMT Solvers

Built-in Treatment of an Axiomatic Floating-Point Theory for SMT Solvers Built-in Treatment of an Axiomatic Floating-Point Theory for SMT Solvers Sylvain Conchon LRI, Université Paris Sud Guillaume Melquiond INRIA Saclay Île-de-France Cody Roux LRI, Université Paris Sud Mohamed

More information

Lectures 20, 21: Axiomatic Semantics

Lectures 20, 21: Axiomatic Semantics Lectures 20, 21: Axiomatic Semantics Polyvios Pratikakis Computer Science Department, University of Crete Type Systems and Static Analysis Based on slides by George Necula Pratikakis (CSD) Axiomatic Semantics

More information

Temporal logic-based decision making and control. Jana Tumova Robotics, Perception, and Learning Department (RPL)

Temporal logic-based decision making and control. Jana Tumova Robotics, Perception, and Learning Department (RPL) Temporal logic-based decision making and control Jana Tumova Robotics, Perception, and Learning Department (RPL) DARPA Urban Challenge 2007 2 Formal verification Does a system meet requirements? System

More information

Point-Set Topology 1. TOPOLOGICAL SPACES AND CONTINUOUS FUNCTIONS

Point-Set Topology 1. TOPOLOGICAL SPACES AND CONTINUOUS FUNCTIONS Point-Set Topology 1. TOPOLOGICAL SPACES AND CONTINUOUS FUNCTIONS Definition 1.1. Let X be a set and T a subset of the power set P(X) of X. Then T is a topology on X if and only if all of the following

More information

THREE LECTURES ON BASIC TOPOLOGY. 1. Basic notions.

THREE LECTURES ON BASIC TOPOLOGY. 1. Basic notions. THREE LECTURES ON BASIC TOPOLOGY PHILIP FOTH 1. Basic notions. Let X be a set. To make a topological space out of X, one must specify a collection T of subsets of X, which are said to be open subsets of

More information

Efficiently Reasoning about Programs

Efficiently Reasoning about Programs Efficiently Reasoning about Programs Neil Immerman College of Computer and Information Sciences University of Massachusetts, Amherst Amherst, MA, USA people.cs.umass.edu/ immerman co-r.e. complete Halt

More information

Complete Instantiation of Quantified Formulas in Satisfiability Modulo Theories. ACSys Seminar

Complete Instantiation of Quantified Formulas in Satisfiability Modulo Theories. ACSys Seminar Complete Instantiation of Quantified Formulas in Satisfiability Modulo Theories Yeting Ge Leonardo de Moura ACSys Seminar 2008.12 Motivation SMT solvers have been successful Quantified smt formulas are

More information

Using Program Synthesis for Program Analysis

Using Program Synthesis for Program Analysis Using Program Synthesis for Program Analysis Cristina David 1, Daniel Kroening 1, and Matt Lewis 1,2 1 University of Oxford 2 Improbable Worlds Ltd. Abstract. In this paper, we propose a unified framework

More information

Model checking pushdown systems

Model checking pushdown systems Model checking pushdown systems R. Ramanujam Institute of Mathematical Sciences, Chennai jam@imsc.res.in Update Meeting, IIT-Guwahati, 4 July 2006 p. 1 Sources of unboundedness Data manipulation: integers,

More information

Static Analysis by A. I. of Embedded Critical Software

Static Analysis by A. I. of Embedded Critical Software Static Analysis by Abstract Interpretation of Embedded Critical Software Julien Bertrane ENS, Julien.bertrane@ens.fr Patrick Cousot ENS & CIMS, Patrick.Cousot@ens.fr Radhia Cousot CNRS & ENS, Radhia.Cousot@ens.fr

More information

Constrained Term Rewriting tool

Constrained Term Rewriting tool Constrained Term Rewriting tool Cynthia Kop 1 and Naoki Nishida 2 1 Institute of Computer Science, University of Innsbruck 2 Graduate School of Information Science, Nagoya University Abstract. This paper

More information

Validity Checking for Finite Automata over Linear Arithmetic Constraints

Validity Checking for Finite Automata over Linear Arithmetic Constraints Validity Checking for Finite Automata over Linear Arithmetic Constraints Gary Wassermann and Zhendong Su University of California, Davis Abstract In this paper, we introduce a new validity checking problem

More information

Finite Model Generation for Isabelle/HOL Using a SAT Solver

Finite Model Generation for Isabelle/HOL Using a SAT Solver Finite Model Generation for / Using a SAT Solver Tjark Weber webertj@in.tum.de Technische Universität München Winterhütte, März 2004 Finite Model Generation for / p.1/21 is a generic proof assistant: Highly

More information

Lemmas on Demand for the Extensional Theory of Arrays

Lemmas on Demand for the Extensional Theory of Arrays Lemmas on Demand for the Extensional Theory of Arrays Robert Brummayer Armin Biere Institute for Formal Models and Verification Johannes Kepler University, Linz, Austria ABSTRACT Categories and Subject

More information

Integration of SMT Solvers with ITPs There and Back Again

Integration of SMT Solvers with ITPs There and Back Again Integration of SMT Solvers with ITPs There and Back Again Sascha Böhme and University of Sheffield 7 May 2010 1 2 Features: SMT-LIB vs. Yices Translation Techniques Caveats 3 4 Motivation Motivation System

More information

Discrete Mathematics Lecture 4. Harper Langston New York University

Discrete Mathematics Lecture 4. Harper Langston New York University Discrete Mathematics Lecture 4 Harper Langston New York University Sequences Sequence is a set of (usually infinite number of) ordered elements: a 1, a 2,, a n, Each individual element a k is called a

More information

Template-based Program Verification and Program Synthesis

Template-based Program Verification and Program Synthesis Software Tools for Technology Transfer manuscript No. (will be inserted by the editor) Template-based Program Verification and Program Synthesis Saurabh Srivastava and Sumit Gulwani and Jeffrey S. Foster

More information

PKIND: A parallel k-induction based model checker

PKIND: A parallel k-induction based model checker PKIND: A parallel k-induction based model checker Temesghen Kahsai The University of Iowa temesghen-kahsaiazene@uiowa.edu Cesare Tinelli The University of Iowa cesare-tinelli@uiowa.edu PKIND is a novel

More information

From Program to Logic: An Introduction

From Program to Logic: An Introduction From Program to Logic: An Introduction Patrice Godefroid and Shuvendu K. Lahiri Microsoft Research, Redmond, WA, USA Abstract. We review, compare and discuss several approaches for representing programs

More information

Relational String Verification Using Multitrack

Relational String Verification Using Multitrack Relational String Verification Using Multitrack Automata Relational String Analysis Earlier work on string analysis use multiple single-track DFAs during symbolic reachability analysis One DFA per variable

More information

Finding heap-bounds for hardware synthesis

Finding heap-bounds for hardware synthesis Finding heap-bounds for hardware synthesis B. Cook + A. Gupta # S. Magill* A. Rybalchenko # J. Simsa* S. Singh + V. Vafeiadis + *CMU # MPI-SWS + MSR Coding hardware in advanced languages Use of advanced

More information

Lingva: Generating and Proving Program Properties using Symbol Elimination

Lingva: Generating and Proving Program Properties using Symbol Elimination Lingva: Generating and Proving Program Properties using Symbol Elimination Ioan Dragan 1 and Laura Kovács 2 1 TU Vienna 2 Chalmers Abstract. We describe the Lingva tool for generating and proving complex

More information

COUNTEREXAMPLE-GUIDED MODEL SYNTHESIS

COUNTEREXAMPLE-GUIDED MODEL SYNTHESIS COUNTEREXAMPLE-GUIDED MODEL SYNTHESIS Mathias Preiner, Aina Niemetz and Armin Biere Institute for Formal Models and Verification (FMV) Johannes Kepler University, Linz, Austria http://fmv.jku.at/ TACAS

More information

Model Checking and Its Applications

Model Checking and Its Applications Model Checking and Its Applications Orna Grumberg Technion, Israel Verification and Deduction Mentoring Workshop July 13, 2018 1 Personal data Ph.d. in (non-automated) verification Postdoc in Model Checking

More information

Termination Analysis for Bit-Vector Programs

Termination Analysis for Bit-Vector Programs DISS. ETH NO. 19589 Termination Analysis for Bit-Vector Programs A dissertation submitted to ETH ZURICH for the degree of Doctor of Sciences (Dr. sc. ETH Zurich) presented by Christoph Michael Wintersteiger

More information

Edmund Clarke Computer Science Dept., Carnegie Mellon University Pittsburgh, PA, USA

Edmund Clarke Computer Science Dept., Carnegie Mellon University Pittsburgh, PA, USA Checking Consistency of C and Verilog using Predicate Abstraction and Induction Daniel Kroening Computer Systems Institute, ETH Zürich Zürich, Switzerland daniel.kroening@inf.ethz.ch Edmund Clarke Computer

More information

Formal Verification at Higher Levels of Abstraction

Formal Verification at Higher Levels of Abstraction Formal Verification at Higher Levels of Abstraction Daniel Kroening Oxford University Computing Laboratory kroening@kroening.com Sanjit A. Seshia UC Berkeley sseshia@eecs.berkeley.edu Abstract Most formal

More information

Danger Invariants. 1 Introduction. Cristina David 1, Pascal Kesseli 1, Daniel Kroening 1, Matt Lewis 1,2

Danger Invariants. 1 Introduction. Cristina David 1, Pascal Kesseli 1, Daniel Kroening 1, Matt Lewis 1,2 Danger Invariants Cristina David 1, Pascal Kesseli 1, Daniel Kroening 1, Matt Lewis 1,2 1 University of Oxford, 2 Improbable Abstract. Static analysers search for overapproximating proofs of safety commonly

More information

Tighter Integration of BDDs and SMT for Predicate Abstraction

Tighter Integration of BDDs and SMT for Predicate Abstraction Tighter Integration of BDDs and SMT for Predicate Abstraction A. Cimatti, A. Franzen, A. Griggio, K. Kalyanasundaram, M. Roveri FBK-irst, Trento, Italy {cimatti,franzen,krishnamani,roveri}@fbk.eu University

More information

Block-wise abstract interpretation by combining abstract domains with SMT

Block-wise abstract interpretation by combining abstract domains with SMT Block-wise abstract interpretation by combining abstract domains with SMT Jiahong Jiang, Liqian Chen, Xueguang Wu, Ji Wang National University of Defense Technology, China 01/16/2017 VMCAI 2017 Overview

More information

From Invariant Checking to Invariant Inference Using Randomized Search

From Invariant Checking to Invariant Inference Using Randomized Search From Invariant Checking to Invariant Inference Using Randomized Search Rahul Sharma and Alex Aiken Stanford University, USA {sharmar, aiken}@cs.stanford.edu Abstract. We describe a general framework c2i

More information

Finding and Fixing Bugs in Liquid Haskell. Anish Tondwalkar

Finding and Fixing Bugs in Liquid Haskell. Anish Tondwalkar Finding and Fixing Bugs in Liquid Haskell Anish Tondwalkar Overview Motivation Liquid Haskell Fault Localization Fault Localization Evaluation Predicate Discovery Predicate Discovery Evaluation Conclusion

More information

Compact Sets. James K. Peterson. September 15, Department of Biological Sciences and Department of Mathematical Sciences Clemson University

Compact Sets. James K. Peterson. September 15, Department of Biological Sciences and Department of Mathematical Sciences Clemson University Compact Sets James K. Peterson Department of Biological Sciences and Department of Mathematical Sciences Clemson University September 15, 2017 Outline 1 Closed Sets 2 Compactness 3 Homework Closed Sets

More information

Automated Termination Analysis for Programs with Pointer Arithmetic

Automated Termination Analysis for Programs with Pointer Arithmetic Aachen Department of Computer Science Technical Report Automated Termination Analysis for Programs with Pointer Arithmetic Thomas Ströder, Jürgen Giesl, Marc Brockschmidt, Florian Frohn, Carsten Fuhs,

More information

Lost in Abstraction: Monotonicity in Multi-threaded Programs

Lost in Abstraction: Monotonicity in Multi-threaded Programs Lost in Abstraction: Monotonicity in Multi-threaded Programs Alexander Kaiser 1, Daniel Kroening 1, and Thomas Wahl 2 1 University of Oxford, United Kingdom 2 Northeastern University, Boston, United States

More information

An MCSAT treatment of Bit-Vectors (preliminary report)

An MCSAT treatment of Bit-Vectors (preliminary report) An MCSAT treatment of Bit-Vectors (preliminary report) Stéphane Graham-Lengrand 1,2 and Dejan Jovanović 1 1 SRI International 2 CNRS - INRIA - École Polytechnique Abstract We propose a general scheme for

More information

Automatic Verification of Loop Invariants

Automatic Verification of Loop Invariants Automatic Verification of Loop Invariants Olivier Ponsini, Hélène Collavizza, Carine Fédèle, Claude Michel, Michel Rueher University of Nice Sophia Antipolis, I3S/CNRS BP 145, 06903 Sophia Antipolis Cedex,

More information

Integrating Reasoning about Ordinal Arithmetic into ACL2

Integrating Reasoning about Ordinal Arithmetic into ACL2 Integrating Reasoning about Ordinal Arithmetic into ACL2 Panagiotis Manolios and Daron Vroon Georgia Institute of Technology, College of Computing 801 Atlantic Drive, Atlanta, Georgia, 30332, USA, {manolios,vroon}@cc.gatech.edu

More information

Automated Software Synthesis for Complex Robotic Systems

Automated Software Synthesis for Complex Robotic Systems Automated Software Synthesis for Complex Robotic Systems Indranil Saha Department of Computer Science and Engineering Indian Institute of Technology Kanpur Indranil Saha Automated Software Synthesis for

More information

Verification of Parameterized Concurrent Programs By Modular Reasoning about Data and Control

Verification of Parameterized Concurrent Programs By Modular Reasoning about Data and Control Verification of Parameterized Concurrent Programs By Modular Reasoning about Data and Control Zachary Kincaid Azadeh Farzan University of Toronto January 18, 2013 Z. Kincaid (U. Toronto) Modular Reasoning

More information

Visualizing SMT-Based Parallel Constraint Solving

Visualizing SMT-Based Parallel Constraint Solving Jelena Budakovic, Matteo Marescotti, Antti E. J. Hyvärinen, and Natasha Sharygina Università della Svizzera italiana, Switzerland Abstract Problem instances arising from a multitude of applications can

More information

LEARNING TO INSTANTIATE QUANTIFIERS

LEARNING TO INSTANTIATE QUANTIFIERS LEARNING TO INSTANTIATE QUANTIFIERS Armin Biere 1 joint work with Mathias Preiner 1,2, Aina Niemetz 1,2 TACAS 17, SMT 17, PhD Thesis Mathias Preiner in 2017 1 Johannes Kepler University Linz 2 Stanford

More information

Investigating Mixed-Integer Hulls using a MIP-Solver

Investigating Mixed-Integer Hulls using a MIP-Solver Investigating Mixed-Integer Hulls using a MIP-Solver Matthias Walter Otto-von-Guericke Universität Magdeburg Joint work with Volker Kaibel (OvGU) Aussois Combinatorial Optimization Workshop 2015 Outline

More information