proving termination of imperative programs using max smt
play

Proving Termination of Imperative Programs using Max-SMT Daniel - PowerPoint PPT Presentation

Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work Proving Termination of Imperative Programs using Max-SMT Daniel Larraz, Albert Oliveras, Enric Rodr guez-Carbonell and Albert Rubio Universitat


  1. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work Proving Termination of Imperative Programs using Max-SMT Daniel Larraz, Albert Oliveras, Enric Rodr´ ıguez-Carbonell and Albert Rubio Universitat Polit` ecnica de Catalunya FMCAD, October 2013 1 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  2. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work Outline 1 Introduction 2 SMT/Max-SMT solving 3 Invariant generation 4 Termination analysis 5 Further work 2 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  3. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work Outline 1 Introduction 2 SMT/Max-SMT solving 3 Invariant generation 4 Termination analysis 5 Further work 3 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  4. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work Motivation • Prove termination of imperative programs automatically. • Find ranking functions. • Find supporting invariants. • How to guide the search!. 4 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  5. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work Simple example void simpleT(int x, int y) { while (y>0) { while (x>0) { x=x-y; y=y+1; } y=y-1; } } 5 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  6. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work Simple example void simpleT(int x, int y) { while (y>0) { while (x>0) { x=x-y; y=y+1; } y=y-1; } } Terminates. 5 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  7. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work Simple example void simpleT(int x, int y) { while (y>0) { Ranking function: y // Inv: y>0 while (x>0) { Ranking function: x x=x-y; y=y+1; } y=y-1; } } Terminates. 5 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  8. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work Goals Main goal: fully-automatic program termination analysis. 6 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  9. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work Goals Main goal: fully-automatic program termination analysis. • Consider integer linear programs. • Use the constraint-based method [CSS2003, BMS2005]. 6 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  10. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work Goals Main goal: fully-automatic program termination analysis. • Consider integer linear programs. • Use the constraint-based method [CSS2003, BMS2005]. • Use an SMT solver to solve the constraints. 6 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  11. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work Goals Main goal: fully-automatic program termination analysis. • Consider integer linear programs. • Use the constraint-based method [CSS2003, BMS2005]. • Use an SMT solver to solve the constraints. • Use Max-SMT to guide the search • Invariant conditions are hard • Termination conditions are soft 6 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  12. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work Outline 1 Introduction 2 SMT/Max-SMT solving 3 Invariant generation 4 Termination analysis 5 Further work 7 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  13. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work SMT solving Input: Given a boolean formula ϕ over some theory T . Question: Is there any interpretation that satisfies the formula? Example: T = linear integer/real arithmetic. ( x < 0 ∨ x ≤ y ∨ y < z ) ∧ ( x ≥ 0) ∧ ( x > y ∨ y < z ) { x = 1 , y = 0 , z = 2 } 8 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  14. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work SMT solving Input: Given a boolean formula ϕ over some theory T . Question: Is there any interpretation that satisfies the formula? Example: T = linear integer/real arithmetic. ( x < 0 ∨ x ≤ y ∨ y < z ) ∧ ( x ≥ 0) ∧ ( x > y ∨ y < z ) { x = 1 , y = 0 , z = 2 } 8 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  15. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work SMT solving Input: Given a boolean formula ϕ over some theory T . Question: Is there any interpretation that satisfies the formula? Example: T = linear integer/real arithmetic. ( x < 0 ∨ x ≤ y ∨ y < z ) ∧ ( x ≥ 0) ∧ ( x > y ∨ y < z ) { x = 1 , y = 0 , z = 2 } There exist very efficient solvers: yices, z3, Barcelogic, ... Can handle large formulas with a complex boolean structure. 8 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  16. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work SMT solving Input: Given a boolean formula ϕ over some theory T . Question: Is there any interpretation that satisfies the formula? Example: T = non-linear (polynomial) integer/real arithmetic. ( x 2 + y 2 > 2 ∨ x · z ≤ y ∨ y · z < z 2 ) ∧ ( x > y ∨ 0 < z ) { x = 0 , y = 1 , z = 1 } 8 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  17. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work SMT solving Input: Given a boolean formula ϕ over some theory T . Question: Is there any interpretation that satisfies the formula? Example: T = non-linear (polynomial) integer/real arithmetic. ( x 2 + y 2 > 2 ∨ x · z ≤ y ∨ y · z < z 2 ) ∧ ( x > y ∨ 0 < z ) { x = 0 , y = 1 , z = 1 } 8 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  18. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work SMT solving Input: Given a boolean formula ϕ over some theory T . Question: Is there any interpretation that satisfies the formula? Example: T = non-linear (polynomial) integer/real arithmetic. ( x 2 + y 2 > 2 ∨ x · z ≤ y ∨ y · z < z 2 ) ∧ ( x > y ∨ 0 < z ) { x = 0 , y = 1 , z = 1 } Non-linear arithmetic decidability: • Integers: undecidable • Reals: decidable but unpractical due to its complexity. 8 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  19. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work SMT solving Input: Given a boolean formula ϕ over some theory T . Question: Is there any interpretation that satisfies the formula? Example: T = non-linear (polynomial) integer/real arithmetic. ( x 2 + y 2 > 2 ∨ x · z ≤ y ∨ y · z < z 2 ) ∧ ( x > y ∨ 0 < z ) { x = 0 , y = 1 , z = 1 } Non-linear arithmetic decidability: • Integers: undecidable • Reals: decidable but unpractical due to its complexity. Incomplete solvers focused on either satisfiability or unsatisfiability. 8 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

  20. Introduction SMT/Max-SMT solving Invariant generation Termination analysis Further work SMT solving Input: Given a boolean formula ϕ over some theory T . Question: Is there any interpretation that satisfies the formula? Example: T = non-linear (polynomial) integer/real arithmetic. ( x 2 + y 2 > 2 ∨ x · z ≤ y ∨ y · z < z 2 ) ∧ ( x > y ∨ 0 < z ) { x = 0 , y = 1 , z = 1 } Non-linear arithmetic decidability: • Integers: undecidable • Reals: decidable but unpractical due to its complexity. Incomplete solvers focused on either satisfiability or unsatisfiability. Need to handle again large formulas with complex boolean structure. Barcelogic SMT-solver works very well finding solutions 8 Larraz,Oliveras,Rodr´ ıguez-Carbonell,Rubio, UPC FMCAD’13 Proving Termination of Imperative Programs Using Max-SMT

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend