Definability of Accelerated Relations in a Theory of Arrays and its - - PowerPoint PPT Presentation

definability of accelerated relations in a theory of
SMART_READER_LITE
LIVE PREVIEW

Definability of Accelerated Relations in a Theory of Arrays and its - - PowerPoint PPT Presentation

Definability of Accelerated Relations in a Theory of Arrays and its Applications F. Alberti 1 , S. Ghilardi 2 , N. Sharygina 1 1 University of Lugano, Switzerland 2 University of Milan, Italy 9th International Symposium on Frontiers of Combining


slide-1
SLIDE 1

Definability of Accelerated Relations in a Theory of Arrays and its Applications

  • F. Alberti1, S. Ghilardi2, N. Sharygina1

1University of Lugano, Switzerland 2 University of Milan, Italy

9th International Symposium on Frontiers of Combining Systems September 18, 2013

slide-2
SLIDE 2

Context: Reachability analysis

ST = ( v , I(v) , τ(v, v′) )

Ingredients: transition system ST and a safety property P(v) Reachability analysis: establish if it is possible to reach ¬P(v)

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 1 / 24

slide-3
SLIDE 3

Context: Reachability analysis

ST = ( v , I(v) , τ(v, v′) )

Ingredients: transition system ST and a safety property P(v) Reachability analysis: establish if it is possible to reach ¬P(v) ⇒ T is Presburger arithmetic enriched with free function symbols satisfiability and validity with respect to structures having the standard structure of natural numbers as reduct v contains free unary function symbols (a) and free constants (c)

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 1 / 24

slide-4
SLIDE 4

Context: Reachability analysis

Backward search

We iteratively compute the preimage of ¬P applying backward τ ¬P I

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 2 / 24

slide-5
SLIDE 5

Context: Reachability analysis

Backward search

We iteratively compute the preimage of ¬P applying backward τ R1 ¬P I

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 2 / 24

slide-6
SLIDE 6

Context: Reachability analysis

Backward search

We iteratively compute the preimage of ¬P applying backward τ R2 R1 ¬P I

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 2 / 24

slide-7
SLIDE 7

Context: Reachability analysis

Backward search

We iteratively compute the preimage of ¬P applying backward τ Rn R2 R1 ¬P I

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 2 / 24

slide-8
SLIDE 8

Context: Reachability analysis

Backward search

We iteratively compute the preimage of ¬P applying backward τ ... until we find an intersection with the set of initial states... Rn R2 R1 ¬P I

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 2 / 24

slide-9
SLIDE 9

Context: Reachability analysis

Backward search

We iteratively compute the preimage of ¬P applying backward τ ... until we find an intersection with the set of initial states... ... or a (global) fix-point. Rn R2 R1 ¬P I

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 2 / 24

slide-10
SLIDE 10

Context: Reachability analysis

Backward search

Reduce intersection and fix-point test to SMT problems: Intersection test: is I ∧ Rn T-satisfiable? Rn R2 R1 ¬P I

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 3 / 24

slide-11
SLIDE 11

Context: Reachability analysis

Backward search

Reduce intersection and fix-point test to SMT problems: Intersection test: is I ∧ Rn T-satisfiable? Fix-point test: is Rn+1 → Rn T-valid? ...or dually: is Rn+1 ∧ ¬Rn T-unsatisfiable? Rn R2 R1 ¬P I

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 3 / 24

slide-12
SLIDE 12

Context: Reachability analysis

Backward search - divergence

Precise reachability analysis (usually) diverges on infinite-state systems

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 4 / 24

slide-13
SLIDE 13

Context: Reachability analysis

Backward search - divergence

Precise reachability analysis (usually) diverges on infinite-state systems Common experience with verification of annotated code

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 4 / 24

slide-14
SLIDE 14

Context: Reachability analysis

Backward search - divergence

Precise reachability analysis (usually) diverges on infinite-state systems Common experience with verification of annotated code ⇒ Acceleration can help in limiting divergence!

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 4 / 24

slide-15
SLIDE 15

Acceleration

Example1

procedure Find( int e ) { lI i = 0; lL while ( i < L ∧ a[i] = e ) { i = i + 1; } lF assert ( ∀x.(0 ≤ x < i) → a[x] = e ); }

1Assume we exit the loop because we reach the end of the array.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 5 / 24

slide-16
SLIDE 16

Acceleration

Example1

procedure Find( int e ) { lI i = 0; lL while ( i < L ∧ a[i] = e ) { i = i + 1; } lF assert ( ∀x.(0 ≤ x < i) → a[x] = e ); }

τ1 := pc = lL ∧ i < L ∧ a[i] = e

  • guard

∧ i′ = i + 1

  • update

1Assume we exit the loop because we reach the end of the array.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 5 / 24

slide-17
SLIDE 17

Acceleration

Example1

τ1 := pc = lL ∧ i < L ∧ a[i] = e

  • guard

∧ i′ = i + 1

  • update

1Assume we exit the loop because we reach the end of the array.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 5 / 24

slide-18
SLIDE 18

Acceleration

Example1

x i a · · · e · · ·

∃x.0 ≤ x ∧ x < i ∧ a[x] = e ∧ i ≥ L τ1 := pc = lL ∧ i < L ∧ a[i] = e

  • guard

∧ i′ = i + 1

  • update

1Assume we exit the loop because we reach the end of the array.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 5 / 24

slide-19
SLIDE 19

Acceleration

Example1

x i × a · · · e · · ·

∃x.0 ≤ x ∧ x < i + 1 ∧ a[x] = e ∧ i + 1 = L ∧ a[i] = e τ1 := pc = lL ∧ i < L ∧ a[i] = e

  • guard

∧ i′ = i + 1

  • update

1Assume we exit the loop because we reach the end of the array.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 5 / 24

slide-20
SLIDE 20

Acceleration

Example1

x × × i a · · · e · · ·

∃x.0 ≤ x ∧ x < i + 2 ∧ a[x] = e ∧ i + 2 = L ∧ a[i] = e ∧ a[i + 1] = e τ1 := pc = lL ∧ i < L ∧ a[i] = e

  • guard

∧ i′ = i + 1

  • update

1Assume we exit the loop because we reach the end of the array.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 5 / 24

slide-21
SLIDE 21

Acceleration

Example1

x × × × i a · · · e · · ·

∃x.0 ≤ x ∧ x < i + 3 ∧ a[x] = e ∧ i + 3 = L ∧ a[i] = e ∧ a[i + 1] = e ∧ a[i + 2] = e τ1 := pc = lL ∧ i < L ∧ a[i] = e

  • guard

∧ i′ = i + 1

  • update

1Assume we exit the loop because we reach the end of the array.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 5 / 24

slide-22
SLIDE 22

Acceleration

Example1

x × × × · · · i a · · · e · · ·

∃x.0 ≤ x ∧ x < i + n ∧ a[x] = e ∧ i + n = L ∧

n−1

  • k=0

a[i + k] = e τ1 := pc = lL ∧ i < L ∧ a[i] = e

  • guard

∧ i′ = i + 1

  • update

1Assume we exit the loop because we reach the end of the array.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 5 / 24

slide-23
SLIDE 23

Acceleration

Preventing divergence Find control-flow graph:

I l1 ¯ P τ0 τ1 τ2

Precise backward reachability

¯ P v1 ⊥ v2 ⊥ v3 ⊥

τ2 τ0 τ1 τ0 τ1 τ0 τ1

With accelerated transitions (desired behavior)

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 6 / 24

slide-24
SLIDE 24

Acceleration

Preventing divergence Find control-flow graph:

I l1 ¯ P τ0 τ1 τ2

Precise backward reachability

¯ P v1 ⊥ v2 ⊥ v3 ⊥

τ2 τ0 τ1 τ0 τ1 τ0 τ1

With accelerated transitions (desired behavior)

¯ P v1 v2 v+

2

v3 v+

3

v1 ⊥

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 6 / 24

slide-25
SLIDE 25

Acceleration

Preventing divergence Find control-flow graph:

I l1 ¯ P τ0 τ1 τ2

Precise backward reachability

¯ P v1 ⊥ v2 ⊥ v3 ⊥

τ2 τ0 τ1 τ0 τ1 τ0 τ1

With accelerated transitions (desired behavior)

¯ P v1 v2 v+

2

v3 v+

3

v1 ⊥

τ2

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 6 / 24

slide-26
SLIDE 26

Acceleration

Preventing divergence Find control-flow graph:

I l1 ¯ P τ0 τ1 τ2

Precise backward reachability

¯ P v1 ⊥ v2 ⊥ v3 ⊥

τ2 τ0 τ1 τ0 τ1 τ0 τ1

With accelerated transitions (desired behavior)

¯ P v1 v2 v+

2

v3 v+

3

⊥ ⊥

τ2 τ0

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 6 / 24

slide-27
SLIDE 27

Acceleration

Preventing divergence Find control-flow graph:

I l1 ¯ P τ0 τ1 τ2

Precise backward reachability

¯ P v1 ⊥ v2 ⊥ v3 ⊥

τ2 τ0 τ1 τ0 τ1 τ0 τ1

With accelerated transitions (desired behavior)

¯ P v1 v2 v+

2

v3 v+

3

⊥ ⊥

τ2 τ1 τ0

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 6 / 24

slide-28
SLIDE 28

Acceleration

Preventing divergence Find control-flow graph:

I l1 ¯ P τ0 τ1 τ2

Precise backward reachability

¯ P v1 ⊥ v2 ⊥ v3 ⊥

τ2 τ0 τ1 τ0 τ1 τ0 τ1

With accelerated transitions (desired behavior)

¯ P v1 v2 v+

2

v3 v+

3

⊥ ⊥

τ2 τ1 τ +

1

τ0

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 6 / 24

slide-29
SLIDE 29

Acceleration

Preventing divergence Find control-flow graph:

I l1 ¯ P τ0 τ1 τ2

Precise backward reachability

¯ P v1 ⊥ v2 ⊥ v3 ⊥

τ2 τ0 τ1 τ0 τ1 τ0 τ1

With accelerated transitions (desired behavior)

¯ P v1 v2 v+

2

v3 v+

3

⊥ ⊥

τ2 τ1 τ +

1

τ0

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 6 / 24

slide-30
SLIDE 30

Acceleration

Preventing divergence Find control-flow graph:

I l1 ¯ P τ0 τ1 τ2

Precise backward reachability

¯ P v1 ⊥ v2 ⊥ v3 ⊥

τ2 τ0 τ1 τ0 τ1 τ0 τ1

With accelerated transitions (desired behavior)

¯ P v1 v2 v+

2

v3 v+

3

⊥ ⊥

τ2 τ1 τ +

1

τ0 τ0

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 6 / 24

slide-31
SLIDE 31

Acceleration

Preventing divergence Find control-flow graph:

I l1 ¯ P τ0 τ1 τ2

Precise backward reachability

¯ P v1 ⊥ v2 ⊥ v3 ⊥

τ2 τ0 τ1 τ0 τ1 τ0 τ1

With accelerated transitions (desired behavior)

¯ P v1 v2 v+

2

v3 v+

3

⊥ ⊥

τ2 τ1 τ +

1

τ1 τ0 τ0

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 6 / 24

slide-32
SLIDE 32

Acceleration

Preventing divergence Find control-flow graph:

I l1 ¯ P τ0 τ1 τ2

Precise backward reachability

¯ P v1 ⊥ v2 ⊥ v3 ⊥

τ2 τ0 τ1 τ0 τ1 τ0 τ1

With accelerated transitions (desired behavior)

¯ P v1 v2 v+

2

v3 v+

3

⊥ ⊥

τ2 τ1 τ +

1

τ1 τ0 τ0

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 6 / 24

slide-33
SLIDE 33

Acceleration

Preventing divergence Find control-flow graph:

I l1 ¯ P τ0 τ1 τ2

Precise backward reachability

¯ P v1 ⊥ v2 ⊥ v3 ⊥

τ2 τ0 τ1 τ0 τ1 τ0 τ1

With accelerated transitions (desired behavior)

¯ P v1 v2 v+

2

v3 v+

3

⊥ ⊥

τ2 τ1 τ +

1

τ1 τ +

1

τ0 τ0

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 6 / 24

slide-34
SLIDE 34

Acceleration

Preventing divergence Find control-flow graph:

I l1 ¯ P τ0 τ1 τ2

Precise backward reachability

¯ P v1 ⊥ v2 ⊥ v3 ⊥

τ2 τ0 τ1 τ0 τ1 τ0 τ1

With accelerated transitions (desired behavior)

¯ P v1 v2 v+

2

v3 v+

3

⊥ ⊥

τ2 τ1 τ +

1

τ1 τ +

1

τ0 τ0

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 6 / 24

slide-35
SLIDE 35

Acceleration

State of the art

Acceleration: Transitive closure τ + of transitions τ encoding cyclic actions

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 7 / 24

slide-36
SLIDE 36

Acceleration

State of the art

Acceleration: Transitive closure τ + of transitions τ encoding cyclic actions Challenges: In general transitive closure cannot be expressed in FOL

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 7 / 24

slide-37
SLIDE 37

Acceleration

State of the art

Acceleration: Transitive closure τ + of transitions τ encoding cyclic actions Challenges: In general transitive closure cannot be expressed in FOL Only some (important) classes of τ’s allow the definability of τ +

Polling-based systems [BBD+02] Imperative programs over integers [BIK10]

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 7 / 24

slide-38
SLIDE 38

Acceleration

State of the art

Acceleration: Transitive closure τ + of transitions τ encoding cyclic actions Challenges: In general transitive closure cannot be expressed in FOL Only some (important) classes of τ’s allow the definability of τ +

Polling-based systems [BBD+02] Imperative programs over integers [BIK10]

What about arrays?

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 7 / 24

slide-39
SLIDE 39

Acceleration for arrays

Contributions

In theory: Identification of classes of transitions τ over arrays admitting definable acceleration

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 8 / 24

slide-40
SLIDE 40

Acceleration for arrays

Contributions

In theory: Identification of classes of transitions τ over arrays admitting definable acceleration Determine the price to pay for expressing τ +

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 8 / 24

slide-41
SLIDE 41

Acceleration for arrays

Contributions

In theory: Identification of classes of transitions τ over arrays admitting definable acceleration Determine the price to pay for expressing τ + In practice: Template-based solution

✔ High degree of automation ✔ Computationally cheap

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 8 / 24

slide-42
SLIDE 42

Acceleration for arrays

Contributions

In theory: Identification of classes of transitions τ over arrays admitting definable acceleration Determine the price to pay for expressing τ + In practice: Template-based solution

✔ High degree of automation ✔ Computationally cheap

Combination with abstraction-based frameworks

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 8 / 24

slide-43
SLIDE 43

Acceleration for arrays

Example

τ1 := pc = lL ∧ i < L ∧ a[i] = e

  • guard

∧ i′ = i + 1

  • update
  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 9 / 24

slide-44
SLIDE 44

Acceleration for arrays

Example

τ1 := pc = lL ∧ i < L ∧ a[i] = e

  • guard

∧ i′ = i + 1

  • update

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 9 / 24

slide-45
SLIDE 45

Acceleration for arrays

Example

τ1 := pc = lL ∧ i < L ∧ a[i] = e

  • guard

∧ i′ = i + 1

  • update

⇓ τ +

1 := ∃y.

   y > 0 ∧ pc = lL ∧ ∀j.( i ≤ j < i + y → j < L ∧ a[j] = e ) i′ = i + y   

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 9 / 24

slide-46
SLIDE 46

Acceleration for arrays

Example

τ1 := pc = lL ∧ i < L ∧ a[i] = e

  • guard

∧ i′ = i + 1

  • update

⇓ τ +

1 := ∃y.

   y > 0 ∧ pc = lL ∧ ∀j.( i ≤ j < i + y → j < L ∧ a[j] = e ) i′ = i + y   

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 9 / 24

slide-47
SLIDE 47

The formal framework

Iterators

Definition (Iterators)

A tuple of m-ary terms u(x) is said to be an iterator iff there exists an m-tuple of m + 1-ary terms u∗(x, y) such that for any natural number n it happens that the formula un(x) = u∗(x, ¯ n) is valid.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 10 / 24

slide-48
SLIDE 48

The formal framework

Iterators

Definition (Iterators)

A tuple of m-ary terms u(x) is said to be an iterator iff there exists an m-tuple of m + 1-ary terms u∗(x, y) such that for any natural number n it happens that the formula un(x) = u∗(x, ¯ n) is valid.

Example

u(x) := x + 1

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 10 / 24

slide-49
SLIDE 49

The formal framework

Iterators

Definition (Iterators)

A tuple of m-ary terms u(x) is said to be an iterator iff there exists an m-tuple of m + 1-ary terms u∗(x, y) such that for any natural number n it happens that the formula un(x) = u∗(x, ¯ n) is valid.

Example

u(x) := x + 1 u∗(x, y) := x + y

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 10 / 24

slide-50
SLIDE 50

The formal framework

Selectors

Definition (Selectors)

Given an iterator u(x), an m-ary term κ(x1, . . . , xm) is a selector for u(x) iff there is an m + 1-ary term ι(x1, . . . , xm, y) yielding the validity

  • f the formula

z = κ(u∗(x, y)) → y = ι(x, z)

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 11 / 24

slide-51
SLIDE 51

The formal framework

Selectors

Definition (Selectors)

Given an iterator u(x), an m-ary term κ(x1, . . . , xm) is a selector for u(x) iff there is an m + 1-ary term ι(x1, . . . , xm, y) yielding the validity

  • f the formula

z = κ(u∗(x, y)) → y = ι(x, z) Most likely κ is a projection

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 11 / 24

slide-52
SLIDE 52

The formal framework

Selectors

Definition (Selectors)

Given an iterator u(x), an m-ary term κ(x1, . . . , xm) is a selector for u(x) iff there is an m + 1-ary term ι(x1, . . . , xm, y) yielding the validity

  • f the formula

z = κ(u∗(x, y)) → y = ι(x, z) Most likely κ is a projection Can a cell z be reached in m iterations? The number ι(x, z) gives “the only possible candidate” y number

  • f iterations

z = κ(u∗(x, y)) checks if the candidate y is correct

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 11 / 24

slide-53
SLIDE 53

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; }

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-54
SLIDE 54

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-55
SLIDE 55

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-56
SLIDE 56

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y κ(x) := x

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-57
SLIDE 57

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y κ(x) := x ι(i, z) := z−i

2

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-58
SLIDE 58

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y κ(x) := x ι(i, z) := z−i

2

  • Example

i = 3

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-59
SLIDE 59

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y κ(x) := x ι(i, z) := z−i

2

  • Example

i = 3 a[7] in 3 iterations?

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-60
SLIDE 60

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y κ(x) := x ι(i, z) := z−i

2

  • Example

i = 3 a[7] in 3 iterations? ι(i, z) = 7−3

2

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-61
SLIDE 61

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y κ(x) := x ι(i, z) := z−i

2

  • Example

i = 3 a[7] in 3 iterations? ι(i, z) = 7−3

2

  • = 2
  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-62
SLIDE 62

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y κ(x) := x ι(i, z) := z−i

2

  • Example

i = 3 a[7] in 3 iterations? ι(i, z) = 7−3

2

  • = 2

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-63
SLIDE 63

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y κ(x) := x ι(i, z) := z−i

2

  • Example

i = 3 a[7] in 3 iterations? ι(i, z) = 7−3

2

  • = 2

✔ u∗(i, 2) = 3 + 2 · 2 = 7

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-64
SLIDE 64

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y κ(x) := x ι(i, z) := z−i

2

  • Example

i = 3 a[7] in 3 iterations? ι(i, z) = 7−3

2

  • = 2

✔ u∗(i, 2) = 3 + 2 · 2 = 7 ✔

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-65
SLIDE 65

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y κ(x) := x ι(i, z) := z−i

2

  • Example

i = 3 a[7] in 3 iterations? ι(i, z) = 7−3

2

  • = 2

✔ u∗(i, 2) = 3 + 2 · 2 = 7 ✔ i = 3

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-66
SLIDE 66

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y κ(x) := x ι(i, z) := z−i

2

  • Example

i = 3 a[7] in 3 iterations? ι(i, z) = 7−3

2

  • = 2

✔ u∗(i, 2) = 3 + 2 · 2 = 7 ✔ i = 3 a[6] in 3 iterations?

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-67
SLIDE 67

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y κ(x) := x ι(i, z) := z−i

2

  • Example

i = 3 a[7] in 3 iterations? ι(i, z) = 7−3

2

  • = 2

✔ u∗(i, 2) = 3 + 2 · 2 = 7 ✔ i = 3 a[6] in 3 iterations? ι(i, z) = 6−3

2

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-68
SLIDE 68

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y κ(x) := x ι(i, z) := z−i

2

  • Example

i = 3 a[7] in 3 iterations? ι(i, z) = 7−3

2

  • = 2

✔ u∗(i, 2) = 3 + 2 · 2 = 7 ✔ i = 3 a[6] in 3 iterations? ι(i, z) = 6−3

2

  • = 1
  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-69
SLIDE 69

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y κ(x) := x ι(i, z) := z−i

2

  • Example

i = 3 a[7] in 3 iterations? ι(i, z) = 7−3

2

  • = 2

✔ u∗(i, 2) = 3 + 2 · 2 = 7 ✔ i = 3 a[6] in 3 iterations? ι(i, z) = 6−3

2

  • = 1

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-70
SLIDE 70

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y κ(x) := x ι(i, z) := z−i

2

  • Example

i = 3 a[7] in 3 iterations? ι(i, z) = 7−3

2

  • = 2

✔ u∗(i, 2) = 3 + 2 · 2 = 7 ✔ i = 3 a[6] in 3 iterations? ι(i, z) = 6−3

2

  • = 1

✔ u∗(i, 1) = 3 + 2 · 1 = 5

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-71
SLIDE 71

The formal framework

Example

while ( true ) { a[i] = 0; i = i + 2; } iterator: u(i) := i + 2 u∗(i, y) = i + 2y κ(x) := x ι(i, z) := z−i

2

  • Example

i = 3 a[7] in 3 iterations? ι(i, z) = 7−3

2

  • = 2

✔ u∗(i, 2) = 3 + 2 · 2 = 7 ✔ i = 3 a[6] in 3 iterations? ι(i, z) = 6−3

2

  • = 1

✔ u∗(i, 1) = 3 + 2 · 1 = 5 ✘

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 12 / 24

slide-72
SLIDE 72

The formal framework

Local ground assignments

Definition (Local ground assignment)

A local ground assignment is a ground assignment of the form pc = l ∧ φL(a, c) ∧ pc′ = l ∧ a′ = wr(a, κ(˜ c), t(a, c)) ∧ ˜ c′ = u(˜ c) ∧ d′ = d

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 13 / 24

slide-73
SLIDE 73

The formal framework

Local ground assignments

Definition (Local ground assignment)

A local ground assignment is a ground assignment of the form pc = l ∧ φL(a, c) ∧ pc′ = l ∧ a′ = wr(a, κ(˜ c), t(a, c)) ∧ ˜ c′ = u(˜ c) ∧ d′ = d where (i) c = ˜ c, d;

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 13 / 24

slide-74
SLIDE 74

The formal framework

Local ground assignments

Definition (Local ground assignment)

A local ground assignment is a ground assignment of the form pc = l ∧ φL(a, c) ∧ pc′ = l ∧ a′ = wr(a, κ(˜ c), t(a, c)) ∧ ˜ c′ = u(˜ c) ∧ d′ = d where (i) c = ˜ c, d; (ii) u = u1, . . . , u|˜

c| is an iterator;

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 13 / 24

slide-75
SLIDE 75

The formal framework

Local ground assignments

Definition (Local ground assignment)

A local ground assignment is a ground assignment of the form pc = l ∧ φL(a, c) ∧ pc′ = l ∧ a′ = wr(a, κ(˜ c), t(a, c)) ∧ ˜ c′ = u(˜ c) ∧ d′ = d where (i) c = ˜ c, d; (ii) u = u1, . . . , u|˜

c| is an iterator;

(iii) the terms κ are a selector assignment for a relative to u;

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 13 / 24

slide-76
SLIDE 76

The formal framework

Local ground assignments

Definition (Local ground assignment)

A local ground assignment is a ground assignment of the form pc = l ∧ φL(a, c) ∧ pc′ = l ∧ a′ = wr(a, κ(˜ c), t(a, c)) ∧ ˜ c′ = u(˜ c) ∧ d′ = d where (i) c = ˜ c, d; (ii) u = u1, . . . , u|˜

c| is an iterator;

(iii) the terms κ are a selector assignment for a relative to u; (iv) the formula φL(a, c) and the terms t(a, c) are purely arithmetical

  • ver the set of terms {c, a(κ(˜

c))} ∪ {ai(dj)}1≤i≤s,1≤j≤|d|;

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 13 / 24

slide-77
SLIDE 77

The formal framework

Local ground assignments

Definition (Local ground assignment)

A local ground assignment is a ground assignment of the form pc = l ∧ φL(a, c) ∧ pc′ = l ∧ a′ = wr(a, κ(˜ c), t(a, c)) ∧ ˜ c′ = u(˜ c) ∧ d′ = d where (i) c = ˜ c, d; (ii) u = u1, . . . , u|˜

c| is an iterator;

(iii) the terms κ are a selector assignment for a relative to u; (iv) the formula φL(a, c) and the terms t(a, c) are purely arithmetical

  • ver the set of terms {c, a(κ(˜

c))} ∪ {ai(dj)}1≤i≤s,1≤j≤|d|; (v) the guard φL contains the conjuncts κi(˜ c) = dj, for 1 ≤ i ≤ s and 1 ≤ j ≤ |d|.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 13 / 24

slide-78
SLIDE 78

The formal framework

Contribution

Theorem

If τ is a local ground assignment, then τ + is a Σ0

2-assignment.

Francesco Alberti, Silvio Ghilardi, and Natasha Sharygina. Tackling divergence: abstraction and acceleration in array programs. Technical Report 2012/01, University of Lugano, oct 2012.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 14 / 24

slide-79
SLIDE 79

The formal framework

Contribution

Theorem

If τ is a local ground assignment, then τ + is a Σ0

2-assignment.

Francesco Alberti, Silvio Ghilardi, and Natasha Sharygina. Tackling divergence: abstraction and acceleration in array programs. Technical Report 2012/01, University of Lugano, oct 2012. The proof of the theorem shows the “template” for τ +

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 14 / 24

slide-80
SLIDE 80

The formal framework

Contribution

Theorem

If τ is a local ground assignment, then τ + is a Σ0

2-assignment.

Francesco Alberti, Silvio Ghilardi, and Natasha Sharygina. Tackling divergence: abstraction and acceleration in array programs. Technical Report 2012/01, University of Lugano, oct 2012. The proof of the theorem shows the “template” for τ + The template is parametric with respect to

iterators selectors

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 14 / 24

slide-81
SLIDE 81

Tool architecture

ST = v, I(v), τ(v, v′) I1, I2, . . ., S1, S2, . . . Loop identification Acceleration Model Checker ✔ ? ✘

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 15 / 24

slide-82
SLIDE 82

Acceleration for arrays

Practical issue - classification of formulas

Different kind of formulas2 representing the (backward reachable) state-space: ground – formulas of the kind φ(v)

2In all the formulas we admit the term a(t) only if t is a variable or a constant.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 16 / 24

slide-83
SLIDE 83

Acceleration for arrays

Practical issue - classification of formulas

Different kind of formulas2 representing the (backward reachable) state-space: ground – formulas of the kind φ(v) Σ0

1 – formulas of the kind ∃i.φ(i, v)

2In all the formulas we admit the term a(t) only if t is a variable or a constant.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 16 / 24

slide-84
SLIDE 84

Acceleration for arrays

Practical issue - classification of formulas

Different kind of formulas2 representing the (backward reachable) state-space: ground – formulas of the kind φ(v) Σ0

1 – formulas of the kind ∃i.φ(i, v)

Σ0

2 – formulas of the kind ∃i∀j.φ(i, j, v)

2In all the formulas we admit the term a(t) only if t is a variable or a constant.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 16 / 24

slide-85
SLIDE 85

Acceleration for arrays

Practical issue - classification of formulas

Different kind of formulas2 representing the (backward reachable) state-space: ground – formulas of the kind φ(v) Σ0

1 – formulas of the kind ∃i.φ(i, v)

Σ0

2 – formulas of the kind ∃i∀j.φ(i, j, v)

Σ0

2-formulas might not fall in any known decidable fragment

[BMS06, GdM09]

2In all the formulas we admit the term a(t) only if t is a variable or a constant.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 16 / 24

slide-86
SLIDE 86

Acceleration for arrays

Practical issue - classification of transitions

Transition formulas can be: ground assignment – transitions of the kind τ(v, v′) Σ0

1-assignment – transitions of the kind ∃i.τ(i, v, v′)

Σ0

2-assignment – transitions of the kind ∃i∀j.τ(i, j, v, v′)

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 17 / 24

slide-87
SLIDE 87

Acceleration for arrays

Practical issue - classification of transitions

Transition formulas can be: ground assignment – transitions of the kind τ(v, v′) Σ0

1-assignment – transitions of the kind ∃i.τ(i, v, v′)

Σ0

2-assignment – transitions of the kind ∃i∀j.τ(i, j, v, v′)

Preimages with respect to a Σ0

2-assignment are Σ0 2-formulas

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 17 / 24

slide-88
SLIDE 88

Acceleration for arrays

Practical issue - classification of transitions

Transition formulas can be: ground assignment – transitions of the kind τ(v, v′) Σ0

1-assignment – transitions of the kind ∃i.τ(i, v, v′)

Σ0

2-assignment – transitions of the kind ∃i∀j.τ(i, j, v, v′)

Preimages with respect to a Σ0

2-assignment are Σ0 2-formulas

This prevents the practical application of the theoretical result!

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 17 / 24

slide-89
SLIDE 89

Acceleration for arrays

Practical issue - classification of transitions

Transition formulas can be: ground assignment – transitions of the kind τ(v, v′) Σ0

1-assignment – transitions of the kind ∃i.τ(i, v, v′)

Σ0

2-assignment – transitions of the kind ∃i∀j.τ(i, j, v, v′)

Preimages with respect to a Σ0

2-assignment are Σ0 2-formulas

This prevents the practical application of the theoretical result! Solution: over-approximate problematic Σ0

2-formulas with their

monotonic abstraction [AGP+12]

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 17 / 24

slide-90
SLIDE 90

Acceleration for arrays

Example

I l1 ¯ P τ0 τ1 τ2 ¯ P v1 v2 v+

2

v3 v+

3

⊥ ⊥

τ2 τ1 τ +

1

τ0

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 18 / 24

slide-91
SLIDE 91

Acceleration for arrays

Example

I l1 ¯ P τ0 τ1 τ2 ¯ P v1 v2 v+

2

v3 v+

3

⊥ ⊥

τ2 τ1 τ +

1

τ0

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 18 / 24

slide-92
SLIDE 92

Acceleration for arrays

Example

v1 v+

2

v+

2

v2 τ +

1

τ1

Instantiate ∀j over ∃i Might produce spurious counterexamples

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 19 / 24

slide-93
SLIDE 93

Acceleration for arrays

Example

v1 v+

2

v+

2

v2 τ +

1

τ1

Instantiate ∀j over ∃i This is a Σ0

2-formula

Might produce spurious counterexamples

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 19 / 24

slide-94
SLIDE 94

Acceleration for arrays

Example

v1 v+

2

v+

2

v2 τ +

1

τ1

Instantiate ∀j over ∃i This is a Σ0

2-formula

Might produce spurious counterexamples ∃x, y ∀j.    pc = lL ∧ y > 0 ∧ (i ≤ j < i + y → j < L ∧ a[j] = e) ∧ 0 ≤ x < i ∧ a[x] = e ∧ i + y ≥ L   

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 19 / 24

slide-95
SLIDE 95

Acceleration for arrays

Example

v1 v+

2

v+

2

v2 τ +

1

τ1

Instantiation pushes it back to Σ0

1

Instantiate j over {x, y, i, i + y, . . .} Might produce spurious counterexamples ∃x, y ∀j.    pc = lL ∧ y > 0 ∧ (i ≤ j < i + y → j < L ∧ a[j] = e) ∧ 0 ≤ x < i ∧ a[x] = e ∧ i + y ≥ L   

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 19 / 24

slide-96
SLIDE 96

Acceleration for arrays

Example

v1 v+

2

v+

2

v+

2

v2 τ +

1

τ1

Instantiate ∀j over ∃i Might produce spurious counterexamples

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 19 / 24

slide-97
SLIDE 97

Acceleration for arrays

Example

v1 v+

2

v+

2

v+

2

v2 τ +

1

τ1

Instantiate ∀j over ∃i More instantiations (more precise) Might produce spurious counterexamples

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 19 / 24

slide-98
SLIDE 98

Acceleration for arrays

Example

v1 v+

2

v+

2

v+

2

v2 τ +

1

τ1

Instantiate ∀j over ∃i More instantiations (more precise) Less instantiations (less precise) Might produce spurious counterexamples

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 19 / 24

slide-99
SLIDE 99

Acceleration for arrays

Example

v1 v+

2

v+

2

v+

2

v2 τ +

1

τ1

Instantiate ∀j over ∃i Might produce spurious counterexamples

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 19 / 24

slide-100
SLIDE 100

Acceleration for arrays

Ad-hoc refinement for monotonic abstraction

¬P J K+ K I τ +

i

τi

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 20 / 24

slide-101
SLIDE 101

Acceleration for arrays

Ad-hoc refinement for monotonic abstraction

¬P J K τi

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 20 / 24

slide-102
SLIDE 102

Acceleration for arrays

Experiments

Implemented in the mcmt model checker

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 21 / 24

slide-103
SLIDE 103

Acceleration for arrays

Experiments

Implemented in the mcmt model checker Tested on 55 challenging benchmarks on arrays

initializing searching sorting etc.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 21 / 24

slide-104
SLIDE 104

Acceleration for arrays

Experiments

function allDiff ( int a[N] ) : 1 r = true; 2 for (i = 1; i < N ∧ r; i++) 3 for (j = i-1; j ≥ 0 ∧ r; j--) 4 if (a[i] = a[j]) r = false; 5 assert (r → (∀x, y(0 ≤ x < y < N) → (a[x] = a[y])))

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 22 / 24

slide-105
SLIDE 105

Acceleration for arrays

Experiments

function allDiff ( int a[N] ) : 1 r = true; 2 for (i = 1; i < N ∧ r; i++) 3 for (j = i-1; j ≥ 0 ∧ r; j--) 4 if (a[i] = a[j]) r = false; 5 assert (r → (∀x, y(0 ≤ x < y < N) → (a[x] = a[y])))

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 22 / 24

slide-106
SLIDE 106

Acceleration for arrays

Experiments

0.01 0.1 1 10 0.01 0.1 1 10 Acceleration Abstraction

mcmt running time

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 23 / 24

slide-107
SLIDE 107

Acceleration for arrays

Experiments

0.01 0.1 1 10 0.01 0.1 1 10

  • Accel. + Abstr.

Abstraction

mcmt running time

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 23 / 24

slide-108
SLIDE 108

Acceleration for arrays

Experiments

0.01 0.1 1 10 0.01 0.1 1 10

  • Accel. + Abstr.

Acceleration

mcmt running time

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 23 / 24

slide-109
SLIDE 109

Conclusion

Accelerations of local ground assignments are Σ0

2-assignments

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 24 / 24

slide-110
SLIDE 110

Conclusion

Accelerations of local ground assignments are Σ0

2-assignments

Template-based computation of τ +

High degree of automation Computationally cheap

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 24 / 24

slide-111
SLIDE 111

Conclusion

Accelerations of local ground assignments are Σ0

2-assignments

Template-based computation of τ +

High degree of automation Computationally cheap

monotonic abstraction to over-approximate problematic preimages with respect to accelerated transitions

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 24 / 24

slide-112
SLIDE 112

Conclusion

Accelerations of local ground assignments are Σ0

2-assignments

Template-based computation of τ +

High degree of automation Computationally cheap

monotonic abstraction to over-approximate problematic preimages with respect to accelerated transitions Experimental evidence that acceleration and abstraction are mutually beneficial

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 24 / 24

slide-113
SLIDE 113

Conclusion

Accelerations of local ground assignments are Σ0

2-assignments

Template-based computation of τ +

High degree of automation Computationally cheap

monotonic abstraction to over-approximate problematic preimages with respect to accelerated transitions Experimental evidence that acceleration and abstraction are mutually beneficial

Thank you! Questions?

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 24 / 24

slide-114
SLIDE 114

References I

Francesco Alberti, Silvio Ghilardi, Elena Pagani, Silvio Ranise, and Gian Paolo Rossi. Universal guards, relativization of quantifiers, and failure models in Model Checking Modulo Theories. JSAT, 8(1/2):29–61, 2012. Francesco Alberti, Silvio Ghilardi, and Natasha Sharygina. Tackling divergence: abstraction and acceleration in array programs. Technical Report 2012/01, University of Lugano, oct 2012.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 25 / 24

slide-115
SLIDE 115

References II

Gerd Behrmann, Johan Bengtsson, Alexandre David, Kim G. Larsen, Paul Pettersson, and Wang Yi. UPPAAL implementation secrets. In Werner Damm and Ernst-R¨ udiger Olderog, editors, FTRTFT, volume 2469 of Lecture Notes in Computer Science, pages 3–22. Springer, 2002. Marius Bozga, Radu Iosif, and Filip Konecn´ y. Fast acceleration of ultimately periodic relations. In Tayssir Touili, Byron Cook, and Paul Jackson, editors, CAV, volume 6174 of Lecture Notes in Computer Science, pages 227–242. Springer, 2010.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 26 / 24

slide-116
SLIDE 116

References III

Aaron R. Bradley, Zohar Manna, and Henny B. Sipma. What’s decidable about arrays? In E. Allen Emerson and Kedar S. Namjoshi, editors, VMCAI, volume 3855 of Lecture Notes in Computer Science, pages 427–442. Springer, 2006. Yeting Ge and Leonardo M. de Moura. Complete instantiation for quantified formulas in satisfiabiliby modulo theories. In Ahmed Bouajjani and Oded Maler, editors, CAV, volume 5643

  • f Lecture Notes in Computer Science, pages 306–320. Springer,

2009.

  • F. Alberti

Definability of Accelerated Relations in a Theory of Arrays . . . 27 / 24