theorem provers smt and interpolation
play

Theorem Provers, SMT, and Interpolation Philipp Rmmer Uppsala - PowerPoint PPT Presentation

Theorem Provers, SMT, and Interpolation Philipp Rmmer Uppsala University Sweden CP meets CAV June 27th 2012 1 / 49 Outline Some SMT challenges from verification Quantifiers in SMT First-order version of SMT Computation of Craig


  1. The base logic [LPAR’08] Linear integer arithmetic + uninterpreted predicates: t ::= α | x | c | α t + · · · + α t φ ::= φ ∧ φ | φ ∨ φ | ¬ φ | ∀ x .φ | ∃ x .φ . . | t . = 0 | t ≥ 0 | t ≤ 0 | α | t | p ( t , . . . , t ) . . . terms t φ . . . formulae . . . variables x c . . . constants p . . . uninterpreted predicates (fixed arity) α . . . integer literals ( ❩ ) 17 / 49

  2. The base logic [LPAR’08] Linear integer arithmetic + uninterpreted predicates: t ::= α | x | c | α t + · · · + α t φ ::= φ ∧ φ | φ ∨ φ | ¬ φ | ∀ x .φ | ∃ x .φ . . | t . = 0 | t ≥ 0 | t ≤ 0 | α | t | p ( t , . . . , t ) Functions encoded as relations (later) Subsumes FOL and Presburger arithmetic (PA) Valid formulae are not enumerable [Halpern, 1991] 17 / 49

  3. Constrained sequents Notation used here: Γ ⊢ ∆ ⇓ C � �� � ���� Antecedent, Succedent Constraint/approximation (sets of formulae) (formula) Definition Γ ⊢ ∆ ⇓ C is valid if the formula C → � Γ → � ∆ is valid. 18 / 49

  4. Iterative proof construction Γ ⊢ ∆ ⇓ ? 19 / 49

  5. Iterative proof construction analytic reasoning �  about input formula   (SMT-like) Γ ⊢ ∆ ⇓ ? 19 / 49

  6. Iterative proof construction analytic reasoning �  about input formula  Γ 1 ⊢ ∆ 1 ⇓ ?  . (SMT-like) . . . Γ ⊢ ∆ ⇓ ? 19 / 49

  7. Iterative proof construction analytic reasoning � Γ 2 ⊢ ∆ 2 ⇓ ?  about input formula  Γ 1 ⊢ ∆ 1 ⇓ ?  . (SMT-like) . . . Γ ⊢ ∆ ⇓ ? 19 / 49

  8. Iterative proof construction Γ 3 ⊢ ∆ 3 ⇓ ? analytic reasoning � Γ 2 ⊢ ∆ 2 ⇓ ?  about input formula  Γ 1 ⊢ ∆ 1 ⇓ ?  . (SMT-like) . . . Γ ⊢ ∆ ⇓ ? 19 / 49

  9. Iterative proof construction ∗ . . . . Γ 3 ⊢ ∆ 3 ⇓ ? analytic reasoning � Γ 2 ⊢ ∆ 2 ⇓ ?  about input formula  Γ 1 ⊢ ∆ 1 ⇓ ?  . (SMT-like) . . . Γ ⊢ ∆ ⇓ ? 19 / 49

  10. Iterative proof construction ∗ . . . . Γ 3 ⊢ ∆ 3 ⇓ ? analytic reasoning �  propagation Γ 2 ⊢ ∆ 2 ⇓ ?   about input formula   of constraints Γ 1 ⊢ ∆ 1 ⇓ ?  � . (SMT-like) . . . Γ ⊢ ∆ ⇓ ? 19 / 49

  11. Iterative proof construction ∗ . . . . Γ 3 ⊢ ∆ 3 ⇓ C 1 analytic reasoning �  propagation Γ 2 ⊢ ∆ 2 ⇓ ?   about input formula   of constraints Γ 1 ⊢ ∆ 1 ⇓ ?  � . (SMT-like) . . . Γ ⊢ ∆ ⇓ ? 19 / 49

  12. Iterative proof construction ∗ . . . . Γ 3 ⊢ ∆ 3 ⇓ C 1 analytic reasoning �  propagation Γ 2 ⊢ ∆ 2 ⇓ C 2   about input formula   of constraints Γ 1 ⊢ ∆ 1 ⇓ ?  � . (SMT-like) . . . Γ ⊢ ∆ ⇓ ? 19 / 49

  13. Iterative proof construction ∗ . . . . Γ 3 ⊢ ∆ 3 ⇓ C 1 analytic reasoning �  propagation Γ 2 ⊢ ∆ 2 ⇓ C 2   about input formula   of constraints Γ 1 ⊢ ∆ 1 ⇓ C 3  � . (SMT-like) . . . Γ ⊢ ∆ ⇓ ? 19 / 49

  14. Iterative proof construction ∗ . . . . Γ 3 ⊢ ∆ 3 ⇓ C 1 analytic reasoning �  propagation Γ 2 ⊢ ∆ 2 ⇓ C 2   about input formula   of constraints Γ 1 ⊢ ∆ 1 ⇓ C 3  � . (SMT-like) . . . Γ ⊢ ∆ ⇓ C 19 / 49

  15. Iterative proof construction ∗ . . . . Γ 3 ⊢ ∆ 3 ⇓ C 1 analytic reasoning �  propagation Γ 2 ⊢ ∆ 2 ⇓ C 2   about input formula   of constraints Γ 1 ⊢ ∆ 1 ⇓ C 3  � . (SMT-like) . . . Γ ⊢ ∆ ⇓ C Constraints are simplified during propagation If C is valid , then so is Γ ⊢ ∆ If C is satisfiable , it describes a solution for Γ ⊢ ∆ If C is unsatisfiable, expand the proof tree further . . . 19 / 49

  16. Iterative proof construction ∗ . . . . Γ 3 ⊢ ∆ 3 ⇓ C 1 analytic reasoning �  propagation Γ 2 ⊢ ∆ 2 ⇓ C 2   about input formula   of constraints Γ 1 ⊢ ∆ 1 ⇓ C 3  � . (SMT-like) . . . Γ ⊢ ∆ ⇓ C Constraints are simplified during propagation If C is valid , then so is Γ ⊢ ∆ If C is satisfiable , it describes a solution for Γ ⊢ ∆ If C is unsatisfiable, expand the proof tree further . . . Theories have two roles: analytic + propagation 19 / 49

  17. A few proof rules Γ ⊢ φ, ∆ ⇓ C Γ ⊢ ψ, ∆ ⇓ D AND - RIGHT Γ ⊢ φ ∧ ψ, ∆ ⇓ C ∧ D Γ , [ x / c ] φ, ∀ x .φ ⊢ ∆ ⇓ [ x / c ] C ALL - LEFT Γ , ∀ x .φ ⊢ ∆ ⇓ ∃ x . C ( c is fresh) s . s ) ⊢ p (¯ = ¯ Γ , p (¯ t ) , ¯ t , ∆ ⇓ C PRED - UNIFY s ) ⊢ p (¯ Γ , p (¯ t ) , ∆ ⇓ C ∗ Γ , φ 1 , . . . ⊢ ψ 1 , . . . , ∆ ⇓ ¬ φ 1 ∨ · · · ∨ ψ 1 ∨ · · · CLOSE (selected formulae are predicate-free) 20 / 49

  18. A few proof rules Γ ⊢ φ, ∆ ⇓ C Γ ⊢ ψ, ∆ ⇓ D AND - RIGHT Γ ⊢ φ ∧ ψ, ∆ ⇓ C ∧ D Γ , [ x / c ] φ, ∀ x .φ ⊢ ∆ ⇓ [ x / c ] C ALL - LEFT Γ , ∀ x .φ ⊢ ∆ ⇓ ∃ x . C ( c is fresh) s . s ) ⊢ p (¯ = ¯ Γ , p (¯ t ) , ¯ t , ∆ ⇓ C PRED - UNIFY s ) ⊢ p (¯ Γ , p (¯ t ) , ∆ ⇓ C ∗ Γ , φ 1 , . . . ⊢ ψ 1 , . . . , ∆ ⇓ ¬ φ 1 ∨ · · · ∨ ψ 1 ∨ · · · CLOSE (selected formulae are predicate-free) + Theory rules! 20 / 49

  19. In the example ∗ [ 1 � . = X ] . . . . . . . , 1 � . = X → sel ( b , X ) . = sel ( a , 2 ) ⊢ sel ( b , X ) . = sel ( a , 2 ) AX , b . = sto ( a , 1 , 2 ) ⊢ sel ( b , X ) . = sel ( a , 2 ) AX , b . = sto ( a , 1 , 2 ) ⊢ ∃ x . sel ( b , x ) . = sel ( a , 2 ) AX ⊢ b . = sto ( a , 1 , 2 ) → ∃ x . sel ( b , x ) . = sel ( a , 2 ) 21 / 49

  20. In the example . . . . ⊢ 1 � . = sel ( a , 2 ) ⊢ sel ( b , X ) . = sel ( a , 2 ) ⇓ ? = X ⇓ ? sel ( b , X ) . . . . , 1 � . = sel ( a , 2 ) ⊢ sel ( b , X ) . = sel ( a , 2 ) ⇓ ? = X → sel ( b , X ) . = sto ( a , 1 , 2 ) ⊢ sel ( b , X ) . = sel ( a , 2 ) ⇓ ? AX , b . = sto ( a , 1 , 2 ) ⊢ ∃ x . sel ( b , x ) . = sel ( a , 2 ) ⇓ ? AX , b . = sto ( a , 1 , 2 ) → ∃ x . sel ( b , x ) . = sel ( a , 2 ) ⇓ ? AX ⊢ b . 21 / 49

  21. In the example ∗ . . . ∗ . ⊢ 1 � . = X ⇓ 1 � . = sel ( a , 2 ) ⊢ sel ( b , X ) . = sel ( a , 2 ) ⇓ true = X sel ( b , X ) . . . . , 1 � . = sel ( a , 2 ) ⊢ sel ( b , X ) . = sel ( a , 2 ) ⇓ 1 � . = X → sel ( b , X ) . = X = sto ( a , 1 , 2 ) ⊢ sel ( b , X ) . = sel ( a , 2 ) ⇓ 1 � . AX , b . = X = sto ( a , 1 , 2 ) ⊢ ∃ x . sel ( b , x ) . = sel ( a , 2 ) ⇓ ∃ X . 1 � . AX , b . = X = sto ( a , 1 , 2 ) → ∃ x . sel ( b , x ) . = sel ( a , 2 ) ⇓ true AX ⊢ b . 21 / 49

  22. Correctness Lemma (Soundness) It’s sound! Lemma (Completeness) Complete for fragments: FOL PA Purely existential formulae Purely universal formulae Universal formulae with finite parametrisation (same as ME (LIA)) 22 / 49

  23. Functions 23 / 49

  24. Functions Functions almost like in SMT: Terms are always flattened n -ary function f becomes ( n + 1 ) -ary predicate f p E.g. g ( f ( x ) , a ) f ( x ) = c ∧ g ( c , a ) = d � f p ( x , c ) ∧ g p ( c , a , d ) � 23 / 49

  25. Functions Functions almost like in SMT: Terms are always flattened n -ary function f becomes ( n + 1 ) -ary predicate f p E.g. g ( f ( x ) , a ) f ( x ) = c ∧ g ( c , a ) = d � f p ( x , c ) ∧ g p ( c , a , d ) � Axioms necessary: Totality + Functionality ∀ ¯ x . ∃ y . f p (¯ x , y ) x , y 2 ) → y 1 . ∀ ¯ x , y 1 , y 2 . ( f p (¯ x , y 1 ) → f p (¯ = y 2 ) 23 / 49

  26. Functions Functions almost like in SMT: Terms are always flattened n -ary function f becomes ( n + 1 ) -ary predicate f p E.g. g ( f ( x ) , a ) f ( x ) = c ∧ g ( c , a ) = d � f p ( x , c ) ∧ g p ( c , a , d ) � Axioms necessary: Totality + Functionality ∀ ¯ x . ∃ y . f p (¯ x , y ) x , y 2 ) → y 1 . ∀ ¯ x , y 1 , y 2 . ( f p (¯ x , y 1 ) → f p (¯ = y 2 ) Very closely resembles congruence closure 23 / 49

  27. Relative completeness In SMT solvers : Choice of triggers determines provability Bad triggers → bad luck In the first-order SMT calculus : Choice of triggers determines performance Regardless of triggers, the same formulae are provable E-matching is complemented by free variables + unification 24 / 49

  28. Practicality AUFLIA+p (193) AUFLIA-p (193) Z3 191 191 P RINCESS 145 137 CVC3 132 128 Implementation of our calculus in P RINCESS Unsatisfiable AUFLIA benchmarks from SMT-comp 2011 Intel Core i5 2-core, 3.2GHz, timeout 1200s, 4Gb http://www.philipp.ruemmer.org/princess.shtml Currently running: CASC 2012 25 / 49

  29. Related work ME (LIA): [Baumgartner, Tinelli, Fuchs, 08], [Baumgartner, Tinelli, 11] SPASS+T [Prevosto, Waldmann, 06] DPLL( SP ) [de Moura, Bjørner, 08] Complete instantiation [Ge, de Moura, 09] Saturation + theories, e.g. [Stickel, 85], [Bürchert, 90], [Bachmair, Ganzinger, Waldmann, 94], [Korovin, Voronkov, 07], [Althaus, Kruglov, Weidenbach, 09] · · · 26 / 49

  30. Conclusion Overall challenge: Combine the theories and performance of SMT solvers with the completeness of FOL provers Presented work is one step in this direction Ongoing work: Better unification on term level Better heuristics for introducing free variables Lemma learning Generalisation to other theories 27 / 49

  31. Computation of Craig Interpolants

  32. Motivation: inference of invariants Generic verification problem (“safety”) { pre } while (*) Body { post } Standard approach: loop rule using invariant pre ⇒ φ { φ } Body { φ } φ ⇒ post { pre } while (*) Body { post } How to compute φ automatically? 29 / 49

  33. ✦ From intermediate assertions to invariants {pre} Body ; Body {post} ? Bounded model checking problem ✦ Compute intermediate assertion ψ 1 {pre} Body { ψ 1 } { ψ 1 } Body {post} [McMillan, 2003] 30 / 49

  34. From intermediate assertions to invariants {pre} Body ; Body {post} ? Bounded model checking problem ✦ Compute intermediate assertion ψ 1 {pre} Body { ψ 1 } { ψ 1 } Body {post} [ ψ 1 ⇒ pre ] pre is invariant ✦ [McMillan, 2003] 30 / 49

  35. From intermediate assertions to invariants {pre} Body ; Body {post} ? Bounded model checking problem ✦ Compute intermediate assertion ψ 1 {pre} Body { ψ 1 } { ψ 1 } Body {post} [ ψ 1 ⇒ pre ] [otherwise] pre is invariant ✦ [McMillan, 2003] 30 / 49

  36. From intermediate assertions to invariants {pre ∨ ψ 1 } Body ; Body {post} ? Bounded model checking problem ✦ Compute intermediate assertion ψ 2 {pre ∨ ψ 1 } Body { ψ 2 } { ψ 2 } Body {post} [ ψ 1 ⇒ pre ] [otherwise] pre is invariant ✦ [McMillan, 2003] 30 / 49

  37. From intermediate assertions to invariants {pre ∨ ψ 1 } Body ; Body {post} ? Bounded model checking problem ✦ Compute intermediate assertion ψ 2 {pre ∨ ψ 1 } Body { ψ 2 } { ψ 2 } Body {post} [ ψ 2 ⇒ pre ∨ ψ 1 ] [otherwise] pre ∨ ψ 1 is invariant ✦ [McMillan, 2003] 30 / 49

  38. From intermediate assertions to invariants {pre ∨ ψ 1 } Body ; Body {post} ? Bounded model checking problem ✦ Compute intermediate assertion ψ 2 {pre ∨ ψ 1 } Body { ψ 2 } { ψ 2 } Body {post} . . . [ ψ 2 ⇒ pre ∨ ψ 1 ] pre ∨ ψ 1 is invariant ✦ [McMillan, 2003] 30 / 49

  39. How to compute intermediate assertions? VC generation { pre } pre ( s 0 ) → Body ( s 0 , s 1 ) Body; → Body ( s 1 , s 2 ) Body { post } → post ( s 2 ) 31 / 49

  40. How to compute intermediate assertions? VC generation { pre } pre ( s 0 ) → Body ( s 0 , s 1 ) Body; → Body ( s 1 , s 2 ) Body { post } → post ( s 2 ) Theorem (Craig, 1957) Suppose A → C is a valid FOL implication. Then there is a formula I (an interpolant) such that A → I and I → C are valid, every non-logical symbol of I occurs in both A and C. 31 / 49

  41. How to compute intermediate assertions? VC generation A ( s 0 , s 1 ) pre ( s 0 ) { pre } → Body ( s 0 , s 1 ) Body; I ( s 1 ) → Body ( s 1 , s 2 ) Body → post ( s 2 ) { post } C ( s 1 , s 2 ) Theorem (Craig, 1957) Suppose A → C is a valid FOL implication. Then there is a formula I (an interpolant) such that A → I and I → C are valid, every non-logical symbol of I occurs in both A and C. 31 / 49

  42. Illustration Interpolation problem: A → I → C C A 32 / 49

  43. Illustration Interpolation problem: A → I → C C I A 32 / 49

  44. Reverse interpolants Definition Suppose A ∧ B is unsatisfiable. A reverse interpolant is a formula I such that A → I and B → ¬ I are valid, every non-logical symbol of I occurs in both A and B . Lemma I is reverse interpolant for A ∧ B ⇐ ⇒ I is interpolant for A → ¬ B 33 / 49

  45. Available interpolation engines (incomplete . . . ) Foci CSIsat MathSAT SMTInterpol OpenSMT iZ3 Princess 34 / 49

  46. Proof-based interpolation techniques Implication A → C Theorem prover Model Proof of A → C Proof lifting Interpolating proof of A → C Craig interpolant A → I → C 35 / 49

  47. Interpolating propositional logic Interpolation procedures available for many calculi Overview paper for resolution proofs: [D’Silva et al, 2010] Shown here: interpolants from a Gentzen-style proof (similar to calculus from before, but without constraints) 36 / 49

  48. Basic idea of proof lifting in a sequent calculus Interpolation problem: A → I → C ∗ . . . . Γ 3 ⊢ ∆ 3 Γ 2 ⊢ ∆ 2 Γ 1 ⊢ ∆ 1 . . . . A ⊢ C 37 / 49

  49. Basic idea of proof lifting in a sequent calculus Interpolation problem: A → I → C ∗ . . . . Γ 3 ⊢ ∆ 3 � annotation of Γ 2 ⊢ ∆ 2   formulae with labels Γ 1 ⊢ ∆ 1  . . . . A ⊢ C 37 / 49

  50. Basic idea of proof lifting in a sequent calculus Interpolation problem: A → I → C ∗ . . . . Γ 3 ⊢ ∆ 3 � annotation of Γ 2 ⊢ ∆ 2   formulae with labels Γ 1 ⊢ ∆ 1  . . . . ⌊ A ⌋ L ⊢ ⌊ C ⌋ R 37 / 49

  51. Basic idea of proof lifting in a sequent calculus Interpolation problem: A → I → C ∗ . . . . Γ 3 ⊢ ∆ 3 � annotation of Γ 2 ⊢ ∆ 2   Γ ∗ 1 ⊢ ∆ ∗ formulae with labels  . 1 . . . ⌊ A ⌋ L ⊢ ⌊ C ⌋ R 37 / 49

  52. Basic idea of proof lifting in a sequent calculus Interpolation problem: A → I → C ∗ . . . . Γ 3 ⊢ ∆ 3 Γ ∗ 2 ⊢ ∆ ∗ � annotation of 2   Γ ∗ 1 ⊢ ∆ ∗ formulae with labels  . 1 . . . ⌊ A ⌋ L ⊢ ⌊ C ⌋ R 37 / 49

  53. Basic idea of proof lifting in a sequent calculus Interpolation problem: A → I → C ∗ . . . . Γ ∗ 3 ⊢ ∆ ∗ 3 Γ ∗ 2 ⊢ ∆ ∗ � annotation of 2   Γ ∗ 1 ⊢ ∆ ∗ formulae with labels  . 1 . . . ⌊ A ⌋ L ⊢ ⌊ C ⌋ R 37 / 49

  54. Basic idea of proof lifting in a sequent calculus Interpolation problem: A → I → C ∗ . . . . Γ ∗ 3 ⊢ ∆ ∗ 3 Γ ∗ 2 ⊢ ∆ ∗ �  annotation of propagation of 2     Γ ∗ 1 ⊢ ∆ ∗ formulae with labels interpolants  � . 1 . . . ⌊ A ⌋ L ⊢ ⌊ C ⌋ R 37 / 49

  55. Basic idea of proof lifting in a sequent calculus Interpolation problem: A → I → C ∗ . . . . Γ ∗ 3 ⊢ ∆ ∗ 3 ◮ I 3 � Γ ∗ 2 ⊢ ∆ ∗  annotation of propagation of 2     Γ ∗ 1 ⊢ ∆ ∗ formulae with labels interpolants  � . 1 . . . ⌊ A ⌋ L ⊢ ⌊ C ⌋ R 37 / 49

  56. Basic idea of proof lifting in a sequent calculus Interpolation problem: A → I → C ∗ . . . . Γ ∗ 3 ⊢ ∆ ∗ 3 ◮ I 3 � Γ ∗ 2 ⊢ ∆ ∗  2 ◮ I 2 annotation of propagation of     Γ ∗ 1 ⊢ ∆ ∗ formulae with labels interpolants  � . 1 . . . ⌊ A ⌋ L ⊢ ⌊ C ⌋ R 37 / 49

  57. Basic idea of proof lifting in a sequent calculus Interpolation problem: A → I → C ∗ . . . . Γ ∗ 3 ⊢ ∆ ∗ 3 ◮ I 3 � Γ ∗ 2 ⊢ ∆ ∗  2 ◮ I 2 annotation of propagation of     Γ ∗ 1 ⊢ ∆ ∗ formulae with labels interpolants 1 ◮ I 1  � . . . . ⌊ A ⌋ L ⊢ ⌊ C ⌋ R 37 / 49

  58. Basic idea of proof lifting in a sequent calculus Interpolation problem: A → I → C ∗ . . . . Γ ∗ 3 ⊢ ∆ ∗ 3 ◮ I 3 � Γ ∗ 2 ⊢ ∆ ∗  2 ◮ I 2 annotation of propagation of     Γ ∗ 1 ⊢ ∆ ∗ formulae with labels interpolants 1 ◮ I 1  � . . . . ⌊ A ⌋ L ⊢ ⌊ C ⌋ R ◮ I 37 / 49

  59. Labelled formulae Interpolation problem: A → I → C Labelled formula Intuition “ φ is subformula of A ” ⌊ φ ⌋ L “ φ is subformula of C ” ⌊ φ ⌋ R 38 / 49

  60. Example Non-interpolating proof: ∗ p ⊢ p , q , r ∗ ¬ p , p ⊢ q , r q , p ⊢ q , r ¬ p ∨ q , p ⊢ q , r ¬ p ∨ q , p ⊢ q ∨ r 39 / 49

  61. Example Non-interpolating proof: ∗ p ⊢ p , q , r ∗ ¬ p , p ⊢ q , r q , p ⊢ q , r ¬ p ∨ q , p ⊢ q , r ¬ p ∨ q , p ⊢ q ∨ r Lifted interpolating proof: ∗ ⌊ p ⌋ L ⊢ ⌊ p ⌋ L ∗ ⌊¬ p ⌋ L , ⌊ p ⌋ L ⊢ . . . ⌊ q ⌋ L , ⌊ p ⌋ L ⊢ ⌊ q ⌋ R , ⌊ r ⌋ R ⌊¬ p ∨ q ⌋ L , ⌊ p ⌋ L ⊢ ⌊ q ⌋ R , ⌊ r ⌋ R ⌊¬ p ∨ q ⌋ L , ⌊ p ⌋ L ⊢ ⌊ q ∨ r ⌋ R 39 / 49

  62. Example Non-interpolating proof: ∗ p ⊢ p , q , r ∗ ¬ p , p ⊢ q , r q , p ⊢ q , r ¬ p ∨ q , p ⊢ q , r ¬ p ∨ q , p ⊢ q ∨ r Lifted interpolating proof: ∗ ⌊ p ⌋ L ⊢ ⌊ p ⌋ L ◮ false ∗ ⌊¬ p ⌋ L , ⌊ p ⌋ L ⊢ . . . ◮ false ⌊ q ⌋ L , ⌊ p ⌋ L ⊢ ⌊ q ⌋ R , ⌊ r ⌋ R ◮ q ⌊¬ p ∨ q ⌋ L , ⌊ p ⌋ L ⊢ ⌊ q ⌋ R , ⌊ r ⌋ R ◮ false ∨ q ⌊¬ p ∨ q ⌋ L , ⌊ p ⌋ L ⊢ ⌊ q ∨ r ⌋ R ◮ q 39 / 49

  63. Interpolating propositional rules Γ , ⌊ φ ⌋ L ⊢ ∆ ◮ I Γ , ⌊ φ ⌋ R ⊢ ∆ ◮ I Γ , ⌊ ψ ⌋ L ⊢ ∆ ◮ J Γ , ⌊ ψ ⌋ R ⊢ ∆ ◮ J OR - LEFT - L OR - LEFT - R Γ , ⌊ φ ∨ ψ ⌋ L ⊢ ∆ ◮ I ∨ J Γ , ⌊ φ ∨ ψ ⌋ R ⊢ ∆ ◮ I ∧ J Γ , ⌊ φ ⌋ D , ⌊ ψ ⌋ D ⊢ ∆ ◮ I Γ ⊢ ⌊ φ ⌋ D , ∆ ◮ I AND - LEFT NOT - LEFT Γ , ⌊ φ ∧ ψ ⌋ D ⊢ ∆ ◮ I Γ , ⌊¬ φ ⌋ D ⊢ ∆ ◮ I ∗ ∗ CLOSE - LL CLOSE - RR Γ , ⌊ φ ⌋ L ⊢ ⌊ φ ⌋ L , ∆ ◮ false Γ , ⌊ φ ⌋ R ⊢ ⌊ φ ⌋ R , ∆ ◮ true ∗ ∗ CLOSE - LR CLOSE - RL Γ , ⌊ φ ⌋ L ⊢ ⌊ φ ⌋ R , ∆ ◮ φ Γ , ⌊ φ ⌋ R ⊢ ⌊ φ ⌋ L , ∆ ◮ ¬ φ Γ , ⌊ [ x / t ] φ ⌋ L , ⌊∀ x .φ ⌋ L ⊢ ∆ ◮ I Γ , ⌊ [ x / t ] φ ⌋ R , ⌊∀ x .φ ⌋ R ⊢ ∆ ◮ I ALL - ALL - LEFT - L LEFT - R Γ , ⌊∀ x .φ ⌋ L ⊢ ∆ ◮ ∀ Rt I Γ , ⌊∀ x .φ ⌋ R ⊢ ∆ ◮ ∃ Lt I Γ , ⌊ [ x / c ] φ ⌋ D ⊢ ∆ ◮ I Γ ⊢ ⌊ [ x / c ] φ ⌋ D , ∆ ◮ I EX - ALL - LEFT RIGHT Γ , ⌊∃ x .φ ⌋ D ⊢ ∆ ◮ I Γ ⊢ ⌊∀ x .φ ⌋ D , ∆ ◮ I 40 / 49

  64. Interpolating integer arithmetic . . .

  65. Some theory rules for integers Linear combination of inequalities ( α > 0 , β > 0 ) . ≤ 0 ⊢ ∆ Γ , . . . , α s + β t FM - ELIM ′ . . ≤ 0 , t ≤ 0 ⊢ ∆ Γ , s Strengthening inequalities (subsumes rounding, Gomory cuts) . Γ , t . = 0 ⊢ ∆ Γ , t + 1 ≤ 0 ⊢ ∆ STRENGTHEN ′ . ≤ 0 ⊢ ∆ Γ , t 42 / 49

  66. Some theory rules for integers Linear combination of inequalities ( α > 0 , β > 0 ) . ≤ 0 ⊢ ∆ Γ , . . . , α s + β t FM - ELIM ′ . . ≤ 0 , t ≤ 0 ⊢ ∆ Γ , s Strengthening inequalities (subsumes rounding, Gomory cuts) . Γ , t . = 0 ⊢ ∆ Γ , t + 1 ≤ 0 ⊢ ∆ STRENGTHEN ′ . ≤ 0 ⊢ ∆ Γ , t Calculus contains both analytic and synthetic rules ⇒ More general form of labels needed 42 / 49

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