Discovering affine equalities using random interpretation
Download
1 / 18

Discovering Affine Equalities Using Random Interpretation - PowerPoint PPT Presentation


  • 192 Views
  • Updated On :

Discovering Affine Equalities Using Random Interpretation. Sumit Gulwani George Necula EECS Department University of California, Berkeley. Probabilistically Sound Program Analysis!. Sound program analysis is hard We are used to pay in terms of Loss of completeness or precision

Related searches for Discovering Affine Equalities Using Random Interpretation

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Discovering Affine Equalities Using Random Interpretation' - omer


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Discovering affine equalities using random interpretation l.jpg

Discovering Affine Equalities UsingRandom Interpretation

Sumit Gulwani George Necula

EECS Department

University of California, Berkeley


Probabilistically sound program analysis l.jpg
Probabilistically Sound Program Analysis!

  • Sound program analysis is hard

  • We are used to pay in terms of

    • Loss of completeness or precision

    • Complicated algorithms

    • Long Running Time

  • Can we pay in terms of soundness instead?

    • Judgments are unsound with low probability

    • We can predict and control the probability of error

    • Can gain simplicity and efficiency


The problem of discovering affine equalities l.jpg
The Problem of Discovering Affine Equalities

  • Discover equalities of the form 2y + 3z = 7

    • Compiler Optimizations

    • Loop Invariants

    • Translation Validation

  • There exist polynomial time deterministic algorithms [Karr 76]

    • involve complicated and expensive operations

  • We present a randomized algorithm

    • as complete as the deterministic algorithms

    • but faster and simpler (almost as simple as an interpreter)


Slide4 l.jpg

Example 1

F

T

  • Random testing will have to exercise all the 4 paths to verify the assertions

  • Our algorithm is similar to random testing

  • However, we execute the program once, in a way that it captures the “effect” of all the paths

a := 0; b := 1;

a := 1; b := 0;

T

F

c := b – a; d := 1 – 2b;

c := 2a + b; d := b – 2;

assert (c + d = 0); assert (c = a + 1)


Idea 1 the affine join operation l.jpg
Idea #1: The Affine Join Operation

  • Execute both the branches

  • Combine the values of the variables at joins using the affine join operation ©w for some randomly chosen w

    v1©w v2´ w £ v1 + (1-w) £ v2

a := 4; b := 1;

a := 2; b := 3;

a = 2 ©7 4 = -10

b = 3 ©7 1 = 15

(w = 7)


Slide6 l.jpg

Example 1

  • Choose a random weight for each join independently.

  • All choices of random weights verify the first assertion

  • Almost all choices contradict the second assertion.

F

T

a := 0; b := 1;

a := 1; b := 0;

w1 = 5

a = 0, b = 1

a = 1, b = 0

a = -4, b = 5

T

F

c := b – a; d := 1 – 2b;

c := 2a + b; d := b – 2;

w2 = -3

a = -4, b = 5

c = 9, d = -9

a = -4, b = 5

c = -3, d = 3

a = -4, b = 5

c = -39, d = 39

assert (c + d = 0); assert (c = a + 1)


Geometric interpretation of the affine join operation l.jpg
Geometric Interpretation of the Affine Join operation

  • satisfies all the affine relationships that are satisfied by both (e.g. x + y = 1, z = 0)

  • Given any relationship that is not satisfied by any of (e.g. x=2), also does not satisfy it with high probability

: State before the join

: State after the join

y

x = 2

x + y = 1

(x = 0, y = 1)

x

(x = 1, y = 0)


Example 2 l.jpg
Example 2

  • Idea #1 is not enough

  • We need to make use of the conditional x=y on the true branch

a := x + y

T

F

If (x = y)

b := a

b := 2x

assert (b = 2x)


Idea 2 the adjust operation l.jpg
Idea #2: The Adjust Operation

  • Execute multiple runs of the program in parallel

  • Sample = Collection of states at each program point

  • “Adjust” the sample before a conditional (by taking affine joins of the states in the sample) such that

    • Adjustment preserves original relationships

    • Adjustment satisfies the equality in the conditional

  • Use adjusted sample on the true branch


Geometric interpretation of the adjust operation l.jpg
Geometric Interpretation of the Adjust Operation

Original Point

(lies on e1=0)

Conditional (e2=0)

Adjusted Point

(lies on e1=0 Å e2=0)


The randomized interpreter r l.jpg
The Randomized Interpreter R

S’

S’

S1

S2

True

False

x := e

e = 0 ?

S

S

S2

S1

Si = S’i[x à e]

S1 = Adjust(S’,e)

S2 = S’

Si = S1i ©wi S2i


Completeness and soundness of r l.jpg
Completeness and soundness of R

  • We compare the randomized interpreter R with a suitable abstract interpreter A

  • R mimics A with high probability

    • R is as complete as A

    • R is sound with high probability


The abstract interpreter a l.jpg
The Abstract Interpreter A

Abstract Domain = Sets of affine relationships

T’

T’

T1

T2

True

False

x := e

e = 0 ?

T

T

T2

T1

T = T’[x’/x] [

{ x = e[x’/x] }

T = { g=0 | T1) g=0, T2) g=0 }

T1 = T’ [ { e = 0 }

T2 = T’


Completeness theorem l.jpg
Completeness Theorem

  • If T ) g = 0, then S ² g = 0

  • Proof:

    • The affine join operation preserves affine relationships

    • And so does the adjust operation


Soundness theorem l.jpg
Soundness Theorem

  • If T ) g = 0, then with high probability S ² g = 0

  • Error probability ·

    • b: number of branches

    • j: number of joins

    • d: size of the field

    • r: number of points in the sample

  • If j = b = 10, r = 15, d ¼ 232, then

    error probability ·


Loops and fixed point computation l.jpg
Loops and Fixed Point Computation

  • The lattice of sets of affine relationships has finite depth n. Thus, the abstract interpreter A converges to a fixed point.

  • Thus, the randomized interpreter R also converges (probabilistically)

  • We can detect convergence by comparing the ranks of the samples in two successive iterations

    • rank = number of linearly independent relationships


Related work l.jpg
Related Work

  • Abstract interpretation on sets of affine relationships [Karr76, Cousot77]

    • Operations are comparatively complicated and expensive

  • Value numbering

    • More of syntactic flavor than semantic

  • Random testing

    • Can exhibit counterexamples but doesn’t prove assertions

  • Equivalence testing for read-once branching programs

    • Similar idea of affine joins


Conclusion and future work l.jpg
Conclusion and Future Work

  • Randomization can help achieve simplicity and efficiency at the expense of making soundness probabilistic

  • Interesting possible extensions:

    • Memory

    • Non-Linear assignments

    • Inequalities

    • Dependent conditionals