combining abstract interpreters
play

Combining Abstract Interpreters Ashish Tiwari Tiwari@csl.sri.com - PowerPoint PPT Presentation

Combining Abstract Interpreters Ashish Tiwari Tiwari@csl.sri.com Computer Science Laboratory SRI International Menlo Park CA 94025 http://www.csl.sri.com/tiwari Joint work with Sumit Gulwani Ashish Tiwari, SRI


  1. ✬ ✩ Combining Abstract Interpreters Ashish Tiwari Tiwari@csl.sri.com Computer Science Laboratory SRI International Menlo Park CA 94025 http://www.csl.sri.com/˜tiwari Joint work with Sumit Gulwani ✫ ✪ Ashish Tiwari, SRI Combining Abstract Interpreters: 1

  2. ✬ ✩ Outline of this Talk • Abstract Interpretation • Logical Lattices • Combining Logical Lattices • Combination can be hard • Logical Product: The Correct Combination Lattice • Combination Abstract Interpreter ✫ ✪ Ashish Tiwari, SRI Combining Abstract Interpreters: 2

  3. ✬ ✩ Abstract Interpretation X : state space → : binary transition relation on X X init : set of initial states, subset of X � X, → , X init � : Program � 2 X , → , X init � : Dynamical system i → i ( X init ) = reachable states � : � A, → , a init � : Approximate system over a lattice A i → i ( a init ) = approx reachable states � : ✫ ✪ : fixpoint computation Ashish Tiwari, SRI Combining Abstract Interpreters: 3

  4. ✬ ✩ Abstract Interpretation: Lattice To build an abstract interpreter, we require A : lattice → : transfer function ability to compute → given � X, → , X init � and A : ⊔ ability to compute the join in A : ⊑ : ability to decide the lattice pre-order For imperative programming languages, computing → ( a ) often requires computing ⊓ and more. ✫ ✪ Ashish Tiwari, SRI Combining Abstract Interpreters: 4

  5. ✬ ✩ Abstract Interpretation: Example x := 0; while (1) { x := x+2; } The concrete state transition system: X : Z → i → i + 2 : { 0 } X init : � X, → , X init � : Program Lattice: { . . . , − 2 , 0 , 2 , 4 , . . . } Even : { . . . , − 3 , − 1 , 1 , 3 , . . . } Odd : {∅ , Even, Odd, Z } A : ✫ ✪ ⊑ ∅ ⊑ Even, Odd ⊑ Z : Ashish Tiwari, SRI Combining Abstract Interpreters: 5

  6. ✬ ✩ Example: Contd In the abstract lattice, {∅ , Even, Odd, Z } A : → a → a for all a ∈ A : a init Even : → i ( a init ) � = Reachable states i = Even ⊔ Even ⊔ Even ⊔ · · · = Even Thus, we have generated the invariant “ x is even.” ✫ ✪ Ashish Tiwari, SRI Combining Abstract Interpreters: 6

  7. ✬ ✩ Logical Theory Components of a logical theory Th : Σ : Signature containing function symbols, predicates T (Σ , V ) terms, t := c | x | f ( t, . . . , t ) : AF (Σ , V ) atomic formulas, φ := t = t | p ( t, . . . , t ) : Formulas : atomic formulas combined with boolean connectives Th : Set of sentences (valid in the theory) Th | = φ φ is valid in the theory Th : ✫ ✪ Ashish Tiwari, SRI Combining Abstract Interpreters: 7

  8. ✬ ✩ Logical Theory: Examples { 0 , 1 , + , −} Σ LAE : Equality Axioms of + , − (linear arithmetic with equality) Th LAE : Σ LA { 0 , 1 , + , − , < } : Equality and inequality axioms of + , − (LA with inequalities) Th LA : { 0 , 1 , + , − , ∗} Σ P ol : Th P ol : Polynomial ring axioms Σ UF { c 1 , c 2 , . . . , f, g, . . . } : ✫ Th UF ✪ : No axioms (Theory of uninterpreted functions/pure equality) Ashish Tiwari, SRI Combining Abstract Interpreters: 8

  9. ✬ ✩ Logical Lattices Semi-lattice defined by conjunction φ of atomic formulas in Th elements : φ ⊑ φ ′ if Th | = φ ⇒ φ ′ preorder : We have meet ⊓ �→ logical and ∧ join ⊔ �→ φ 1 ⊔ φ 2 is the strongest φ s.t. Th | = ( φ 1 ∨ φ 2 ) ⇒ φ Question: Is this semi-lattice a lattice? ✫ ✪ Ashish Tiwari, SRI Combining Abstract Interpreters: 9

  10. ✬ ✩ Logical Lattices Answer depends on the theory. Theories that define a logical lattice: • Linear arithmetic with equality (Karr 1976) Eg. { x = 0 , y = 1 } ⊔ { x = 1 , y = 0 } = ( x + y = 1) • Linear arithmetic with inequalities (Cousot and Halbwachs 1978) Eg. { x = 0 } ⊔ { x = 1 } = { 0 ≤ x, x ≤ 1 } • Nonlinear equations (polynomials) (Rodriguez-Carbonell and Kapur 2004) Eg. { x = 0 } ⊔ { x = 1 } = { x ( x − 1) = 0 } • UFS + injectivity/acyclicity (Gulwani, T. and Necula 2004) Eg. { x = a, y = f ( a ) } ⊔ { x = b, y = f ( b ) } = { y = f ( x ) } When this semilattice is a lattice, we call it a logical lattice ✫ ✪ Ashish Tiwari, SRI Combining Abstract Interpreters: 10

  11. ✬ ✩ UFS does not define a logical lattice The join of two finite sets of facts need not be finitely presented. [Gulwani, T. and Necula 2004] ≡ a = b φ 1 ≡ fa = a ∧ fb = b ∧ ga = gb φ 2 � gf i a = gf i b φ 1 ⊔ φ 2 ≡ i i gf i a = gf i b can not be represented by finite set of ground The formula � equations. Proof. It induces infinitely many congruence classes with more than one signature. ✫ ✪ Ashish Tiwari, SRI Combining Abstract Interpreters: 11

  12. ✬ ✩ Example: Abstract Intprtn over acyclic UFS lattice With additional acyclicity restriction, UFS can be used to define a logical lattice. u := c; v := c; [ u = c ∧ v = c ] while (*) { u := F(u); v := F(v); } [ ( u = F ( c ) ∧ v = F ( c )) ⊔ ( u = c ∧ v = c ) ] [ u = v ] We generate the invariant u = v this way. ✫ ✪ Ashish Tiwari, SRI Combining Abstract Interpreters: 12

  13. ✬ ✩ Examples: Logical Lattices Most of the standard lattices considered for AI can be described as logical lattices over an appropriate theory Th Σ = { 0 , 1 , + , − , even, odd } , Th = axioms of even,odd (no =) Parity : Σ = { 0 , 1 , + , − , pos, neg } , Th = axioms of pos,neg (no =) Sign : Σ = { 0 , 1 , + , − , < c , > c } Intervals : In the above cases, atomic formulas of only special form (predicate applied on variables) are considered as lattice elements. ✫ ✪ Ashish Tiwari, SRI Combining Abstract Interpreters: 13

  14. ✬ ✩ Recap • Overview of abstract interpretation ◦ Abstract interpretation can be used to generate invariants • Overview of logical theories ◦ Logical theories are described over a signature (a set of symbols) by axioms for those symbols • Interesting lattices for AI obtained by considering conjunctions of atomic formulas in a given theory • These semilattices may not be a lattice for arbitrary theories Th . As they are missing ∨ ( ⊔ ) ✫ ✪ Ashish Tiwari, SRI Combining Abstract Interpreters: 14

  15. ✬ ✩ Abstract Interpreter for Logical Lattices Lattice Op Computing When required Meet ⊓ ∧ : : computing transfer functions Join ⊔ : ?? : control-flow merge (loop, if-then-else) Preorder ⊑ ⇒ T h : : fixpoint detection ?? : Quant Elim : transfer function for assignments Join computation for logical lattices is not well-studied. ✫ ✪ Ashish Tiwari, SRI Combining Abstract Interpreters: 15

  16. ✬ ✩ Join Algorithms for Logical Lattices: Examples { x = z − 1 , y = 1 } ⊔ { z = y + 2 , x = 2 } = { x + y = z } Th LAE : Karr’s 1976 algorithm { x = a, y = fa } ⊔ { x = fa, y = ffa } = { y = fx } Th UF : Gulwani, T., Necula 2004 { x < 1 , y < 0 } ⊔ { x < 0 , y < 1 } = { x < 1 , y < 1 , x + y < 1 } Th LA : Convex Hull { x = 0 } ⊔ { y = 0 } = { xy = 0 } Th P ol : Ideal Intersection Many interesting unexplored problems here. ✫ ✪ Ashish Tiwari, SRI Combining Abstract Interpreters: 16

  17. ✬ ✩ Combining Abstract Interpreters: Motivation x :=0; y := 0; x := c; y := c; x :=0; y := 0; u := 0; v := 0; u := c; v := c; u := 0; v := 0; while (*) { while (*) { while (*) { x := u + 1; x := G(u, 1); x := u + 1; y := 1 + v; y := G(1, v); y := 1 + v; u := F(x); u := F(x); u := *; v := F(y); v := F(y); v := *; } } } assert( x = y ) assert( x = y ) assert( x = y ) Σ = Σ LA ∪ Σ UF S Σ = Σ UF S Σ = Σ LA Th = Th LA + Th UF S Th = Th UF S Th = Th LA ✫ ✪ Ashish Tiwari, SRI Combining Abstract Interpreters: 17

  18. ✬ ✩ Combining Logical Lattices Combining abstract interpreters is not easy [Cousot76] Given logical lattices L 1 and L 2 : • Direct product: � L 1 × L 2 , ⇒ T h 1 × ⇒ T h 2 � • Reduced product: � L 1 × L 2 , ⇒ T h 1 ∪ T h 2 � • Logical+ product: � Infinite* conjunctions of AF (Σ 1 ∪ Σ 2 , V ) , ⇒ T h 1 ∪ T h 2 � • Logical product: � Conjunctions of AF (Σ 1 ∪ Σ 2 , V ) , ⇒ T h 1 ∪ T h 2 with some restriction � ✫ ✪ Ashish Tiwari, SRI Combining Abstract Interpreters: 18

  19. ✬ ✩ Different Kinds of Combinations Kind Lattice elements Lattice Preorder Can verify Inf conj of atm facts in T 1 ∪ T 2 ⇒ T 1 ∪ T 2 Logical+ 1,2, 3 , 4 ⇒ � conj of atm facts in T 1 ∪ T 2 Logical 1,2, 3 T 1 ∪ T 2 L 1 × L 2 ⇒ T 1 ∪ T 2 Reduced 1,2 L 1 × L 2 ⇒ T 1 × ⇒ T 2 Direct 1 if (*) x := 1; y := F(1); z := G(2); else x := 4; y := F(8-x); z := G(5); Assertions: x ≥ 1 , y = F ( x ) , z = G ( x + 1) , H ( x ) + H (5 − x ) = H (1) + H (4) ✫ ✪ Ashish Tiwari, SRI Combining Abstract Interpreters: 19

  20. ✬ ✩ Issues in Combining Logical Lattices Why not use the logical+ product? The logical+ product is undesirable for two reasons: 1. Th 1 ∪ Th 2 need not define a lattice on finite conjunctions even if Th 1 and Th 2 define logical lattices Th UF I : theory of uninterpreted functions with injectivity Th LAE : theory of linear arithmetic with only equality Now, ( x = 0 ∧ y = 1) ⊔ ( x = 1 ∧ y = 0) = x + y = 1 ∧ C [ x ] + C [ y ] = C [0] + C [1] 2. Combination can be hard ✫ ✪ Let us consider the decision version of the abstract interpretation problem Ashish Tiwari, SRI Combining Abstract Interpreters: 20

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