Self-Loop Aggregation Product — A New Hybrid ... - LRDE - Epita

3 downloads 0 Views 1016KB Size Report
Self-Loop Aggregation Product (SLAP). AM: s0 s1 s2 s3 s4 s5 s6 s7 a¯bc a¯b¯c a¯bc a¯b¯c ab¯c a¯bc. ¯ab¯c. ¯abc. A¬&: q0 q1 a¯b b. Self-Loop Aggregation ...
Self-Loop Aggregation Product — A New Hybrid Approach to On-the-Fly LTL Model Checking Alexandre Duret-Lutz (LRDE/EPITA) Kais Klai (LIPN/Paris 13) Denis Poitrenaud (LIP6/Paris 6) Yann Thierry-Mieg (LIP6/Paris 6)

ATVA 2011 October 2011 http://move.lip6.fr/software/DDD/ltl_bench.html ATVA’11

Self-Loop Aggregation Product

1 / 17

Automata-Theoretic Explicit LTL Model Checking High-level model M

State-space generation

State-space automaton AM Synchronized product L (A¬ϕ ⊗ AM ) = L (A¬ϕ ) ∩ L (AM )

LTL property ϕ ATVA’11

LTL translation

Negated property automaton A¬ϕ

Self-Loop Aggregation Product

Product Automaton A¬ϕ ⊗ AM

Emptiness check ? L (A¬ϕ ⊗AM ) = ∅

M |= ϕ or counterexample

2 / 17

Automata-Theoretic Explicit LTL Model Checking High-level model M

State-space generation

State-space automaton AM Synchronized product L (A¬ϕ ⊗ AM ) = L (A¬ϕ ) ∩ L (AM )

LTL property ϕ ATVA’11

LTL translation

Negated property automaton A¬ϕ

Self-Loop Aggregation Product

Product Automaton A¬ϕ ⊗ AM

Emptiness check ? L (A¬ϕ ⊗AM ) = ∅

M |= ϕ or counterexample

2 / 17

Automata-Theoretic Explicit LTL Model Checking High-level model M

On-the-fly generation of state-space automaton AM

Synchronized product L (A¬ϕ ⊗ AM ) = L (A¬ϕ ) ∩ L (AM )

LTL property ϕ ATVA’11

LTL translation

Negated property automaton A¬ϕ

Self-Loop Aggregation Product

Product Automaton A¬ϕ ⊗ AM

Emptiness check ? L (A¬ϕ ⊗AM ) = ∅

M |= ϕ or counterexample

2 / 17

Automata-Theoretic Explicit LTL Model Checking High-level model M

On-the-fly generation of state-space automaton AM

On-the-fly synchronized product L (A¬ϕ ⊗ AM ) = L (A¬ϕ ) ∩ L (AM )

LTL property ϕ ATVA’11

LTL translation

Negated property automaton A¬ϕ

Self-Loop Aggregation Product

Emptiness check ? L (A¬ϕ ⊗AM ) = ∅

M |= ϕ or counterexample

2 / 17

Explicit Approach

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ATVA’11

ab¯ A¬ϕ :

Self-Loop Aggregation Product

q0

> b

q1

3 / 17

Explicit Approach

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

A¬ϕ ⊗ AM : q0 , s3

¯ abc q0 , s2

¯c ¯ ab¯ c q , s ab¯ c q ,s q0 , s0 abc q0 , s4 ab¯ 1 5 1 4 ¯ abc ¯ ab¯ c q ,s 0 1

¯ abc q1 , s6

¯abc ¯ab¯ c q ,s 1 7

Emptiness check = search for an accepting cycle in the product State explosion problem ATVA’11

Self-Loop Aggregation Product

3 / 17

Symbolic Observation Graph (SOG)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

For stuttering invariant properties (e.g., LTL\ X) Ignore non-observable propositions Aggregate Kripke states with homogeneous labels Represent aggregates using BDDs

K. Klai and D. Poitrenaud. MC-SOG: An LTL model checker based on symbolic observation graphs. In Proc. of PN’08, vol. 5062 of LNCS, pp. 288–306. Springer ATVA’11

Self-Loop Aggregation Product

4 / 17

Symbolic Observation Graph (SOG)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

ab¯ { ss02

SOG: ab¯ ab¯

s1 s3

q0

> b

q1

ab¯ {s5 }

}

{s4 }

{s6 s7 }

ab

¯ab

K. Klai and D. Poitrenaud. MC-SOG: An LTL model checker based on symbolic observation graphs. In Proc. of PN’08, vol. 5062 of LNCS, pp. 288–306. Springer ATVA’11

Self-Loop Aggregation Product

4 / 17

Product Sizes: Kripke vs. SOG A¬ϕ ⊗ AM : q0 , s3

¯ abc q0 , s2

¯c ¯ ab¯ c q , s ab¯ c q ,s q0 , s0 abc q0 , s4 ab¯ 1 5 1 4 ¯ abc ¯ ab¯ c q ,s 0 1 q0 , { ss02

A¬ϕ ⊗ SOG: ab¯

¯ abc

¯abc ¯ab¯ c q ,s 1 7

q1 , s6 s1 s3

}

ab¯

q0 , {s4 }

ab

ab¯ q0 , ab¯

ab

q1 , {s4 }

¯ab

q1 , {s5 } ab¯ q1 , {s6 s7 }

K. Klai and D. Poitrenaud. MC-SOG: An LTL model checker based on symbolic observation graphs. In Proc. of PN’08, vol. 5062 of LNCS, pp. 288–306. Springer ATVA’11

Self-Loop Aggregation Product

5 / 17

BCZ: Multiple-State Tableaux

Similar to SOG with only 1 step par aggregate: supports full LTL no need to search for livelock cycles

Low aggregation power: on our example with low branching, it does not reduce the Kripke structure.

A. Biere, E. M. Clarke, and Y. Zhu. Multiple state and single state tableaux for combining local and global model checking. In Correct System Design, vol. 1710 of LNCS, pp. 163–179. Springer, 1999 ATVA’11

Self-Loop Aggregation Product

6 / 17

Building a Product Directly High-level model M

On-the-fly generation of state-space automaton AM

On-the-fly synchronized product L (A¬ϕ ⊗ AM ) = L (A¬ϕ ) ∩ L (AM )

LTL property ϕ ATVA’11

LTL translation

Negated property automaton A¬ϕ

Self-Loop Aggregation Product

Emptiness check ? L (A¬ϕ ⊗AM ) = ∅

M |= ϕ or counterexample

7 / 17

Building a Product Directly High-level model M

Dynamic and on-the-fly generation of an automaton D such that L (D) = ∅ ⇐⇒ L (A¬ϕ ⊗ AM ) = ∅.

Emptiness check ? L (D) = ∅

LTL property ϕ ATVA’11

LTL translation

Negated property automaton A¬ϕ

Self-Loop Aggregation Product

M |= ϕ or counterexample

7 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

ATVA’11

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

ATVA’11

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

ATVA’11

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

ATVA’11

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

ATVA’11

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

ATVA’11

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

ATVA’11

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

ATVA’11

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

ATVA’11

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

q0 ,

n s0

ATVA’11

s1 s2 s3 s4

o

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

q0 ,

n s0

ATVA’11

s1 s2 s3 s4

o

>

q1 , {s5 }

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

q0 ,

n s0

ATVA’11

s1 s2 s3 s4

o

>

q1 , {s5 }

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

> b

q0

q1

Self-Loop Aggregation Product:

q0 ,

n s0

ATVA’11

s1 s2 s3 s4

o

>

q1 , {s5 }

>

Self-Loop Aggregation Product

q1 , { ss46

s5 s7

}

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

q0 ,

n s0

ATVA’11

s1 s2 s3 s4

o

>

q1 , {s5 }

>

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

q0 ,

n s0

ATVA’11

s1 s2 s3 s4

o

>

q1 , {s5 }

>

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

q0 ,

n s0

ATVA’11

s1 s2 s3 s4

o

>

q1 , {s5 }

>

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

q0 ,

n s0

ATVA’11

s1 s2 s3 s4

o

>

q1 , {s5 }

>

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

q0 ,

n s0

ATVA’11

s1 s2 s3 s4

o

>

q1 , {s5 }

>

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

q0 ,

n s0

ATVA’11

s1 s2 s3 s4

o

>

q1 , {s5 }

>

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

q0 ,

n s0

ATVA’11

s1 s2 s3 s4

o

>

q1 , {s5 }

>

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

Self-Loop Aggregation Product:

q0 ,

n s0

ATVA’11

s1 s2 s3 s4

o

>

q1 , {s5 }

>

Self-Loop Aggregation Product

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

> b

q0

q1

Self-Loop Aggregation Product:

q0 ,

n s0

ATVA’11

s1 s2 s3 s4

o

>

q1 , {s5 }

>

Self-Loop Aggregation Product

q1 , { ss46

s5 s7

}

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

> b

q0

q1

Self-Loop Aggregation Product:

q0 ,

n s0

ATVA’11

s1 s2 s3 s4

o

>

q1 , {s5 }

>

Self-Loop Aggregation Product

q1 , { ss46

s5 s7

}

>

8 / 17

Self-Loop Aggregation Product (SLAP)

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

> b

q0

q1

Self-Loop Aggregation Product: > q0 ,

n s0

ATVA’11

s1 s2 s3 s4

o

>

q1 , {s5 }

>

Self-Loop Aggregation Product

q1 , { ss46

s5 s7

}

8 / 17

Fully Symbolic Approach (FS)

Encode the Kripke structure and the property automaton using BDDs. Combine the two BDDs. (Symbolic product.) Use fixpoint computations to decide whether the product contains an accepting cycle. Two symbolic emptiness checks compared: EL OWCTY K. Fisler, R. Fraer, G. Kamhi, M. Y. Vardi, and Z. Yang. Is there a best symbolic cycle-detection algorithm? In Proc. of TACAS’01, vol. 2031 of LNCS, pp. 420–434. Springer F. Somenzi, K. Ravi, and R. Bloem. Analysis of symbolic SCC hull algorithms. In Proc. of FMCAD’02, vol. 2517 of LNCS, pp. 88–105. Springer ATVA’11

Self-Loop Aggregation Product

9 / 17

SLAP-FST FST = Fully Symbolic search in Terminal automata states When reaching a state of A¬ϕ which is terminal (and accepting) use a fully symbolic search.

AM :

¯c ab¯ s3

¯ abc s0

ab¯ c s4

¯ abc s5

s2

s1

s7

s6

¯ abc

¯c ab¯

¯abc

¯ab¯ c

ab¯ A¬ϕ :

q0

> b

q1

> SLAP-FST: ATVA’11

q0 ,

n s0

s1 s2 s3 s4

o

>

q1 , {s5 }

Self-Loop Aggregation Product

10 / 17

Summary of methods

logic prop. aut. data str. empt. chk

Explicit BCZ LTL graph

SOG SLAP LTL\ X explicit BDD+graph explicit

PDP LTL

FS

symb./expl. BDD[] BDD symbolic (OWCTY/EL)

PDP = Property Driven Partitioning, R. Sebastiani, S. Tonetta, and M. Y. Vardi. Symbolic systems, explicit properties: on hybrid approches for LTL symbolic model checking. In Proc. of CAV’05, vol. 3576 of LNCS, pp. 350–363. Springer ATVA’11

Self-Loop Aggregation Product

11 / 17

Experimental Framework Implemented algorithms BCZ, SOG, SLAP, SLAP-FST, EL, OWCTY Tools used SDD Hierarchical Set Decision Diagrams (http://ddd.lip6.fr/) Hierarchy (memory gain) Automatic saturation (improves fixpoint computations) Spot Model checking library (http://spot.lip6.fr/) Good LTL-to-TGBA translation Explicit emptiness-check algorithms Data Models Scalable toy models with 106 . . . 1066 states. Formulas Random formulas (filtered), plus a set of (random) weak fairness properties. ATVA’11

Self-Loop Aggregation Product

12 / 17

Cumulative Plot: Violated Formulas 4500 SLAP SLAP-FST SOG BCZ EL OWCTY

4000

3500

3000

2500

2000

1500

1000

500

0 0 ATVA’11

20

40

60

Self-Loop Aggregation Product

80

100

120 13 / 17

Cumulative Plot: Verified Formulas 3500 SLAP SLAP-FST SOG BCZ EL OWCTY

3000

2500

2000

1500

1000

500

0 0 ATVA’11

20

40

60

Self-Loop Aggregation Product

80

100

120 14 / 17

Scatter Plots: SLAP-FST vs. Hybrid Runtime in seconds. Timeout at 120s. 1000

1000

empty non-empty unknown

100

10

10 BCZ

SOG

100

empty non-empty unknown

1

1

0.1

0.1

SLAP-FST 0.01 0.01

0.1

ATVA’11

1

SLAP-FST 10

100

1000

0.01 0.01

0.1

Self-Loop Aggregation Product

1

10

100

1000

15 / 17

Scatter Plots: SLAP-FST vs. Fully Symbolic Runtime in seconds. Timeout at 120s. 1000

1000

empty non-empty unknown

100

10

10 EL

OWCTY

100

empty non-empty unknown

1

1

0.1

0.1

SLAP-FST 0.01 0.01

0.1

ATVA’11

1

SLAP-FST 10

100

1000

0.01 0.01

0.1

Self-Loop Aggregation Product

1

10

100

1000

16 / 17

Conclusion SLAP, a new hybrid approach: Aggregates states at the product level, not in the Kripke structure Can therefore adjust dynamically to the features (self-loops and acceptance conditions) present in the property automaton. SLAP-FST: a variant using a fully-symbolic algorithm for terminal states.

SLAP-FST most competitive algorithm of those we compared, on this benchmark On-the-fly computations have strong impact when counterexamples exist. Hybrid approaches outperform fully symbolic approaches in these cases. http://move.lip6.fr/software/DDD/ltl_bench.html ATVA’11

Self-Loop Aggregation Product

17 / 17

Suggest Documents