sai deep tetali patrice godefroid aditya v nori sriram k
play

SaiDeepTetali PatriceGodefroid,AdityaV.Nori,SriramK.Rajamani - PowerPoint PPT Presentation

SaiDeepTetali PatriceGodefroid,AdityaV.Nori,SriramK.Rajamani MicrosoftResearch UCLosAngeles Question Doestheassertionholdforallpossibleinputs?


  1. Sai
Deep
Tetali
 Patrice
Godefroid,
Aditya
V.
Nori,
Sriram
K.
Rajamani
 Microsoft
Research
 UC
Los
Angeles 


  2. Question
 Does
the
assertion
hold
for
all
possible
inputs? 
  

 Must
analysis:
finds
bugs,
but
can’t
prove
their

 absence
 May
analysis:
can
prove
the
absence
of
bugs,

 but
can
result
in
false
errors


  3.  May
analysis
 =
predicate
abstraction
( SLAM )
  Must
analysis
 =
symbolic
execution
+
tests
( DART )
  Compositional
May‐Must
analysis :

  Interprocedural
analysis
  Memoize
and
re‐use
may/must
summaries
  Allows
fine‐grained
coupling
and
alternation
 SMASH ≫ Compositional-May || Compositional-Must !


  4. test void f() { 0: *p = 4; 1: *q = 5; }

  5. proof 0 void f() { 0: *p = 4; 1 1 1: *q = 5; } 2

  6. 7

  7. 0 1 2 2 4 3 5 6 7

  8. 0 1 2 2 4 3 5 6 7

  9. 0 1 frontier
 2 4 3 5 6 7

  10. 0 1 frontier
 2 4 3 5 6 7

  11. 0 1 frontier
 2 2 4 3 5 6 7

  12. must summary

  13. must summary • Generate
post
states
by
using
 must 
summaries


  14. must summary

  15. 0 1 2 4 3 5 6 7

  16. 0 1 2 2 4 3 5 6 7

  17. 0 must summary 1 frontier
 2 4 3 5 6 7

  18. 0 must summary 1 frontier
 2 4 3 5 6 7

  19. 0 1 frontier
 2 2 4 3 5 6 7

  20. must must must must must must must must must

  21.  The
 SMASH 
implementation
is
a
 deterministic
realization
of
the
declarative
 rules
  Input
C
program
is
first
abstractly
interpreted
  No
pointer
arithmetic
‐‐
 *(p+i) is
treated
as
 *p  Logic
encoding
‐‐
propositional
logic,
linear
 arithmetic
and
uninterpreted
functions
  Theorem
prover:
 Z3

  22. Statistics
 Das SMAS h H 0 39 0 12 Number
of
proofs
 2176 2228 Number
of
bugs
 64 64 Time‐outs
 61 9 Time
(hours)
 117 44 We
have
unleashed
the
power
of
alternation!
 69 drivers
( 342000 
LOC)
and
 85 
properties

  23.  SMASH 
is
a
unified
framework
for
compositional
 may‐must
program
analysis
  We
have
explained
 SMASH 
in
the
context
of
 existing
analyses
( SLAM ,
 DART ,
 Synergy / Dash 
…)
 in
the
area
  Empirical
evaluation
shows
that
 SMASH can
 significantly
outperform
may‐only,
must‐only
and
 non‐compositional
may‐must
algorithms


  24. http://research.microsoft.com/yogi


Recommend


More recommend