Abstract Interpretation III
Semantics and Application to Program Verification Antoine Min´ e
´ Ecole normale sup´ erieure, Paris year 2015–2016
Course 12 20 May 2016
Course 12 Abstract Interpretation III Antoine Min´ e
- p. 1 / 60
Abstract Interpretation III Semantics and Application to Program - - PowerPoint PPT Presentation
Abstract Interpretation III Semantics and Application to Program Verification Antoine Min e Ecole normale sup erieure, Paris year 20152016 Course 12 20 May 2016 Course 12 Abstract Interpretation III Antoine Min e p. 1 / 60
Course 12 Abstract Interpretation III Antoine Min´ e
i αiVi = βi)
i αiVi ≥ βi)
Course 12 Abstract Interpretation III Antoine Min´ e
Motivation
Course 12 Abstract Interpretation III Antoine Min´ e
Motivation
Course 12 Abstract Interpretation III Antoine Min´ e
Motivation
Course 12 Abstract Interpretation III Antoine Min´ e
Motivation
Course 12 Abstract Interpretation III Antoine Min´ e
Motivation
Course 12 Abstract Interpretation III Antoine Min´ e
Motivation
Course 12 Abstract Interpretation III Antoine Min´ e
Motivation
Course 12 Abstract Interpretation III Antoine Min´ e
Motivation
Course 12 Abstract Interpretation III Antoine Min´ e
Affine Equalities
Course 12 Abstract Interpretation III Antoine Min´ e
Affine Equalities Affine equalities
Course 12 Abstract Interpretation III Antoine Min´ e
Affine Equalities Affine equalities
def
def
Course 12 Abstract Interpretation III Antoine Min´ e
Affine Equalities Affine equalities
α γ
def
def
Course 12 Abstract Interpretation III Antoine Min´ e
Affine Equalities Affine equalities
Course 12 Abstract Interpretation III Antoine Min´ e
Affine Equalities Affine equalities
def
def
def
j αjVj = β? X ♯
def
def
Course 12 Abstract Interpretation III Antoine Min´ e
Affine Equalities Affine equalities
Course 12 Abstract Interpretation III Antoine Min´ e
Affine Equalities Affine equalities
i αiVi + β
i αiVi + β X ♯
def
i αiVi + β? ◦ S♯ Vj ← [−∞, +∞] )X ♯
1 αj (Vj − i=j αiVi − β)
i αiρ′(Vi) + β]
i=j αiρ′(Vi) − β)/αj] = ρ′
i=j αiρ(Vi) − β)/αj] ∈ R
def
Course 12 Abstract Interpretation III Antoine Min´ e
Affine Equalities Affine equalities
1
Course 12 Abstract Interpretation III Antoine Min´ e
Affine Equalities Affine equalities
def
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
i=1 αijVi ≥ βj)
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
def
def
j=1 αj
j=1 βj
j=1 αj = 1 }
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
def
j=1 αj
j=1 βj
j=1 αj = 1 }
P1 P2 P3 P4 P5 P1 P2 P3 R1 R2
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
Ck − Mk · Q
P− Mk · Q
Ck − Mk · P
P− Mk · Q
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
R S R O
Mk · P
R
R R P O
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
(0)
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
(0) (1)
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
(0) (1) (2)
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
(0) (1) (2) (3)
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
def
def
def
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
def
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
i αiVi ≥ β? X ♯
def
i αiVi = β? X ♯
def
i αiVi ≥ −β? (S♯ i(−αi)Vi ≥ β? X ♯)
def
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
def
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
i αiVi + β X ♯
def
1 αj (Vj − i=j αiVi − β)
i αiVi = Vj − β? ◦ S♯ Vj ← [−∞, +∞] )X ♯
def
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
def
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
def
def
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
1
2
3
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
1
2
3
Course 12 Abstract Interpretation III Antoine Min´ e
Polyhedra
Course 12 Abstract Interpretation III Antoine Min´ e
Extensions
Course 12 Abstract Interpretation III Antoine Min´ e
Extensions
Course 12 Abstract Interpretation III Antoine Min´ e
Extensions
def
Course 12 Abstract Interpretation III Antoine Min´ e
Extensions
Course 12 Abstract Interpretation III Antoine Min´ e
Extensions
def
Course 12 Abstract Interpretation III Antoine Min´ e
Extensions
k ckVk
Course 12 Abstract Interpretation III Antoine Min´ e
Extensions
k ik ×Vk) ⊞ (i′ 0 + k i′ k ×Vk)
def
0)+ k(ik+♯i′ k)×Vk
k ik × Vk)
def
k (i×♯ik) × Vk
Course 12 Abstract Interpretation III Antoine Min´ e
Extensions
k(ik × Vk), X ♯)
def
b, k (ik ×♯ πk(X ♯)).
def
def
def
def
def
def
Course 12 Abstract Interpretation III Antoine Min´ e
Extensions
Course 12 Abstract Interpretation III Antoine Min´ e
Using the Apron Library
Course 12 Abstract Interpretation III Antoine Min´ e
Using the Apron Library
Underlying libraries & abstract domains box intervals
NewPolka convex polyhedra linear equalities PPL + Wrapper convex polyhedra
b b b b b b
linear congruences Abstraction toolbox – scalar & interval arithmetic – linearization of expressions – fall-back implementations Data-types Coefficients Expressions Constraints Generators
Semantics: A
γ
→ ℘(Zn × Rm) dimensions and space dimensionality Variables and Environments Semantics: A
γ
→ ℘(V → Z ⊎ R) Developer interface User interface C API OCaml binding C++ binding
Course 12 Abstract Interpretation III Antoine Min´ e
Using the Apron Library
Course 12 Abstract Interpretation III Antoine Min´ e
Using the Apron Library
Course 12 Abstract Interpretation III Antoine Min´ e
Using the Apron Library
Course 12 Abstract Interpretation III Antoine Min´ e
Using the Apron Library
Course 12 Abstract Interpretation III Antoine Min´ e
Using the Apron Library
Course 12 Abstract Interpretation III Antoine Min´ e
Using the Apron Library
Course 12 Abstract Interpretation III Antoine Min´ e
Using the Apron Library
Course 12 Abstract Interpretation III Antoine Min´ e
Using the Apron Library
Course 12 Abstract Interpretation III Antoine Min´ e
Using the Apron Library
Course 12 Abstract Interpretation III Antoine Min´ e
Using the Apron Library
Course 12 Abstract Interpretation III Antoine Min´ e
Using the Apron Library
Course 12 Abstract Interpretation III Antoine Min´ e