Reasoning about floating-point arithmetic with ACDCL Unifying - - PowerPoint PPT Presentation

reasoning about floating point arithmetic with acdcl
SMART_READER_LITE
LIVE PREVIEW

Reasoning about floating-point arithmetic with ACDCL Unifying - - PowerPoint PPT Presentation

Reasoning about floating-point arithmetic with ACDCL Unifying Abstract Interpretation and Decision Procedures Daniel Kroening (joint work with Leopold Haller, Vijay DSilva, Michael Tautschnig, Martin Brain) 9 January 2013 1 Thursday, 17


slide-1
SLIDE 1

Reasoning about floating-point arithmetic with ACDCL

Unifying Abstract Interpretation and Decision Procedures

Daniel Kroening

9 January 2013

(joint work with Leopold Haller, Vijay D’Silva, Michael Tautschnig, Martin Brain)

1

Thursday, 17 January 13

slide-2
SLIDE 2

2

Leopold Haller Vijay D’Silva Michael Tautschnig + Martin Brain (no photo)

Thursday, 17 January 13

slide-3
SLIDE 3

References

  • TACAS 2012: paths in floating-point

programs with intervals

  • POPL 2013: Framework
  • VMCAI 2013: DPLL(T)
  • FMCAD 2012: Learning for intervals
  • SAS 2012: propositional SAT

3

Thursday, 17 January 13

slide-4
SLIDE 4

Abstract Satisfiability

Presentation Outline

Existing approaches to FP - Verification

Manual, Semi-automated Decision Procedures Decision Procedures

Scalable Precise

Abstract Interpretation Abstract Interpretation

Our research

Part I Part II

4

Thursday, 17 January 13

slide-5
SLIDE 5

Part I

5

Thursday, 17 January 13

slide-6
SLIDE 6

IEEE754 Floating Point Numbers

Special values: −0, +0, −∞, ∞, NaN

6

Thursday, 17 January 13

slide-7
SLIDE 7

The Pitfalls of FP

I II III IV V

7

Thursday, 17 January 13

slide-8
SLIDE 8

Is this program correct?

8 (We will ignore the case x=NaN)

Thursday, 17 January 13

slide-9
SLIDE 9

What does correctness mean?

Three possible meanings:

  • Result is sufficiently close to the real number result
  • Result is sufficiently close to the sine function
  • The assertion cannot be violated

9

Thursday, 17 January 13

slide-10
SLIDE 10

How can we check correctness?

Abstract Interpretation Manual Decision Procedures

10

Thursday, 17 January 13

slide-11
SLIDE 11

Requires experts, expensive, powerful

Abstract Interpretation Manual Decision Procedures

11

Thursday, 17 January 13

slide-12
SLIDE 12

Abstract Interpretation

Error

  • Instead of exploring all executions, explore a single abstract

execution

  • Abstract execution contains all concrete executions!
  • Highly efficient and scalable, but imprecise

Abstract representation Program traces Error states do not overlap abstract representation, hence program is safe Program Abstract Interpreter Program is safe

?

12

Thursday, 17 January 13

slide-13
SLIDE 13

Interpreter Abstract Domain

An abstract interpreter modularly uses

  • perations provided by an abstract domain.

Changing the domain changes the analysis.

Example

Signs domain

y = + x = + z = +

safe! Constants domain

{c | c ∈ FP} ∪ {?} {+, −} ∪ {?} y = 5 x = ? z = ?

Possibly unsafe

Abstract Interpretation

13

Thursday, 17 January 13

slide-14
SLIDE 14

Interpreter Abstract Domain

An abstract interpreter modularly uses

  • perations provided by an abstract domain.

Changing the domain changes the analysis.

Example

Abstract Interpretation

Interval Domain {[l, u] | l, u ∈ Int} x, y ∈ [min(Int), max(Int)] x, y ∈ [min(Int), −1] x ∈ [5, 5], y ∈ [min(Int), max(Int)] x ∈ [min(Int), 5], y ∈ [min(Int), max(Int)]

14

Thursday, 17 January 13

slide-15
SLIDE 15

Floating Point Intervals

{[l, u] | l, u ∈ FP} ∪ {?}

result ∈ [−2.216760, 2.216760] result ∈ [−2.301135, 2.301135] result ∈ [−2.296453, 2.296453] x ∈ [−1.570796, 1.570796]

Potentially unsafe

Abstract Interpretation

15

Thursday, 17 January 13

slide-16
SLIDE 16

Astrée Abstract Interpreter

  • Mature abstract interpreter by Cousot et. al
  • Large number of domains
  • Sold and supported by Absint GmbH
  • Successful in proving correct large avionics control software: 100k

lines of code in 1h -> highly scalable

  • Various domains for floating point analysis:

Ellipses Octagons Intervals Original traces

16

Thursday, 17 January 13

slide-17
SLIDE 17

Abstract Domains for Floating Point

  • Abstract domains are typically formulated over the real or

rational numbers

  • Numeric domains rely on mathematical properties such as

associativity which do not hold over floating point numbers (a + b) + c = a + (b + c)

  • Solution (Mine 2004): Interpret operations over floating point

numbers as real number operations + error terms

17

Thursday, 17 January 13

slide-18
SLIDE 18

Imprecision in Abstract Interpretation

  • The efficiency of abstract interpreters comes at the cost of
  • precision. Imprecision is accumulated from three sources:
  • Statements
  • Control-flow
  • Loops

x ∈ [−5, 5] y ∈ [−25, 25] x ∈ [0, 1] x, y ∈ [0, 1] x ∈ [−1, 1] x, y ∈ [1, 1] x ∈ [100001, max(Int)] y ∈ [min(Int), max(Int)]

18

Thursday, 17 January 13

slide-19
SLIDE 19

Imprecision in Abstract Interpretation

  • For efficiency reasons, most numeric abstract domains

are convex

Ellipses Octagons Intervals Original traces Convex polyhedra

✓ ∪ ◆

6 −2 2 −2 2

ˆ x∪ˆ y ˆ u

Zonotope

19

Thursday, 17 January 13

slide-20
SLIDE 20

Imprecision in Abstract Interpretation

What if convex abstractions are too weak?

Error Error

Very common scenario

20

Thursday, 17 January 13

slide-21
SLIDE 21

Conclusion:

  • Very scalable
  • Imprecise
  • Precise results require experts and research effort
  • Expert created domains are moderately reusable
  • Feasible for programs with homogenous structure and

behaviour (success in avionics)

Abstract Interpretation

21

Thursday, 17 January 13

slide-22
SLIDE 22

References

  • A. Chapoutot. Interval slopes as a numerical abstract domain for floating-point variables. SAS 2010
  • L. Chen, A. Miné and P

. Cousot. A sound floating-point polyhedra abstract domain. APLAS 2008

  • A. Miné. Relational abstract domains for the detection of floating-point run-time errors. ESOP 2004
  • L. Chen, A. Miné, J. Wang and P

. Cousot. An abstract domain to discover interval Linear Equalities. VMCAI 2010

  • L. Chen, A. Miné, J. Wang and P

. Cousot. Interval polyhedra: An Abstract Domain to Infer Interval Linear Relationships. SAS 2009

  • K. Ghorbal, E. Goubault and S. Putot. The zonotope abstract domain Taylor1. CAV 2009
  • B. Jeannet, and A. Miné. Apron: A library of numerical abstract domains for static analysis. CAV 2009
  • D. Monniaux. Compositional analysis of floating-point linear numerical filters. CAV 2005
  • J. Feret. Static analysis of digital filters. ESOP 2004
  • F. Alegre, E. Feron and S. Pande. Using ellipsoidal domains to analyze control systems software. CoRR 2009
  • E. Goubault and S. Putot. Weakly relational domains for floating-point computation analysis. NSAD 2005
  • E. Goubault. Static analyses of the precision of floating-point operations. SAS 2001

Floating point abstract domains

22

Thursday, 17 January 13

slide-23
SLIDE 23

References

Industrial Case Studies

  • E. Goubault, S. Putot, P

. Baufreton, J. Gassino. Static analysis of the accuracy in control systems: principles and experiments. FMICS 2007

  • D. Delmas, E. Goubault, S. Putot, J. Souyris, K. Tekkal, F.

Védrine. Towards an industrial use of FLUCTUAT on safety-critical avionics software. FMICS 2009

  • J. Souyris and D. Delmas. Experimental assessment of Astrée on safety-critical avionics software. SAFECOMP 2007
  • J. Souyris. Industrial experience of abstract interpretation-based static analyzers. IFIP 2004

P . Cousot. Proving the absence of run-time errors in safety-critical avionics code. EMSOFT 2007

FP Static Analysers

  • B. Blanchet, P

. Cousot, R. Cousot, J. Feret, L. Mauborgne, A. Miné, D. Monniaux and X. Rival. A static analyzer for large safety- critical software. SIGPLAN 38(5), 2003 P . Cousot, R. Cousot, J. Feret, L. Mauborgne, A. Miné, D. Monniaux and Xavier Rival. The ASTREÉ analyzer. ESOP 2005

  • E. Goubault, M. Martel and S. Putot. Asserting the precision of floating-point computations: a simple abstract interpreter. ESOP

2002 23

Thursday, 17 January 13

slide-24
SLIDE 24

Requires experts, expensive, powerful

Abstract Interpretation Manual Decision Procedures

Scalable and efficient. Precise analysis requires experts

24

Thursday, 17 January 13

slide-25
SLIDE 25

Error

Decision Procedures

  • Precisely explore a large set of program traces
  • For efficiency, represent problem symbolically as satisfiability of a

logical formula

Program traces

Program is safe exactly if isTrace(t) ∧ error(t) is satisfied by some t

25

Thursday, 17 January 13

slide-26
SLIDE 26

Propositional SAT

ϕ = (a ∨ ¬b) ∧ (¬a ∨ b) ∧ ¬b Propositional formula: Is there an assignment to a,b that makes the formula true?

2 2 1 2 2 2 3 2 4 2 5 2 6 2 7 1 s 1 s 1 s

Decrease in SAT solving time for SAT algorithms 2000-2007

26

Thursday, 17 January 13

slide-27
SLIDE 27

Why are SAT solvers so efficient Probe for solution Learn from failure failure

  • SAT solvers learn from failure
  • SAT solvers spot relevance

27

Thursday, 17 January 13

slide-28
SLIDE 28

Example

c → (r = a/32b) ∧ ¬c → (r = a ∗32 b) ∧ a > 0 ∧ b > 0 ∧ r < 0

Can be translated to propositional logic using divider and multiplier circuits The formula evaluates to true under the following assignment:

a, b 7! 123456789 r 7! 1757895751 c 7! false

Decision Procedures

Counterexample!

28

Thursday, 17 January 13

slide-29
SLIDE 29

Bounded Model Checking

Loops require unrolling before translation If the loop does not have a known fixed bound, the result is unrolled up to a chosen depth.

29

Thursday, 17 January 13

slide-30
SLIDE 30

Bounded Model Checking

Decision Procedure Program has bug, counter-example is returned

?

Satisfiable Unsatisfiable

30

Thursday, 17 January 13

slide-31
SLIDE 31

FP support in CBMC (2008)

  • CBMC implements bit-precise reasoning over floating-point

numbers using a propositional encoding

  • Uses IEEE-754 semantics with support various rounding-modes
  • Allows proofs of complex, bit-level properties

Thursday, 17 January 13

slide-32
SLIDE 32

Scalability of Propositional Encoding

  • Floating-point arithmetic is flattened to propositional logic
  • Requires instantiation of large floating point arithmetic circuits

N Nr. Variables Memory use 5 ~130000 ~90MB 10 ~260000 ~180MB

  • Resulting formulas are hard for SAT solvers and take up large

amounts of memory

32

Thursday, 17 January 13

slide-33
SLIDE 33

Related work

Constraint satisfaction

  • C. Michel, M. Rueher and
  • Y. Lebbah: Solving constraints over floating-point numbers. CP2001
  • B. Botella, A. Gotlieb and C. Michel: Symbolic execution of floating-point computations. STVR2006

SMT

P . Ruemmer and T. Wahl. An SMT

  • LIB theory of binary floating-point arithmetic. SMT 2010
  • A. Brillout, D. Kroening and T. Wahl. Mixed abstractions for floating point arithmetic. FMCAD 2009
  • R. Brummayer and A. Biere. Boolector: An Efficient SMT Solver for Bit-Vectors and Arrays. TACAS 2009

Incomplete Solvers

  • S. Boldo, J.-C. Filliâtre and G. Melquiond. Combining Coq and Gappa for Certifying Floating-Point Programs. Calculemus 2009.

33

Thursday, 17 January 13

slide-34
SLIDE 34

Requires experts, scalable, precise

Abstract Interpretation Manual Decision Procedures

Scalable. Precision requires experts Precise. Scalability requires experts

34

Thursday, 17 January 13

slide-35
SLIDE 35

Automatic Scalable Precise

Theorem proving Decision procedures Abstract interpretation

Conclusion Part I

Abstract Interpreter Decision Procedures Safe ? Bug ?

35

Thursday, 17 January 13

slide-36
SLIDE 36

Questions so far?

36

Thursday, 17 January 13

slide-37
SLIDE 37

Part II

37

Thursday, 17 January 13

slide-38
SLIDE 38

Automatic Scalable Precise

Decision procedures Abstract interpretation

We are interested in techniques that are

  • scalable
  • sufficiently precise to prove safety
  • fully automatic

Central insight: Modern decision procedures are abstract interpreters!

38

Thursday, 17 January 13

slide-39
SLIDE 39

Manually adjusting analysis precision by abstract partitioning

Error Error

y ∈ [−1, 1]

Potentially unsafe! Safe!

39

Thursday, 17 January 13

slide-40
SLIDE 40

How do we find the partition automatically?

40

Thursday, 17 January 13

slide-41
SLIDE 41

SAT solving by example

Their main data structure is a partial variable assignment which represents a solution candidate V → {t, f}

clauses literals

| {z }

| {z } ϕ = (p ∨ ¬q) ∧ . . . ∧ (¬r ∨ w ∨ q)

SAT solvers accept formulas in conjunctive normal form

41

Thursday, 17 January 13

slide-42
SLIDE 42

SAT solving: Deduction

ϕ = p ∧ (¬p ∨ ¬q) ∧ (q ∨ r ∨ ¬w) ∧ (q ∨ r ∨ w) SAT deduces new facts from clauses: p 7! t p 7! t q 7! f At this point, clauses yield no further information

42

Thursday, 17 January 13

slide-43
SLIDE 43

SAT is Abstract Analysis: Deduction

ϕ = p ∧ (¬p ∨ ¬q) ∧ (q ∨ r ∨ ¬w) ∧ (q ∨ r ∨ w)

p ∈ [1, 1] q ∈ [0, 0]

p 7! t p 7! t q 7! f

The result of deduction is identical to applying interval analysis to the program:

Deduction in a SAT solver is abstract analysis

43

Thursday, 17 January 13

slide-44
SLIDE 44

SAT solving: Decisions

ϕ = p ∧ (¬p ∨ ¬q) ∧ (q ∨ r ∨ ¬w) ∧ (q ∨ r ∨ w) Pick an unassigned variable and assign a truth value p 7! t q 7! f p 7! t q 7! f r 7! f SAT solver makes a “guess” Now new deductions are possible

44

Thursday, 17 January 13

slide-45
SLIDE 45

SAT solving: Learning

ϕ = p ∧ (¬p ∨ ¬q) ∧ (q ∨ r ∨ ¬w) ∧ (q ∨ r ∨ w) The variable w would have to be both true and false.

The contradiction is the result of r being assigned to false as part of a

  • decision. The SAT solver therefore learns that r must be true:

p 7! t q 7! f r 7! f

ϕ ← ϕ ∧ r

45

Thursday, 17 January 13

slide-46
SLIDE 46

SAT solving: Learning

ϕ = p ∧ (¬p ∨ ¬q) ∧ (q ∨ r ∨ ¬w) ∧ (q ∨ r ∨ w) The variable w would have to be both true and false.

The contradiction is the result of r being assigned to false as part of a

  • decision. The SAT solver therefore learns that r must be true:

p 7! t q 7! f r 7! f p 7! t q 7! f r 7! f w 7! f conflict

ϕ ← ϕ ∧ r

45

Thursday, 17 January 13

slide-47
SLIDE 47

SAT is Abstract Analysis: Decisions & Learning

Decisions and learning in a SAT solver are abstract partitioning

ϕ ϕ ∧ r

46

Thursday, 17 January 13

slide-48
SLIDE 48

SAT is Abstract Analysis

  • Deduction in SAT is abstract interpretation
  • Decisions and learning are abstract partitioning
  • The SAT algorithm is really an automatic partition

refinement algorithm.

Domain A

SAT(A)

Expanding the scope of SAT

47

Thursday, 17 January 13

slide-49
SLIDE 49

SAT is Abstract Analysis

  • Deduction in SAT is abstract interpretation
  • Decisions and learning are abstract partitioning
  • The SAT algorithm is really an automatic partition

refinement algorithm.

Domain A

SAT(A)

Rich logic, e.g. FP Programs

  • Prop. Logic

Boolean programs

Data Control

Expanding the scope of SAT

47

Thursday, 17 January 13

slide-50
SLIDE 50

SAT for programs

n1 c2 c3 c1 c4 n2 [a ≤ −2] [a = −1] [a = 0] [a ≥ 1] b := 2 b := −2 b := −1 b := 1 [b = 0]

DL0

n1 c2 c3 c1 c4 n2 [a ≤ −2] [a = −1] [a = 0] [a ≥ 1] b := 2 b := −2 b := −1 b := 1 [b = 0]

DL0

c1 : a ≤ −2 c2 : a ≤ −1 c3 : a ≤ 0 c2 : a ≥ −1 c3 : a ≥ 0 c4 : a ≥ 1 c3 : a = 0 c2 : a = −1

n1 c2 c3 c1 c4 n2 [a ≤ −2] [a = −1] [a = 0] [a ≥ 1] b := 2 b := −2 b := −1 b := 1 [b = 0]

DL0

c1 : a ≤ −2 c2 : a ≤ −1 c3 : a ≤ 0 c2 : a ≥ −1 c3 : a ≥ 0 c4 : a ≥ 1 n2 : b ≤ 2 n2 : b ≥ −2 : b ≤ 0 : b ≥ 0

n1 c2 c3 c1 c4 n2 [a ≤ −2] [a = −1] [a = 0] [a ≥ 1] b := 2 b := −2 b := −1 b := 1 [b = 0]

DL0

c1 : a ≤ −2 c2 : a ≤ −1 c3 : a ≤ 0 c2 : a ≥ −1 c3 : a ≥ 0 c4 : a ≥ 1 n2 : b ≤ 2 n2 : b ≥ −2 : b ≤ 0 : b ≥ 0

DL1

n1 : a ≤ −42

n1 c2 c3 c1 c4 n2 [a ≤ −2] [a = −1] [a = 0] [a ≥ 1] b := 2 b := −2 b := −1 b := 1 [b = 0]

DL0

c1 : a ≤ −2 c2 : a ≤ −1 c3 : a ≤ 0 c2 : a ≥ −1 c3 : a ≥ 0 c4 : a ≥ 1 n2 : b ≤ 2 n2 : b ≥ −2 : b ≤ 0 : b ≥ 0

DL1

n1 : a ≤ −42 c2 : ⊥ c3 : ⊥ c4 : ⊥ c1 : a ≤ −42 n2 : b ≥ 2 : ⊥

SAFE

n1 c2 c3 c1 c4 n2 [a ≤ −2] [a = −1] [a = 0] [a ≥ 1] b := 2 b := −2 b := −1 b := 1 [b = 0]

DL0

c1 : a  2 c2 : a  1 c3 : a  0 c2 : a 1 c3 : a 0 c4 : a 1 n2 : b  2 n2 : b 2 : b  0 : b 0

DL1

n1 : a  2 c2 : ? c3 : ? c4 : ? c1 : > n2 : b 1 : ?

SAFE → Generalise!

maximal wp-underapproximation transformer

n1 c2 c3 c1 c4 n2 [a ≤ −2] [a = −1] [a = 0] [a ≥ 1] b := 2 b := −2 b := −1 b := 1 [b = 0]

b ≤ 0

DL0

c1 : a  2 c2 : a  1 c3 : a  0 c2 : a 1 c3 : a 0 c4 : a 1 n2 : b  2 n2 : b 2 : b  0 : b 0

DL1

n1 : a  2 c2 : ? c3 : ? c4 : ? c1 : > n2 : b 1 : ?

SAFE → find cut ¬(n2 : b ≥ 1) ¬(n : a ≤ −2)

48

Thursday, 17 January 13

slide-51
SLIDE 51

Prototype: Abstract Conflict Driven Learning (ACDL)

  • Implementation over floating-point intervals
  • Automatically refines an analysis in a way that is
  • Property dependent
  • Program dependent
  • Uses learning to intelligently explore partitions
  • Significantly more precise than mature abstract

interpreters

  • Significantly more efficient than floating-point decision

procedures on short non-linear programs

49

Thursday, 17 January 13

slide-52
SLIDE 52

More results

benchmark time (s)

5 10 15 20 25 30 35 40 45 50 55 0.1 1 10 100 1000 Astr´ ee CBMC CDFL

Average speedup over CBMC ~270x

50

Thursday, 17 January 13

slide-53
SLIDE 53

− π

2 π 2

Implementation

51

Thursday, 17 January 13

slide-54
SLIDE 54

− π

2 π 2

− π

2 π 2

result ≤ 2.0 result ≥ -2.0

Number of partitions vs. tightness of bound

52

Thursday, 17 January 13

slide-55
SLIDE 55

− π

2 π 2

− π

2 π 2

result ≤ 2.0 result ≥ -2.0 − π

2 π 2

result ≤ 1.5 result ≥ -1.5

Number of partitions vs. tightness of bound

53

Thursday, 17 January 13

slide-56
SLIDE 56

− π

2 π 2

− π

2 π 2

result ≤ 2.0 result ≥ -2.0 − π

2 π 2

result ≤ 1.5 result ≥ -1.5 − π

2 π 2

result ≤ 1.2 result ≥ -1.2

Number of partitions vs. tightness of bound

54

Thursday, 17 January 13

slide-57
SLIDE 57

− π

2 π 2

− π

2 π 2

result ≤ 2.0 result ≥ -2.0 − π

2 π 2

result ≤ 1.5 result ≥ -1.5 − π

2 π 2

result ≤ 1.2 result ≥ -1.2 − π

2 π 2

result ≤ 1.1 result ≥ -1.1

Number of partitions vs. tightness of bound

55

Thursday, 17 January 13

slide-58
SLIDE 58

− π

2 π 2

− π

2 π 2

result ≤ 2.0 result ≥ -2.0 − π

2 π 2

result ≤ 1.5 result ≥ -1.5 − π

2 π 2

result ≤ 1.2 result ≥ -1.2 − π

2 π 2

result ≤ 1.1 result ≥ -1.1 − π

2 π 2

result ≤ 1.01 result ≥ -1.01

Number of partitions vs. tightness of bound

56

Thursday, 17 January 13

slide-59
SLIDE 59

− π

2 π 2

− π

2 π 2

result ≤ 2.0 result ≥ -2.0 − π

2 π 2

result ≤ 1.5 result ≥ -1.5 − π

2 π 2

result ≤ 1.2 result ≥ -1.2 − π

2 π 2

result ≤ 1.1 result ≥ -1.1 − π

2 π 2

result ≤ 1.01 result ≥ -1.01 − π

2 π 2

result ≤ 1.001 result ≥ -1.001

Number of partitions vs. tightness of bound

57

Thursday, 17 January 13

slide-60
SLIDE 60

Current and Future Work

  • Develop an SMT solver for floating point logic
  • Model on the success of propositional SAT:
  • Simple abstract domain
  • Highly efficient data structures
2 2 1 2 2 2 3 2 4 2 5 2 6 2 7 1 s 1 s 1 s

58

Thursday, 17 January 13

slide-61
SLIDE 61

Current and Future Work

  • Develop an SMT solver for floating point logic
  • Model on the success of propositional SAT:
  • Simple abstract domain
  • Highly efficient data structures

Rich logic, e.g. FP Programs

  • Prop. Logic

Boolean programs

2 2 1 2 2 2 3 2 4 2 5 2 6 2 7 1 s 1 s 1 s

58

Thursday, 17 January 13

slide-62
SLIDE 62

MathSAT + ACDCL

59

FP-ACDCL bit-vector encoding (Z3)

0.01 0.1 1 10 100 1000 0.01 0.1 1 10 100 1000

(a)

FP-ACDCL FP-ACDCL w.o. generalisation

0.01 0.1 1 10 100 1000 0.01 0.1 1 10 100 1000

(b)

Thursday, 17 January 13

slide-63
SLIDE 63

Current and Future Work

  • Reengineer prototype into a tool for floating point

verification

  • Significantly improved efficiency
  • Generic interface for integrating abstract domains
  • Development and generalisation of heuristics and

learning strategies

60

Thursday, 17 January 13

slide-64
SLIDE 64

Current and Future Work

  • Reengineer prototype into a tool for floating point

verification

  • Significantly improved efficiency
  • Generic interface for integrating abstract domains
  • Development and generalisation of heuristics and

learning strategies

Rich logic, e.g. FP Programs

  • Prop. Logic

Boolean programs

60

Thursday, 17 January 13

slide-65
SLIDE 65

Conclusion - Part II

Automatic Scalable Precise

Theorem proving Decision procedures Abstract interpretation

Scalability

ACDL

Precision Fully automatic

61

Thursday, 17 January 13

slide-66
SLIDE 66

Thank you for your attention

62

Thursday, 17 January 13