decision procedures for automating termination proofs
play

Decision Procedures for Automating Termination Proofs Ruzica - PowerPoint PPT Presentation

Decision Procedures for Automating Termination Proofs Ruzica Piskac, EPFL Thomas Wies, IST Austria Proving Program Termination assum sume x > 0 le x 0 do while do y := 1 while y < x do do y := 2 y end x := x 1 end Ranking


  1. Decision Procedures for Automating Termination Proofs Ruzica Piskac, EPFL Thomas Wies, IST Austria

  2. Proving Program Termination assum sume x > 0 le x ¸ 0 do while do y := 1 while y < x do do y := 2 y end x := x – 1 end Ranking function into the natural numbers: Construction of global ranking functions is difficult (to automate)!

  3. Automating Termination Proofs Proof techniques based on local ranking functions - Size-change principle [Lee, Jones, Ben-Amram 2001] - Transition invariants [Podelski, Rybalchenko 2004] Idea - decompose program into simpler ones - prove each simple program terminating independently Use decision procedures for well-founded domains to automate these tasks  Terminator [Cook, Podelski, Rybalchenko 2006]

  4. Proving Program Termination assum sume x > 0 le x ¸ 0 do while do y := 1 while y < x do do y := 2 y end We need decision procedures for more powerful x := x – 1 well-founded orderings. end This talk : decision procedures for multiset orderings Ranking function into a lexicographically ordered set: Decomposition into linear ranking functions is not always possible!

  5. Counting Leaves in a Tree prog CountLeaves ( root : Tree ) : int = a var S : Stack [ Tree ] = root var c : int = 0 b c do y := head ( S ) if leaf ( y ) then d e d d S := tail ( S ) c := c + 1 e e e e e e else S := left ( y ) ¢ right ( y ) ¢ tail ( S ) until S = ² return c S : a

  6. Counting Leaves in a Tree prog CountLeaves ( root : Tree ) : int = a var S : Stack [ Tree ] = root var c : int = 0 b c do y := head ( S ) if leaf ( y ) then d e d d S := tail ( S ) c := c + 1 e e e e e e else S := left ( y ) ¢ right ( y ) ¢ tail ( S ) until S = ² return c S : e ¢ e ¢ c Ranking function for loop: Consider S as a multiset of trees with subtree ordering.

  7. Multisets base set multiplicity 4 1 3 3 2 2 2 X finite multisets Operations are defined point-wise:

  8. Multiset Orderings Extend ordering ¹ on base set to ordering ¹ m on multisets 4 1 1 5 3 3 3 3 2 2 5 2 2 2 1 X Y

  9. Multiset Orderings Extend ordering ¹ on base set to ordering ¹ m on multisets 4 1 5 3 X n Y Y n X 3 3 2 2 5 2 2 1 X Y ¹ m well-founded iff ¹ well-founded [Dershowitz, Manna 1979]

  10. Counting Leaves in a Tree a b c d e d d e e e e e e extens ext ension ion of of sub subtre tree relat elatio ion Termination Condition for Loop: to to Multis iset ets Vali lid! d! Is satisfiability of multiset ordering constraints decidable?

  11. Main Results Let T 0 be a base theory of a preordered set. Examples for T 0 − theory of all preordered sets − theory of linear integer arithmetic − theory of a term algebra (trees) with subterm relation 1. If T 0 is decidable then so is its multiset extension. 2. If T 0 is decidable in NP then so is its multiset extension. 3. Decision procedure is easily implementable using off-the-shelf SMT solvers.

  12. Decision Procedure through an Example X 0 = ( X n Y ) ] Y 0 ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X ) Un Unsatisfia atisfiable ble! Y ’ Y X ’ X

  13. Step 1: Flattening Introduce fresh variables for all non-variable subterms X 0 = ( X n Y ) ] Y 0 ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X ) 1 X 0 = X 1 ] Y 0 ^ X 1 = X n Y ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X )

  14. Step 2: Reduction Replace multiset operations by their pointwise definitions X 0 = ( X n Y ) ] Y 0 ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X ) 1 X 0 = X 1 ] Y 0 ^ X 1 = X n Y ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X ) 2 ( 8 x: X 0 ( x ) = X 1 ( x ) + Y 0 ( x )) ^ ( 8 x: X 1 ( x ) = max f X ( x ) ¡ Y ( x ) ; 0 g ) ^ ( 8 x: Y ( x ) · X ( x )) ^ ( 9 y:Y 0 ( y ) 6 = Y ( y )) ^ ( 8 y 0 : Y ( y 0 ) < Y 0 ( y 0 ) ! 9 y: Y 0 ( y ) < Y ( y ) ^ y 0 ¹ y ) ^ (( 8 x:X 0 ( x ) = X ( x )) _ ( 9 x 0 : X ( x 0 ) < X 0 ( x 0 ) ^ 8 x: X 0 ( x ) < X 0 ( x ) ! : ( x 0 ¹ x )))

  15. Step 3: Skolemization Skolemize all existential quantifiers X 0 = ( X n Y ) ] Y 0 ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X ) 1 X 0 = X 1 ] Y 0 ^ X 1 = X n Y ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X ) 2,3 ( 8 x: X 0 ( x ) = X 1 ( x ) + Y 0 ( x )) ^ ( 8 x: X 1 ( x ) = max f X ( x ) ¡ Y ( x ) ; 0 g ) ^ ( 8 x: Y ( x ) · X ( x )) ^ ( 9 y:Y 0 ( y ) 6 = Y ( y )) ^ ( 8 y 0 : Y ( y 0 ) < Y 0 ( y 0 ) ! 9 y: Y 0 ( y ) < Y ( y ) ^ y 0 ¹ y ) ^ (( 8 x:X 0 ( x ) = X ( x )) _ ( 9 x 0 : X ( x 0 ) < X 0 ( x 0 ) ^ 8 x: X 0 ( x ) < X 0 ( x ) ! : ( x 0 ¹ x )))

  16. Step 3: Skolemization Skolemize all existential quantifiers X 0 = ( X n Y ) ] Y 0 ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X ) 1 X 0 = X 1 ] Y 0 ^ X 1 = X n Y ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X ) 2,3 ( 8 x: X 0 ( x ) = X 1 ( x ) + Y 0 ( x )) ^ ( 8 x: X 0 ( x ) = X 1 ( x ) + Y 0 ( x )) ^ ( 8 x: X 1 ( x ) = max f X ( x ) ¡ Y ( x ) ; 0 g ) ^ ( 8 x: X 1 ( x ) = max f X ( x ) ¡ Y ( x ) ; 0 g ) ^ witness function ( 8 x: Y ( x ) · X ( x )) ^ ( 8 x: Y ( x ) · X ( x )) ^ ( Y 0 ( c 1 ) 6 = Y ( c 1 )) ^ ( 9 y:Y 0 ( y ) 6 = Y ( y )) ^ ( 8 y 0 : Y ( y 0 ) < Y 0 ( y 0 ) ! Y 0 ( w ( y 0 )) < Y ( w ( y 0 )) ^ y 0 ¹ w ( y 0 )) ^ ( 8 y 0 : Y ( y 0 ) < Y 0 ( y 0 ) ! 9 y: Y 0 ( y ) < Y ( y ) ^ y 0 ¹ y ) ^ (( 8 x:X 0 ( x ) = X ( x )) _ ( ( 8 x:X 0 ( x ) = X ( x )) _ ( 9 x 0 : X ( x 0 ) < X 0 ( x 0 ) ^ 8 x: X 0 ( x ) < X 0 ( x ) ! : ( x 0 ¹ x ))) ( X ( c 2 ) < X 0 ( c 2 ) ^ 8 x: X 0 ( x ) < X 0 ( x ) ! : ( c 2 ¹ x )))

  17. Step 4: Strengthening Add additional axioms constraining the witness functions X 0 = ( X n Y ) ] Y 0 ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X ) 1 X 0 = X 1 ] Y 0 ^ X 1 = X n Y ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X ) 2,3,4 ( 8 x: X 0 ( x ) = X 1 ( x ) + Y 0 ( x )) ^ ( 8 x: X 0 ( x ) = X 1 ( x ) + Y 0 ( x )) ^ ( 8 x: X 1 ( x ) = max f X ( x ) ¡ Y ( x ) ; 0 g ) ^ ( 8 x: X 1 ( x ) = max f X ( x ) ¡ Y ( x ) ; 0 g ) ^ ( 8 x: Y ( x ) · X ( x )) ^ ( 8 x: Y ( x ) · X ( x )) ^ ( 9 y:Y 0 ( y ) 6 = Y ( y )) ^ ( Y 0 ( c 1 ) 6 = Y ( c 1 )) ^ ( 8 y 0 : Y ( y 0 ) < Y 0 ( y 0 ) ! 9 y: Y 0 ( y ) < Y ( y ) ^ y 0 ¹ y ) ^ ( 8 y 0 : Y ( y 0 ) < Y 0 ( y 0 ) ! Y 0 ( w ( y 0 )) < Y ( w ( y 0 )) ^ y 0 ¹ w ( y 0 )) ^ (( 8 x:X 0 ( x ) = X ( x )) _ ( ( 8 x:X 0 ( x ) = X ( x )) _ ( 9 x 0 : X ( x 0 ) < X 0 ( x 0 ) ^ 8 x: X 0 ( x ) < X 0 ( x ) ! : ( x 0 ¹ x ))) ( X ( c 2 ) < X 0 ( c 2 ) ^ 8 x: X 0 ( x ) < X 0 ( x ) ! : ( c 2 ¹ x ))) ^ F ( Y; Y 0 ; w )

  18. Step 5: Instantiation Instantiate universal quantifiers with ground terms X 0 = ( X n Y ) ] Y 0 ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X ) 1 X 0 = X 1 ] Y 0 ^ X 1 = X n Y ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X ) 2,3,4 ( 8 x: X 0 ( x ) = X 1 ( x ) + Y 0 ( x )) ^ Y 0 ( c 1 ) 6 = Y ( c 1 ) ^ X 0 ( c 1 ) = X ( c 1 ) ^ ( 8 x: X 1 ( x ) = max f X ( x ) ¡ Y ( x ) ; 0 g ) ^ X 0 ( c 1 ) = X ( c 1 ) ¡ Y ( c 1 ) + Y 0 ( c 1 ) _ ( 8 x: Y ( x ) · X ( x )) ^ X 0 ( c 2 ) = X ( c 2 ) ¡ Y ( c 2 ) + Y 0 ( c 2 ) ^ ( Y 0 ( c 1 ) 6 = Y ( c 1 )) ^ X ( c 2 ) < X 0 ( c 2 ) ^ Y ( c 2 ) ¸ Y 0 ( c 2 ) _ ( 8 y 0 : Y ( y 0 ) < Y 0 ( y 0 ) ! Y 0 ( w ( y 0 )) < Y ( w ( y 0 )) ^ y 0 ¹ w ( y 0 )) ^ X 0 ( w ( c 2 )) = X ( w ( c 2 )) ¡ Y ( w ( c 2 )) + Y 0 ( w ( c 2 )) ^ (( 8 x:X 0 ( x ) = X ( x )) _ Y 0 ( w ( c 2 )) < Y ( w ( c 2 )) ^ X 0 ( w ( c 2 )) ¸ X ( w ( c 2 )) _ ( X ( c 2 ) < X 0 ( c 2 ) ^ 8 x: X 0 ( x ) < X 0 ( x ) ! : ( c 2 ¹ x ))) c 2 ¹ w ( c 2 ) ^ : ( c 2 ¹ w ( c 2 )) ^ F ( Y; Y 0 ; w ) Ins nstantiate tantiate w with th c 1 ; c 2 ; w ( c 1 ) ; w ( c 2 )

  19. Step 5: Instantiation Instantiate universal quantifiers with ground terms X 0 = ( X n Y ) ] Y 0 ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X ) 1 X 0 = X 1 ] Y 0 ^ X 1 = X n Y ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X ) 2,3,4, 5 Y 0 ( c 1 ) 6 = Y ( c 1 ) ^ X 0 ( c 1 ) = X ( c 1 ) ^ X 0 ( c 1 ) = X ( c 1 ) ¡ Y ( c 1 ) + Y 0 ( c 1 ) _ X 0 ( c 2 ) = X ( c 2 ) ¡ Y ( c 2 ) + Y 0 ( c 2 ) ^ X ( c 2 ) < X 0 ( c 2 ) ^ Y ( c 2 ) ¸ Y 0 ( c 2 ) _ X 0 ( w ( c 2 )) = X ( w ( c 2 )) ¡ Y ( w ( c 2 )) + Y 0 ( w ( c 2 )) ^ Y 0 ( w ( c 2 )) < Y ( w ( c 2 )) ^ X 0 ( w ( c 2 )) ¸ X ( w ( c 2 )) _ c 2 ¹ w ( c 2 ) ^ : ( c 2 ¹ w ( c 2 ))

  20. Step 6: Check Satisfiability Call decision procedure for base theory + LIA + EUF Unsatisfia Un atisfiable ble! X 0 = ( X n Y ) ] Y 0 ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X ) 1 X 0 = X 1 ] Y 0 ^ X 1 = X n Y ^ Y µ X ^ Y 0 Á m Y ^ : ( X 0 Á m X ) 2,3,4, 5 Y 0 ( c 1 ) 6 = Y ( c 1 ) ^ X 0 ( c 1 ) = X ( c 1 ) ^ Un Unsatisfia atisfiable ble! X 0 ( c 1 ) = X ( c 1 ) ¡ Y ( c 1 ) + Y 0 ( c 1 ) _ X 0 ( c 2 ) = X ( c 2 ) ¡ Y ( c 2 ) + Y 0 ( c 2 ) ^ Un Unsatisfiable atisfiable! X ( c 2 ) < X 0 ( c 2 ) ^ Y ( c 2 ) ¸ Y 0 ( c 2 ) _ X 0 ( w ( c 2 )) = X ( w ( c 2 )) ¡ Y ( w ( c 2 )) + Y 0 ( w ( c 2 )) ^ Y 0 ( w ( c 2 )) < Y ( w ( c 2 )) ^ X 0 ( w ( c 2 )) ¸ X ( w ( c 2 )) _ Un Unsatisfia atisfiable ble! c 2 ¹ w ( c 2 ) ^ : ( c 2 ¹ w ( c 2 )) Unsatisfiable Un atisfiable!

  21. Completeness of Finite Instantiation F : multiset ordering constraint after Skolemization Functions representing multisets are sort restricted but witness functions are not! finite model of F w X N base set values of base set ground terms in F Additional axioms bound witness functions!

  22. Axioms for Witness Functions w X n Y Y n X only map to max. elements! X Y Axioms are designed specifically to guarantee NP complexity bound.

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