Draft Refining AI Analysis with CP Techniques or How to - - PowerPoint PPT Presentation

draft
SMART_READER_LITE
LIVE PREVIEW

Draft Refining AI Analysis with CP Techniques or How to - - PowerPoint PPT Presentation

Draft Refining AI Analysis with CP Techniques or How to identifying suspicious values in programs with floating-point numbers Michel RUEHER University of Nice Sophia-Antipolis / I3S CNRS, France (joined work with Olivier Ponsini, Claude


slide-1
SLIDE 1

Draft

Refining AI Analysis with CP Techniques
  • r
How to identifying suspicious values in programs with floating-point numbers Michel RUEHER University of Nice Sophia-Antipolis / I3S – CNRS, France (joined work with Olivier Ponsini, Claude Michel) JFPC June 2013
slide-2
SLIDE 2

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Introduction
  • Problem: verifying programs with floating-point
computations Embedded systems written in C (transportation, nuclear plants,...)
  • Programs use floating-point numbers but
I Specifications are written with the semantics of reals “in mind” I Programs are written with the semantics of reals “in mind” 2/26
slide-3
SLIDE 3

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Floating-point arithmetic pitfalls Rounding Counter-intuitive properties (0.1)10 = (0.000110011001100 · · · )2 simple precision 0.100000001490116119384765625
  • Neither associative nor distributive operators
(10000001 + 107) + 0.5 6= 10000001 + (107 + 0.5)
  • Absorption, cancellation phenomena
Absorption: 107 + 0.5 = 107 Cancellation: ((1 10−7) 1) ⇤ 107 = 1.192...(6= 1) ! Floats are source of errors in programs 3/26
slide-4
SLIDE 4

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Objectives & Method Goals: → bounds for variables with real numbers semantics and floating-point numbers semantics → bounds for the error due to the use of floating-point numbers instead of real numbers to identify suspicious values Method: combining abstract interpretation & constraint programming 4/26
slide-5
SLIDE 5

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Outline Problematic: Verifying Programs with FP computations AI Approach: Abstraction of program states Constraint Programming over continous domains Example 1 Combining AI and CP Experiments Conclusion 5/26
slide-6
SLIDE 6

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion AI Approach: Abstraction of program states Intervals, zonotopes, polyhedra... Zonotopes: convex polytopes with a central symmetry Sets of affine forms ˆ a = a0 + a1ε1 + · · · + anεn ˆ b = b0 + b1ε1 + · · · + bnεn . . .      with εi 2 [1, 1] + Good trade-off between performance and precision – Not very accurate for nonlinear expressions – Not accurate on very common program constructs such as conditionals 6/26
slide-7
SLIDE 7

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion AI: Static analysis (cont.) + Good scalability for I Showing absence of runtime errors I Estimating rounding errors and their propagation I Checking properties of programs – Lack of precision I Approximations may be very coarse I Over-approximation possible false alarms 7/26
slide-8
SLIDE 8

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion AI & False alarm From Cousot: http://www.di.ens.fr/~cousot/AI/IntroAbsInt.html 8/26
slide-9
SLIDE 9

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion CP over continous domains A branch & prune process Iteration of two steps:
  • 1. Pruning the search space
  • 2. Making a choice to generate two (or more)
sub-problems Pruning step ! reduces an interval when the upper bound or the lower bound does not satisfy some constraint Branching step ! splits the domain of some variable in two or more intervals 9/26
slide-10
SLIDE 10

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Local consistencies – 2B–consistency
  • A constraint cj is 2B–consistent if for any variable xi of cj,
the bounds Dxi and Dxi have a support in the domains
  • f all other variables of cj
!Variable x is 2B–consistent for f(x, x1, . . . , xn) = 0 if the lower (resp. upper) bound of the domain of x is the smallest (resp. largest) solution of f(x, x1, . . . , xn) A CSP is 2B–consistent iff all its constraints are 2B–consistent 10/26
slide-11
SLIDE 11

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion 3B–Consistency (1) 3B–Consistency, a shaving process ! checks whether 2B–Consistency can be enforced when the domain of a variable is reduced to the value of one of its bounds in the whole system 11/26
slide-12
SLIDE 12

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Constraint Programming framework: sum up + Good refutation capabilities Flexibility: handling of integers, floats, non-linear expressions,... – Scalability Pruning may be costly for large domains A CSP is a conjunction of constraints a different constraint system is required for each path of the CFG 12/26
slide-13
SLIDE 13

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Example 1 float x = [0,10]; float y = x*x - x; if (y >= 0) y = x/10; else y = x*x + 2; 13/26
slide-14
SLIDE 14

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Example 1: Abstract Interpretation (zonotopes) float x = [0,10]; float y = x*x - x; if (y >= 0) y = x/10; else y = x*x + 2; y = x ∗ x − x y ≥ 0 y = x/10 y = x ∗ x + 2 y ≥ 0 y < 0 P0 : ˆ x0 = 5 + 5ε1 ε1 ∈ [−1, 1] D0 x = [0, 10] P1 : ˆ y 1 = 32.5 + 45ε1 + 12.5η1 η1 ∈ [−1, 1] D1 x = [0, 10] D1 y = [−10, 90] P2 : ˆ y 2 = ˆ y 1 D2 x = [0, 10] D2 y = [0, 90] P3 : ˆ y 3 = 0.5 + 0.5ε1 D3 y = [0, 1] P4 P5 P6 14/26
slide-15
SLIDE 15

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Example 1: Abstract Interpretation (zonotopes) float x = [0,10]; float y = x*x - x; if (y >= 0) y = x/10; else y = x*x + 2; y = x ∗ x − x y ≥ 0 y = x/10 y = x ∗ x + 2 y ≥ 0 y < 0 P0 : ˆ x0 = 5 + 5ε1 ε1 ∈ [−1, 1] D0 x = [0, 10] P1 : ˆ y 1 = 32.5 + 45ε1 + 12.5η1 η1 ∈ [−1, 1] D1 x = [0, 10] D1 y = [−10, 90] P2 : ˆ y 2 = ˆ y 1 D2 x = [0, 10] D2 y = [0, 90] P3 : ˆ y 3 = 0.5 + 0.5ε1 D3 y = [0, 1] P4 : ˆ y 4 = ˆ y 1 D4 x = [0, 10] D4 y = [−10, 0[ P5 P6 15/26
slide-16
SLIDE 16

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Example 1: Abstract Interpretation (zonotopes) float x = [0,10]; float y = x*x - x; if (y >= 0) y = x/10; else y = x*x + 2; y = x ∗ x − x y ≥ 0 y = x/10 y = x ∗ x + 2 y ≥ 0 y < 0 P0 : ˆ x0 = 5 + 5ε1 ε1 ∈ [−1, 1] D0 x = [0, 10] P1 : ˆ y 1 = 32.5 + 45ε1 + 12.5η1 η1 ∈ [−1, 1] D1 x = [0, 10] D1 y = [−10, 90] P2 : ˆ y 2 = ˆ y 1 D2 x = [0, 10] D2 y = [0, 90] P3 : ˆ y 3 = 0.5 + 0.5ε1 D3 y = [0, 1] P4 : ˆ y 4 = ˆ y 1 D4 x = [0, 10] D4 y = [−10, 0[ P5 : ˆ y 5 = 39.5 + 50ε1 + 12.5η1 D5 y = [2, 102] P6 : ˆ y 6 = ˆ y 3 ∪ ˆ y 5 = 39.5 + 0.5ε1 + 62η2 η2 ∈ [−1, 1] D6 y = D3 y ∪ D5 y = [0, 102] 16/26
slide-17
SLIDE 17

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Example 1: Constraint Programming y0 = x0 ∗ x0 − x0 y0 ≥ 0 y1 = x0/10 y1 = x0 ∗ x0 + 2 y0 ≥ 0 y0 < 0 y0 = x0 ∗ x0 − x0 y0 ≥ 0 y1 = x0/10 filtering D1 x0 = [0, 10] D1 y0 = [0, 90] D1 y1 = [0, 1] P0 : Dx0 = [0, 10] Dy0 = [−10, 90] Dy1 = [0, 102] P6 17/26
slide-18
SLIDE 18

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Example 1: Constraint Programming filtering D1 x0 = [0, 10] D1 y0 = [0, 90] D1 y1 = [0, 1] P0 : Dx0 = [0, 10] Dy0 = [−10, 90] Dy1 = [0, 102] P6 y0 ≥ 0 y1 = x0/10 y0 = x0 ∗ x0 − x0 y0 ≥ 0 y1 = x0/10 y0 < 0 y0 = x0 ∗ x0 − x0 y0 ≥ 0 y1 = x0 ∗ x0 + 2 y0 = x0 ∗ x0 − x0 y0 < 0 y1 = x0 ∗ x0 + 2 filtering D2 x0 = [0, 1.026] 18/26
slide-19
SLIDE 19

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Example 1: Constraint Programming filtering D1 x0 = [0, 10] D1 y0 = [0, 90] D1 y1 = [0, 1] y0 = x0 ∗ x0 − x0 y0 ≥ 0 y1 = x0/10 y0 < 0 y0 = x0 ∗ x0 − x0 y0 ≥ 0 y1 = x0 ∗ x0 + 2 y0 ≥ 0 y1 = x0/10 P0 : Dx0 = [0, 10] Dy0 = [−10, 90] Dy1 = [0, 102] y0 = x0 ∗ x0 − x0 y0 < 0 y1 = x0 ∗ x0 + 2 filtering D2 x0 = [0, 1.026] D2 y0 = [−0.257, 0] D2 y1 = [2, 3.027] P6 : D3 y1 = D1 y1 ∪ D2 y1 = [0, 3.027] 19/26
slide-20
SLIDE 20

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Proposed approach: Combining AI and CP Successive exploration and merging steps
  • Use of AI to compute a first approximation of the values of
variables at a program node where two branches join
  • Building a constraint system for each branch between two
join nodes in the CFG of the program and use of CP local consistencies to shrink the domains computed by AI 20/26
slide-21
SLIDE 21

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Filtering techniques
  • FPCS: 3B(w)-consistency over the floats
I Projection functions for floats I Handling of rounding modes I Handling of x86 architecture specifics
  • RealPaver: 2B(w)-consistency & Box-consistency over the
reals I Reliable approximations of continuous solution sets I Correctly rounded interval methods and constraint satisfaction techniques 21/26
slide-22
SLIDE 22

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Experiments: benchmarks
  • Illustrative programs
I quadratic ! real roots of a quadratic equation (GNU scientific library); contains many conditionals I sinus7 ! the 7th-order Taylor series of function sinus I sqrt ! an approximate value (error of 10−2) of the square root of a number greater than 4 (Babylonian method) I bigLoop: contains non-linear expressions followed by a loop that iterates one million times I rump: a very particular polynomial designed to outline a catastrophic cancellation phenomenon
  • 55 benchs from CDFL, a program analyzer for proving the
absence of runtime errors in program with floating-point computations based on Conflict-Driven Learning 22/26
slide-23
SLIDE 23

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Experiments: Results over the floating-point numbers Fluctuat (AI) RAICP (AI + CP) Domain Time Domain Time quadratic1 x0 [1, 1] 0.13 s [−∞, 0] 0.39 s quadratic1 x1 [1, 1] 0.13 s [−8.125, ∞] 0.39 s quadratic2 x0 [2e6, 0] 0.13 s [1e6, 0] 0.39 s quadratic2 x1 [1e6, 0] 0.13 s [−3906, 0] 0.39 s sinus7 [1.009, 1.009] 0.12 s [0.853, 0.852] 0.22 s rump [1.2e37, 2e37] 0.13 s [1.2e37, 2e37] 0.22 s sqrt1 [2.116, 2.354] 0.13 s [2.121, 2.347] 0.81 s sqrt2 [1, 1] 0.2 s [2.232, 3.168] 1.59 s bigLoop [1, 1] 0.15 s [0, 10] 0.7 s Total 1.25 s 5.1 s Fluctuat : state-of-the-art AI analyzer for estimating rounding errors and their propagation using zonotopes 23/26
slide-24
SLIDE 24

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Experiments: Results over the real numbers Fluctuat (AI) RAICP (AI + CP) Domain Time Domain Time quadratic1 x0 [1, 1] 0.14 s [−∞, 0] 1.55 s quadratic1 x1 [1, 1] 0.14 s [−8.006, ∞] 1.55 s quadratic2 x0 [2e6, 0] 0.14 s [1e6, 0] 0.58 s quadratic2 x1 [1e6, 0] 0.14 s [5.186e5, 0] 0.58 s sinus7 [1.009, 1.009] 0.12 s [0.842, 0.843] 0.34 s rump [1.2e37, 2e37] 0.13 s [1.2e37, 1.7e37] 1.26 s sqrt1 [2.116, 2.354] 0.13 s [2.121, 2.346] 0.35 s sqrt2 [2.098, 3.435] 0.2 s [2.232, 3.165] 0.57 s bigLoop [1, 1] 0.15 s [0, 10] 0.8 s Total 1.29 s 7.58 s 24/26
slide-25
SLIDE 25

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Experiments: eliminating false alarms CDFL: Program analyzer for proving the absence of runtime errors in program with floating-point computations based
  • n Conflict-Driven Learning
RAICP Fluctuat CDFL False alarms 11 Total time 40.55 s 18.37 s 208.99 s Computed on the 55 benchs from CDFL paper (TACAS’12, D’Silva, Leopold Haller, Daniel Kroening, Michael Tautschnig) 25/26
slide-26
SLIDE 26

Draft

Problematic AI Approach Constraint Programming Example 1 AI+CP Experiments Conclusion Conclusion AI + CP framework: Efficient computation and sharp good domain approximations Further works: interact with AI at the abstract domain level
  • Better approximations
  • Keep statement contribution to rounding errors
26/26