Numerical Abstract Domain using Support Function. Yassamine Seladji - - PowerPoint PPT Presentation

numerical abstract domain using support function
SMART_READER_LITE
LIVE PREVIEW

Numerical Abstract Domain using Support Function. Yassamine Seladji - - PowerPoint PPT Presentation

Numerical Abstract Domain using Support Function. Yassamine Seladji and Olivier Bouissou. CEA, LIST, LMeASI. France yassamine.seladji@cea.fr olivier.bouissou@cea.fr Introduction Static analysis by abstract interpretation ellipsoide Box


slide-1
SLIDE 1

Numerical Abstract Domain using Support Function.

Yassamine Seladji and Olivier Bouissou.

CEA, LIST, LMeASI. France yassamine.seladji@cea.fr

  • livier.bouissou@cea.fr
slide-2
SLIDE 2

Introduction

Static analysis by abstract interpretation

2 / 21 Yassamine Seladji and Olivier Bouissou.

z

  • n

e Sign ellipsoide Box Polyhedra T e m p l a t e Octagon Zonotope

slide-3
SLIDE 3

Introduction

Static analysis by abstract interpretation

2 / 21 Yassamine Seladji and Olivier Bouissou.

z

  • n

e Sign ellipsoide Box Polyhedra T e m p l a t e Octagon Zonotope

slide-4
SLIDE 4

Introduction

Static analysis by abstract interpretation

2 / 21 Yassamine Seladji and Olivier Bouissou.

Polyhedra

Constraints representation Generators representation

slide-5
SLIDE 5

Introduction

Static analysis by abstract interpretation

Polyhedra

Constraints representation Generators representation Support function

2 / 21 Yassamine Seladji and Olivier Bouissou.

slide-6
SLIDE 6

Support Function

Definition

Definition

Let S be a closed convex set and δS its support function, such that : ∀d ∈ ❘n, δS(d) = sup{x, d : x ∈ S}

3 / 21 Yassamine Seladji and Olivier Bouissou.

slide-7
SLIDE 7

Support Function

Definition

Definition

Let S be a closed convex set and δS its support function, such that : ∀d ∈ ❘n, δS(d) = sup{x, d : x ∈ S}

3 / 21 Yassamine Seladji and Olivier Bouissou.

slide-8
SLIDE 8

Support Function

Over-approximation

Let ∆ = {d1, d2, d3, d4, d5} be a set of directions.

4 / 21 Yassamine Seladji and Olivier Bouissou.

slide-9
SLIDE 9

Support Function

Over-approximation

Let ∆ = {d1, d2, d3, d4, d5} be a set of directions.

4 / 21 Yassamine Seladji and Olivier Bouissou.

slide-10
SLIDE 10

Support Function

Over-approximation

Let ∆ = {d1, d2, d3, d4, d5} be a set of directions.

Property

Let S be a closed convex set, and ∆ ⊆ ❘n be a set of directions. We put P =

  • d∈∆

{x ∈ ❘n|x, d ≤ δS(d)} Then S ⊆ P

4 / 21 Yassamine Seladji and Olivier Bouissou.

slide-11
SLIDE 11

Support Function

Over-approximation

Let ∆ = {d1, d2, d3, d4, d5} be a set of directions.

The special case of polyhedron

Let S be a polyhedron. If S is represented by :

◮ Linear system, δS is obtained

using Linear Programming.

◮ Generators (vertices) vi,

δS(d) = sup{vi, d : vi ∈ S}.

4 / 21 Yassamine Seladji and Olivier Bouissou.

slide-12
SLIDE 12

Support Function

Properties

Properties

Let S, S′ be two closed convex sets. We have :

◮ ∀M ∈ ❘n × ❘m, δMS(d) = δS(MTd). ◮ δS⊕S′(d) = δS(d)+δS′(d). S ⊕S′ = {x +x′ | x ∈ S, x′ ∈ S′} ◮ δS∪S′(d) = max(δS(d), δS′(d)). ◮ δS∩S′(d) ≤ min(δS(d), δS′(d)).

5 / 21 Yassamine Seladji and Olivier Bouissou.

slide-13
SLIDE 13

Support Function

Properties

Properties

Let S, S′ be two closed convex sets. We have :

◮ ∀M ∈ ❘n × ❘m, δMS(d) = δS(MTd). ◮ δS⊕S′(d) = δS(d)+δS′(d). S ⊕S′ = {x +x′ | x ∈ S, x′ ∈ S′} ◮ δS∪S′(d) = max(δS(d), δS′(d)). ◮ δS∩S′(d) ≤ min(δS(d), δS′(d)).

5 / 21 Yassamine Seladji and Olivier Bouissou.

slide-14
SLIDE 14

Abstract domain

Definition

For a set of directions ∆, P ❘ ❘ ❘ ❘

6 / 21 Yassamine Seladji and Olivier Bouissou.

slide-15
SLIDE 15

Abstract domain

Definition

For a set of directions ∆, let P♯

∆ = ∆ → ❘∞ be the abstract

domain. ❘ ❘ ❘

6 / 21 Yassamine Seladji and Olivier Bouissou.

slide-16
SLIDE 16

Abstract domain

Definition

For a set of directions ∆, let P♯

∆ = ∆ → ❘∞ be the abstract

domain.

The concretisation function

γ∆ : (∆ → ❘∞) − → P(❘n) Ω − →

  • d∈∆{x ∈ ❘n | x, d ≤ Ω(d)}

6 / 21 Yassamine Seladji and Olivier Bouissou.

slide-17
SLIDE 17

Abstract domain

Definition

For a set of directions ∆, let P♯

∆ = ∆ → ❘∞ be the abstract

domain.

The concretisation function

γ∆ : (∆ → ❘∞) − → P(❘n) Ω − →

  • d∈∆{x ∈ ❘n | x, d ≤ Ω(d)}

Example :

6 / 21 Yassamine Seladji and Olivier Bouissou.

slide-18
SLIDE 18

Abstract domain

Definition

For a set of directions ∆, let P♯

∆ = ∆ → ❘∞ be the abstract

domain.

The concretisation function

γ∆ : (∆ → ❘∞) − → P(❘n) Ω − →

  • d∈∆{x ∈ ❘n | x, d ≤ Ω(d)}

Example :

6 / 21 Yassamine Seladji and Olivier Bouissou.

slide-19
SLIDE 19

Abstract domain

Definition

The abstraction function

α∆ : P(❘n) − → (∆ → ❘∞) S − →      λd. − ∞ if S = ∅ λd. + ∞ if S = ❘n λd. δS(d)

  • therwise

Example :

7 / 21 Yassamine Seladji and Olivier Bouissou.

slide-20
SLIDE 20

Abstract domain

Definition

The abstraction function

α∆ : P(❘n) − → (∆ → ❘∞) S − →      λd. − ∞ if S = ∅ λd. + ∞ if S = ❘n λd. δS(d)

  • therwise

Example :

7 / 21 Yassamine Seladji and Olivier Bouissou.

slide-21
SLIDE 21

Abstract domain

Definition

The abstraction function

α∆ : P(❘n) − → (∆ → ❘∞) S − →      λd. − ∞ if S = ∅ λd. + ∞ if S = ❘n λd. δS(d)

  • therwise

Example :

7 / 21 Yassamine Seladji and Olivier Bouissou.

slide-22
SLIDE 22

Abstract domain

Definition

The abstraction function

α∆ : P(❘n) − → (∆ → ❘∞) S − →      λd. − ∞ if S = ∅ λd. + ∞ if S = ❘n λd. δS(d)

  • therwise

Example :

7 / 21 Yassamine Seladji and Olivier Bouissou.

slide-23
SLIDE 23

Abstract domain

Definition

The complete lattice P♯

∆, ⊑, ⊥, ⊤, ⊔, ⊓ is defined by : ◮ An order relation : Ω1 ⊑ Ω2 ⇔ γ∆(Ω1) ⊆ γ∆(Ω2). ◮ A minimal element : ⊥ = λd. − ∞. ◮ A maximal element : ⊤ = λd. + ∞. ◮ A join operator : Ω1 ⊔ Ω2 = λd. max(Ω1(d), Ω2(d)). ◮ A meet operator : Ω1 ⊓ Ω2 = λd. min(Ω1(d), Ω2(d)).

8 / 21 Yassamine Seladji and Olivier Bouissou.

slide-24
SLIDE 24

Abstract domain

Definition

The complete lattice P♯

∆, ⊑, ⊥, ⊤, ⊔, ⊓ is defined by : ◮ An order relation : Ω1 ⊑ Ω2 ⇔ γ∆(Ω1) ⊆ γ∆(Ω2). ◮ A minimal element : ⊥ = λd. − ∞. ◮ A maximal element : ⊤ = λd. + ∞. ◮ A join operator : Ω1 ⊔ Ω2 = λd. max(Ω1(d), Ω2(d)). ◮ A meet operator : Ω1 ⊓ Ω2 = λd. min(Ω1(d), Ω2(d)).

Notes : γ∆(Ω1 ⊔ Ω2) = γ∆(Ω1) ∪ γ∆(Ω2). γ∆(Ω1 ⊓ Ω2) ⊒ γ∆(Ω1) ∩ γ∆(Ω2).

8 / 21 Yassamine Seladji and Olivier Bouissou.

slide-25
SLIDE 25

Abstract domain

Fixpoint computation using Kleene iteration

Program

Input : P0 a bounded polyhedron. Input : A ∈ ❘n × ❘m, b ∈ ❘m. Input : c ∈ ❘n, l ∈ ❘ X ∈ P0 while (X, c ≤ l) { X = AX + b. }

9 / 21 Yassamine Seladji and Olivier Bouissou.

slide-26
SLIDE 26

Abstract domain

Fixpoint computation using Kleene iteration

Program

Input : P0 a bounded polyhedron. Input : A ∈ ❘n × ❘m, b ∈ ❘m. Input : c ∈ ❘n, l ∈ ❘ X ∈ P0 while (X, c ≤ l) { X = AX + b. } Ωi = Ωi−1 ⊔ [(AΩi−1 + b) ⊓ (c, X ≤ l)]

9 / 21 Yassamine Seladji and Olivier Bouissou.

slide-27
SLIDE 27

Abstract domain

Fixpoint computation using Kleene iteration

◮ Case 1 : Ωi = Ωi−1 ⊔ [(AΩi−1 + b)⊓(c, X ≤ l)]

/////////////////

Program

X ∈ P0 while (true) { X = AX + b }

P

10 / 21 Yassamine Seladji and Olivier Bouissou.

slide-28
SLIDE 28

Abstract domain

Fixpoint computation using Kleene iteration

◮ Case 1 : Ωi = Ωi−1 ⊔ [(AΩi−1 + b)⊓(c, X ≤ l)]

/////////////////

Program

X ∈ P0 while (true) { X = AX + b }

The first abstract element

Ω1 = λd.δP0∪(AP0⊕b)(d)

P

10 / 21 Yassamine Seladji and Olivier Bouissou.

slide-29
SLIDE 29

Abstract domain

Fixpoint computation using Kleene iteration

◮ Case 1 : Ωi = Ωi−1 ⊔ [(AΩi−1 + b)⊓(c, X ≤ l)]

/////////////////

Program

X ∈ P0 while (true) { X = AX + b }

The first abstract element

Ω1 = λd.δP0∪(AP0⊕b)(d) = λd.max(δP0(d), δP0(ATd) + b, d)

P

10 / 21 Yassamine Seladji and Olivier Bouissou.

slide-30
SLIDE 30

Abstract domain

Fixpoint computation using Kleene iteration

◮ Case 1 : Ωi = Ωi−1 ⊔ [(AΩi−1 + b)⊓(c, X ≤ l)]

/////////////////

Program

X ∈ P0 while (true) { X = AX + b }

The first abstract element

Ω1 = λd.δP0∪(AP0⊕b)(d) = λd.max(δP0(d), δP0(ATd) + b, d)

The ith abstract element

Ωi = λd. max{δP0(ATjd) + j

k=1b, AT(k−1)d, j = 0, .., i}

10 / 21 Yassamine Seladji and Olivier Bouissou.

slide-31
SLIDE 31

Abstract domain

Fixpoint computation using Kleene iteration

◮ Case 1 : Ωi = Ωi−1 ⊔ [(AΩi−1 + b)⊓(c, X ≤ l)]

/////////////////

Program

X ∈ P0 while (true) { X = AX + b } α∆(Pi) = Ωi

The ith abstract element

Ωi = λd. max{δP0(ATjd) + j

k=1b, AT(k−1)d, j = 0, .., i}

10 / 21 Yassamine Seladji and Olivier Bouissou.

slide-32
SLIDE 32

Abstract domain

Fixpoint computation using Kleene iteration

◮ Case 2 : Ωi = Ωi−1 ⊔ [(AΩi−1 + b) ⊓ (c, X ≤ l)]

Program

X ∈ P0 while (X, c ≤ l) { X = AX + b }

11 / 21 Yassamine Seladji and Olivier Bouissou.

slide-33
SLIDE 33

Abstract domain

Fixpoint computation using Kleene iteration

◮ Case 2 : Ωi = Ωi−1 ⊔ [(AΩi−1 + b) ⊓ (c, X ≤ l)]

Program

X ∈ P0 while (X, c ≤ l) { X = AX + b } H : X, c ≤ l

11 / 21 Yassamine Seladji and Olivier Bouissou.

slide-34
SLIDE 34

Abstract domain

Fixpoint computation using Kleene iteration

◮ Case 2 : Ωi = Ωi−1 ⊔ [(AΩi−1 + b) ⊓ (c, X ≤ l)]

Program

X ∈ P0 while (X, c ≤ l) { X = AX + b } H : X, c ≤ l δH(d) = l if d = λc, λ ≥ 0 +∞

  • therwise

11 / 21 Yassamine Seladji and Olivier Bouissou.

slide-35
SLIDE 35

Abstract domain

Fixpoint computation using Kleene iteration

◮ Case 2 : Ωi = Ωi−1 ⊔ [(AΩi−1 + b) ⊓ (c, X ≤ l)]

Program

X ∈ P0 while (X, c ≤ l) { X = AX + b } H : X, c ≤ l δH(d) = l if d = λc, λ ≥ 0 +∞

  • therwise

We put ∆ ∪ {c} :

◮ ∆1 = {c} ∪ {d ∈ ∆|d = λc, λ ≥ 0}. ◮ ∆2 = ∆ \ ∆1

11 / 21 Yassamine Seladji and Olivier Bouissou.

slide-36
SLIDE 36

Abstract domain

Fixpoint computation using Kleene iteration

◮ Case 2 : Ωi = Ωi−1 ⊔ [(AΩi−1 + b) ⊓ (c, X ≤ l)] ◮ For d ∈ ∆2 : we use the same method as for Case 1. P P

12 / 21 Yassamine Seladji and Olivier Bouissou.

slide-37
SLIDE 37

Abstract domain

Fixpoint computation using Kleene iteration

◮ Case 2 : Ωi = Ωi−1 ⊔ [(AΩi−1 + b) ⊓ (c, X ≤ l)] ◮ For d ∈ ∆2 : we use the same method as for Case 1.

Ωi = λd. max{δP0(ATjd) +

j

  • k=1

b, AT(k−1)d, j = 0, .., i}

P

12 / 21 Yassamine Seladji and Olivier Bouissou.

slide-38
SLIDE 38

Abstract domain

Fixpoint computation using Kleene iteration

◮ Case 2 : Ωi = Ωi−1 ⊔ [(AΩi−1 + b) ⊓ (c, X ≤ l)] ◮ For d ∈ ∆2 : we use the same method as for Case 1.

Ωi = λd. max{δP0(ATjd) +

j

  • k=1

b, AT(k−1)d, j = 0, .., i}

◮ For d ∈ ∆1, we have that :

Ωi = λd. max(δγ∆(Ωi−1)(d), min(δγ∆(Ωi−1)(ATd) + b, d, l)) Such that λd.δPi(d) ≤ Ωi(d).

12 / 21 Yassamine Seladji and Olivier Bouissou.

slide-39
SLIDE 39

Abstract domain

Fixpoint computation using Kleene iteration

Ωi(d) = max{δP0(ATjd) + j

k=1b, AT(k−1)d, j = 0, .., i}

Algorithm 1 Kleene Algorithm using support function. Require: ∆ ⊂ ❘n, set of l directions. P0, The initial polyhedron Require: A ∈ ❘n × ❘m, b ∈ ❘m

1: D = ∆, Ω = δP0(∆) 2: repeat 3:

Ω′ = Ω

4:

for all i = 0, . . . , (l − 1) do

5:

Θ[i] = Θ[i] + b, D[i]

6:

D[i] = ATD[i]

7:

Υ[i] = δP0(D[i]) + Θ[i]

8:

Ω[i] = max(Ω[i], Υ[i])

9:

end for

10: until Ω ⊑ Ω′

13 / 21 Yassamine Seladji and Olivier Bouissou.

slide-40
SLIDE 40

Abstract domain

Fixpoint computation using Kleene iteration

The Algorithm doesn’t guarantee the termination of the computation. P

14 / 21 Yassamine Seladji and Olivier Bouissou.

slide-41
SLIDE 41

Abstract domain

Fixpoint computation using Kleene iteration

The Algorithm doesn’t guarantee the termination of the computation.

◮ Solution 1 :

widening

∀Ω1, Ω2 ∈ P♯

∆, Ω1∇∆Ω2 = λd.

Ω2(d) if Ω1(d) = Ω2(d) +∞

  • therwise

14 / 21 Yassamine Seladji and Olivier Bouissou.

slide-42
SLIDE 42

Abstract domain

Fixpoint computation using Kleene iteration

The Algorithm doesn’t guarantee the termination of the computation.

◮ Solution 1 :

widening

∀Ω1, Ω2 ∈ P♯

∆, Ω1∇∆Ω2 = λd.

Ω2(d) if Ω1(d) = Ω2(d) +∞

  • therwise

◮ Solution 2 :

The accelerated Kleene iteration

14 / 21 Yassamine Seladji and Olivier Bouissou.

slide-43
SLIDE 43

The accelerated Kleene iteration

Seladji and al, JSC 2012 Static analysis Abstract element Fixpoint computation : Kleene iteration Widening + Fixpoint Numerical analysis Numerical element Numerical sequence Transformation method + Convergence point

15 / 21 Yassamine Seladji and Olivier Bouissou.

slide-44
SLIDE 44

Accelerated Kleene Algorithm

The transformation method

The Aitken-∆2 method

Let (Sn) be the initial sequence and (S′

n) its accelerated version

s.t : ∀n ∈, S′

n+1 =

Sn+1 − Sn Sn+2 − 2Sn+1 + Sn .

16 / 21 Yassamine Seladji and Olivier Bouissou.

slide-45
SLIDE 45

Accelerated Kleene Algorithm

The transformation method

The Aitken-∆2 method

Let (Sn) be the initial sequence and (S′

n) its accelerated version

s.t : ∀n ∈, S′

n+1 =

Sn+1 − Sn Sn+2 − 2Sn+1 + Sn .

Example : Sn = 1 + 1 n + 1, ∀n ≥ with limn→+∞ Sn = 1

ε0

n

ε2

n

ε4

n

ε6

n

ε8

n

2.0000000 1.5000000 1.3333333 1.2500000 1.2000000 1.1666667 1.1428571 1.1250000 1.1111111 1.1000000 16 / 21 Yassamine Seladji and Olivier Bouissou.

slide-46
SLIDE 46

Accelerated Kleene Algorithm

The transformation method

The Aitken-∆2 method

Let (Sn) be the initial sequence and (S′

n) its accelerated version

s.t : ∀n ∈, S′

n+1 =

Sn+1 − Sn Sn+2 − 2Sn+1 + Sn .

Example : Sn = 1 + 1 n + 1, ∀n ≥ with limn→+∞ Sn = 1

ε0

n

ε2

n

ε4

n

ε6

n

ε8

n

2.0000000 1.5000000 1.2500000 1.3333333 1.2500000 1.2000000 1.1666667 1.1428571 1.1250000 1.1111111 1.1000000 16 / 21 Yassamine Seladji and Olivier Bouissou.

slide-47
SLIDE 47

Accelerated Kleene Algorithm

The transformation method

The Aitken-∆2 method

Let (Sn) be the initial sequence and (S′

n) its accelerated version

s.t : ∀n ∈, S′

n+1 =

Sn+1 − Sn Sn+2 − 2Sn+1 + Sn .

Example : Sn = 1 + 1 n + 1, ∀n ≥ with limn→+∞ Sn = 1

ε0

n

ε2

n

ε4

n

ε6

n

ε8

n

2.0000000 1.5000000 1.2500000 1.3333333 1.1666667 1.2500000 1.2000000 1.1666667 1.1428571 1.1250000 1.1111111 1.1000000 16 / 21 Yassamine Seladji and Olivier Bouissou.

slide-48
SLIDE 48

Accelerated Kleene Algorithm

The transformation method

The Aitken-∆2 method

Let (Sn) be the initial sequence and (S′

n) its accelerated version

s.t : ∀n ∈, S′

n+1 =

Sn+1 − Sn Sn+2 − 2Sn+1 + Sn .

Example : Sn = 1 + 1 n + 1, ∀n ≥ with limn→+∞ Sn = 1

ε0

n

ε2

n

ε4

n

ε6

n

ε8

n

2.0000000 1.5000000 1.2500000 1.3333333 1.1666667 1.2500000 1.1249999 1.2000000 1.1666667 1.1428571 1.1250000 1.1111111 1.1000000 16 / 21 Yassamine Seladji and Olivier Bouissou.

slide-49
SLIDE 49

Accelerated Kleene Algorithm

The transformation method

The Aitken-∆2 method

Let (Sn) be the initial sequence and (S′

n) its accelerated version

s.t : ∀n ∈, S′

n+1 =

Sn+1 − Sn Sn+2 − 2Sn+1 + Sn .

Example : Sn = 1 + 1 n + 1, ∀n ≥ with limn→+∞ Sn = 1

ε0

n

ε2

n

ε4

n

ε6

n

ε8

n

2.0000000 1.5000000 1.2500000 1.3333333 1.1666667 1.2500000 1.1249999 1.2000000 1.1000001 1.1666667 1.1428571 1.1250000 1.1111111 1.1000000 16 / 21 Yassamine Seladji and Olivier Bouissou.

slide-50
SLIDE 50

Accelerated Kleene Algorithm

The transformation method

The Aitken-∆2 method

Let (Sn) be the initial sequence and (S′

n) its accelerated version

s.t : ∀n ∈, S′

n+1 =

Sn+1 − Sn Sn+2 − 2Sn+1 + Sn .

Example : Sn = 1 + 1 n + 1, ∀n ≥ with limn→+∞ Sn = 1

ε0

n

ε2

n

ε4

n

ε6

n

ε8

n

2.0000000 1.5000000 1.2500000 1.3333333 1.1666667 1.2500000 1.1249999 1.2000000 1.1000001 1.1666667 1.0833333 1.1428571 1.1250000 1.1111111 1.1000000 16 / 21 Yassamine Seladji and Olivier Bouissou.

slide-51
SLIDE 51

Accelerated Kleene Algorithm

The transformation method

The Aitken-∆2 method

Let (Sn) be the initial sequence and (S′

n) its accelerated version

s.t : ∀n ∈, S′

n+1 =

Sn+1 − Sn Sn+2 − 2Sn+1 + Sn .

Example : Sn = 1 + 1 n + 1, ∀n ≥ with limn→+∞ Sn = 1

ε0

n

ε2

n

ε4

n

ε6

n

ε8

n

2.0000000 1.5000000 1.2500000 1.3333333 1.1666667 1.2500000 1.1249999 1.2000000 1.1000001 1.1666667 1.0833333 1.1428571 1.0714287 1.1250000 1.1111111 1.1000000 16 / 21 Yassamine Seladji and Olivier Bouissou.

slide-52
SLIDE 52

Accelerated Kleene Algorithm

The transformation method

The Aitken-∆2 method

Let (Sn) be the initial sequence and (S′

n) its accelerated version

s.t : ∀n ∈, S′

n+1 =

Sn+1 − Sn Sn+2 − 2Sn+1 + Sn .

Example : Sn = 1 + 1 n + 1, ∀n ≥ with limn→+∞ Sn = 1

ε0

n

ε2

n

ε4

n

ε6

n

ε8

n

2.0000000 1.5000000 1.2500000 1.3333333 1.1666667 1.2500000 1.1249999 1.2000000 1.1000001 1.1666667 1.0833333 1.1428571 1.0714287 1.1250000 1.0624998 1.1111111 1.1000000 16 / 21 Yassamine Seladji and Olivier Bouissou.

slide-53
SLIDE 53

Accelerated Kleene Algorithm

The transformation method

The Aitken-∆2 method

Let (Sn) be the initial sequence and (S′

n) its accelerated version

s.t : ∀n ∈, S′

n+1 =

Sn+1 − Sn Sn+2 − 2Sn+1 + Sn .

Example : Sn = 1 + 1 n + 1, ∀n ≥ with limn→+∞ Sn = 1

ε0

n

ε2

n

ε4

n

ε6

n

ε8

n

2.0000000 1.5000000 1.2500000 1.3333333 1.1666667 1.2500000 1.1249999 1.2000000 1.1000001 1.1666667 1.0833333 1.1428571 1.0714287 1.1250000 1.0624998 1.1111111 1.0555557 1.1000000 16 / 21 Yassamine Seladji and Olivier Bouissou.

slide-54
SLIDE 54

Accelerated Kleene Algorithm

The transformation method

The Aitken-∆2 method

Let (Sn) be the initial sequence and (S′

n) its accelerated version

s.t : ∀n ∈, S′

n+1 =

Sn+1 − Sn Sn+2 − 2Sn+1 + Sn .

Example : Sn = 1 + 1 n + 1, ∀n ≥ with limn→+∞ Sn = 1

ε0

n

ε2

n

ε4

n

ε6

n

ε8

n

2.0000000 1.5000000 1.2500000 1.3333333 1.1666667 1.2500000 1.1249999 1.2000000 1.1000001 1.1666667 1.0833333 1.1428571 1.0714287 1.1250000 1.0624998 1.1111111 1.0555557 1.1000000 16 / 21 Yassamine Seladji and Olivier Bouissou.

slide-55
SLIDE 55

Accelerated Kleene Algorithm

The transformation method

The Aitken-∆2 method

Let (Sn) be the initial sequence and (S′

n) its accelerated version

s.t : ∀n ∈, S′

n+1 =

Sn+1 − Sn Sn+2 − 2Sn+1 + Sn .

Example : Sn = 1 + 1 n + 1, ∀n ≥ with limn→+∞ Sn = 1

ε0

n

ε2

n

ε4

n

ε6

n

ε8

n

2.0000000 1.5000000 1.2500000 1.3333333 1.1666667 1.1111109 1.2500000 1.1249999 1.0833337 1.2000000 1.1000001 1.0666663 1.1666667 1.0833333 1.0555556 1.1428571 1.0714287 1.0476161 1.1250000 1.0624998 1.0416761 1.1111111 1.0555557 1.1000000 16 / 21 Yassamine Seladji and Olivier Bouissou.

slide-56
SLIDE 56

Accelerated Kleene Algorithm

The transformation method

The Aitken-∆2 method

Let (Sn) be the initial sequence and (S′

n) its accelerated version

s.t : ∀n ∈, S′

n+1 =

Sn+1 − Sn Sn+2 − 2Sn+1 + Sn .

Example : Sn = 1 + 1 n + 1, ∀n ≥ with limn→+∞ Sn = 1

ε0

n

ε2

n

ε4

n

ε6

n

ε8

n

2.0000000 1.5000000 1.2500000 1.3333333 1.1666667 1.1111109 1.2500000 1.1249999 1.0833337 1.0624931 1.2000000 1.1000001 1.0666663 1.0500028 1.1666667 1.0833333 1.0555556 1.0416545 1.1428571 1.0714287 1.0476161 1.0357504 1.1250000 1.0624998 1.0416761 1.1111111 1.0555557 1.1000000 16 / 21 Yassamine Seladji and Olivier Bouissou.

slide-57
SLIDE 57

Accelerated Kleene Algorithm

The transformation method

The Aitken-∆2 method

Let (Sn) be the initial sequence and (S′

n) its accelerated version

s.t : ∀n ∈, S′

n+1 =

Sn+1 − Sn Sn+2 − 2Sn+1 + Sn .

Example : Sn = 1 + 1 n + 1, ∀n ≥ with limn→+∞ Sn = 1

ε0

n

ε2

n

ε4

n

ε6

n

ε8

n

2.0000000 1.5000000 1.2500000 1.3333333 1.1666667 1.1111109 1.2500000 1.1249999 1.0833337 1.0624931 1.2000000 1.1000001 1.0666663 1.0500028 1.0399799 1.1666667 1.0833333 1.0555556 1.0416545 1.0334257 1.1428571 1.0714287 1.0476161 1.0357504 1.1250000 1.0624998 1.0416761 1.1111111 1.0555557 1.1000000 16 / 21 Yassamine Seladji and Olivier Bouissou.

slide-58
SLIDE 58

Accelerated Kleene Algorithm using support function

Algorithm 2 Accelerated Kleene Algorithm using support function. Require: ∆ ⊂ ❘n, P0, A ∈ ❘n × ❘m, b ∈ ❘m

1: D = ∆, Ω = δP0(∆) 2: repeat 3:

Ω′ = Ω, Y ′ = Y

4:

for all i = 0, . . . , (l − 1) do

5:

Θ[i] = Θ[i] + b, D[i]

6:

D[i] = ATD[i]

7:

Υ[i] = δP0(d[i]) + Θ[i]

8:

Y [i] = Accelerate (Υ[0], . . . , Υ[i])

9:

if ||Y [i] − Y ′[i]|| ≤ ε then

10:

Ω[i] = max(Ω[i], Y [i])

11:

else Ω[i] = max(Ω[i], Υ[i])

12:

end if

13:

end for

14: until Ω ⊑ Ω′

17 / 21 Yassamine Seladji and Olivier Bouissou.

slide-59
SLIDE 59

Experimentation

Kleene Algorithm using support function

begin while (0<=10) do xn = 0.5 *x - y - 2.5; yn = 0.9 *y + 10; x = xn; y = yn; done; end 8 directions (0.044 seconds) 50 directions (0.34 seconds) 100 directions (0.7 seconds)

18 / 21 Yassamine Seladji and Olivier Bouissou.

slide-60
SLIDE 60

Experimentation

Accelerated Kleene Algorithm using support function

begin while (0<=10) do xn = 0.5 *x - y - 2.5; yn = 0.9 *y + 10; x = xn; y = yn; done; end 8 directions

◮ Kleene iteration using support function : 200 iterations ◮ Accelerated Kleene iteration using support function :

11 iterations

19 / 21 Yassamine Seladji and Olivier Bouissou.

slide-61
SLIDE 61

Related work

1 Le Guernic, C., Girard, A. : Reachability analysis of linear systems using support functions. Nonlinear Analysis : Hybrid Systems (2010)

P

20 / 21 Yassamine Seladji and Olivier Bouissou.

slide-62
SLIDE 62

Related work

1 Le Guernic, C., Girard, A. : Reachability analysis of linear systems using support functions. Nonlinear Analysis : Hybrid Systems (2010) 2 S. Sankaranarayanan, H. Sipma, and Z. Manna. Scalable analysis of linear systems using mathematical programming. In

  • VMCAI. Springer, 2005.

P

20 / 21 Yassamine Seladji and Olivier Bouissou.

slide-63
SLIDE 63

Related work

1 Le Guernic, C., Girard, A. : Reachability analysis of linear systems using support functions. Nonlinear Analysis : Hybrid Systems (2010) 2 S. Sankaranarayanan, H. Sipma, and Z. Manna. Scalable analysis of linear systems using mathematical programming. In

  • VMCAI. Springer, 2005.

Similarities :

◮ Abstract domain based on a static choice of directions set. ◮ The same definition of inclusion, meet and join operators.

P

20 / 21 Yassamine Seladji and Olivier Bouissou.

slide-64
SLIDE 64

Related work

1 Le Guernic, C., Girard, A. : Reachability analysis of linear systems using support functions. Nonlinear Analysis : Hybrid Systems (2010) 2 S. Sankaranarayanan, H. Sipma, and Z. Manna. Scalable analysis of linear systems using mathematical programming. In

  • VMCAI. Springer, 2005.

Similarities :

◮ Abstract domain based on a static choice of directions set. ◮ The same definition of inclusion, meet and join operators.

Differences :

◮ We have the property that : α∆(Pi) = Ωi, which is not true

for the template abstract domain.

◮ Our domain reduces the use of linear programming but it’s less

general than the template abstract domain.

20 / 21 Yassamine Seladji and Olivier Bouissou.

slide-65
SLIDE 65

Conclusion and future work

Conclusion

◮ We develop a new numerical abstract domain based on

support function.

◮ Our abstract domain depends on a set of finite directions. ◮ In the case where the fixpoint computation terminates, it is

  • btained in a polynomial time.

Perspectives

◮ Implements this domain on APRON. ◮ According to the program to analyse, defines a relevant set of

directions.

21 / 21 Yassamine Seladji and Olivier Bouissou.