Live demo 2 / 27 Automata-Theoretic LTL Model Checking State-space - - PowerPoint PPT Presentation

live demo
SMART_READER_LITE
LIVE PREVIEW

Live demo 2 / 27 Automata-Theoretic LTL Model Checking State-space - - PowerPoint PPT Presentation

Contributions to LTL and -Automata for Model Checking Alexandre Duret-Lutz LRDE/EPITA 10 February 2017 Javier Esparza Technische Universitt Mnchen reviewer Radu Mateescu INRIA Grenoble reviewer Moshe Y. Vardi Rice University,


slide-1
SLIDE 1

Contributions to LTL and ω-Automata for Model Checking

Alexandre Duret-Lutz LRDE/EPITA 10 February 2017

Javier Esparza Technische Universität München reviewer Radu Mateescu INRIA Grenoble reviewer Moshe Y. Vardi Rice University, Houston, Texas reviewer Rüdiger Ehlers Universität Bremen examiner Stephan Merz INRIA Nancy & LORIA examiner Jaco van de Pol University of Twente examiner Fabrice Kordon

  • Univ. Pierre & Marie Curie, Paris

examiner

1 / 27

slide-2
SLIDE 2

Live demo

2 / 27

slide-3
SLIDE 3

Automata-Theoretic LTL Model Checking

High-level model M State-space generation State-space automaton AM LTL property ϕ LTL translation Negated property automaton A¬ϕ Synchronized product

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

Product automaton AM ⊗ A¬ϕ Emptiness check

L (AM ⊗ A¬ϕ) ? = ∅

M |= ϕ or counterexample

  • M. Y. Vardi and P

. Wolper. An automata-theoretic approach to automatic program verification. LICS’86

3 / 27

slide-4
SLIDE 4

Automata-Theoretic LTL Model Checking

High-level model M State-space generation LTL property ϕ LTL translation Negated property automaton A¬ϕ Synchronized product

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

State-space automaton AM Product automaton AM ⊗ A¬ϕ Emptiness check

L (AM ⊗ A¬ϕ) ? = ∅

M |= ϕ or counterexample

  • M. Y. Vardi and P

. Wolper. An automata-theoretic approach to automatic program verification. LICS’86

3 / 27

slide-5
SLIDE 5

Automata-Theoretic LTL Model Checking

High-level model M On-the-fly generation

  • f state-space automaton

AM LTL property ϕ LTL translation Negated property automaton A¬ϕ On-the-fly synchronized product

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

Emptiness check

L (AM ⊗ A¬ϕ) ? = ∅

M |= ϕ or counterexample

  • M. Y. Vardi and P

. Wolper. An automata-theoretic approach to automatic program verification. LICS’86

3 / 27

slide-6
SLIDE 6

Automata-Theoretic LTL Model Checking

Custom Model Checker SPOT

High-level model M On-the-fly generation

  • f state-space automaton

AM LTL property ϕ LTL translation Negated property automaton A¬ϕ On-the-fly synchronized product

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

Emptiness check

L (AM ⊗ A¬ϕ) ? = ∅

M |= ϕ or counterexample

  • A. Duret-Lutz and D. Poitrenaud. SPOT: an Extensible Model Checking

Library using Transition-based Generalized Büchi Automata. MASCOTS’04

3 / 27

slide-7
SLIDE 7

Motivation: Supporting Research

Spot should offer a set of efficient and reusable blocks for model checking and related tasks.

4 / 27

slide-8
SLIDE 8

Motivation: Supporting Research

Spot should offer a set of efficient and reusable blocks for model checking and related tasks. Efficient:

◮ Implement state-of-the-art algorithms ◮ Improve them ◮ Propose new algorithms

Reusable:

◮ Multiple interfaces (C+

+/Python/Shell)

◮ Documented ◮ Tested

Related tasks:

◮ LTL and ω-automata toolbox ◮ Glue between third-party tools

4 / 27

slide-9
SLIDE 9

Motivation: Supporting Research

Spot should offer a set of efficient and reusable blocks for model checking and related tasks. Efficient:

◮ Implement state-of-the-art algorithms ◮ Improve them ◮ Propose new algorithms

Reusable:

◮ Multiple interfaces (C+

+/Python/Shell)

◮ Documented ◮ Tested

Related tasks:

◮ LTL and ω-automata toolbox ◮ Glue between third-party tools

Research

4 / 27

slide-10
SLIDE 10

Contributions

High-level model M On-the-fly generation

  • f state-space automaton

AM LTL property ϕ LTL translation Negated property automaton A¬ϕ On-the-fly synchronized product

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

Emptiness check

L (AM ⊗ A¬ϕ) ? = ∅

M |= ϕ or counterexample

5 / 27

slide-11
SLIDE 11

Contributions

High-level model M On-the-fly generation

  • f state-space automaton

AM LTL property ϕ LTL translation Negated property automaton A¬ϕ On-the-fly synchronized product

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

Emptiness check

L (AM ⊗ A¬ϕ) ? = ∅

M |= ϕ or counterexample Stutter checks Simplifications Classification Many improvements PSL translation Testing automata Generic acceptance Decomposition SAT-based minimization Union-find Parallelization P r

  • v

i s

  • s

H y b r i d m

  • d

e l c h e c k i n g Plugging Spot with various tools

5 / 27

slide-12
SLIDE 12

Contributions

High-level model M On-the-fly generation

  • f state-space automaton

AM LTL property ϕ LTL translation Negated property automaton A¬ϕ On-the-fly synchronized product

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

Emptiness check

L (AM ⊗ A¬ϕ) ? = ∅

M |= ϕ or counterexample Stutter checks Simplifications Classification Many improvements PSL translation Testing automata Generic acceptance Decomposition SAT-based minimization Union-find Parallelization P r

  • v

i s

  • s

H y b r i d m

  • d

e l c h e c k i n g Plugging Spot with various tools

5 / 27

slide-13
SLIDE 13

Context & Motivation

1

LTL to Büchi

2

Generalized Acceptance

3

Tooling for improvement

4

Closing remarks

Spot has a very good translator, combining several improved procedures. Named acceptances are a

  • hindrance. Generic algo-

rithms are more elegant. Spot: groundwork for research + tools for experimenting, test- ing, finding interesting cases.

6 / 27

slide-14
SLIDE 14

Büchi Variations on G F a ∧ G F b

Büchi 2 1 ab

¯

b

¯

ab

¯

b ab

¯

ab

¯

a a Inf( 0 )

7 / 27

slide-15
SLIDE 15

Büchi Variations on G F a ∧ G F b

Büchi generalized Büchi 2 1 ab

¯

b

¯

ab

¯

b ab

¯

ab

¯

a a Inf( 0 ) 1

¯

a a

¯

b b

1

Inf( 0 )∧Inf( 1 )

7 / 27

slide-16
SLIDE 16

Büchi Variations on G F a ∧ G F b

state-based transition-based Büchi generalized Büchi 2 1 ab

¯

b

¯

ab

¯

b ab

¯

ab

¯

a a Inf( 0 ) 1

¯

a a

¯

b b

1

Inf( 0 )∧Inf( 1 ) 1

¯

a a

¯

b b Inf( 0 ) ab

1

a¯ b

¯

ab

1

¯

a¯ b Inf( 0 )∧Inf( 1 )

7 / 27

slide-17
SLIDE 17

Büchi Variations on G F a ∧ G F b

state-based transition-based Büchi generalized Büchi 2 1 ab

¯

b

¯

ab

¯

b ab

¯

ab

¯

a a Inf( 0 ) 1

¯

a a

¯

b b

1

Inf( 0 )∧Inf( 1 ) 1

¯

a a

¯

b b Inf( 0 ) ab

1

a¯ b

¯

ab

1

¯

a¯ b Inf( 0 )∧Inf( 1 ) O n l y u s e f u l w h e n m i x i n g a c c e p t i n g & r e j e c t i n g c y c l e s

7 / 27

slide-18
SLIDE 18

Comparison of Some “LTL to Büchi” Translators

Results summed over 178 formulas from the literature. automaton size product size nd. time st. nd.st. tr. st. tr.

spin (11×❆)

162 220.7s 1440 1236 46033 259313 9433430

ltl2ba

169 0.3s 1000 801 29974 190898 5616566

modella

109 18.5s 1244 577 23474 210494 4033414

trans

119 0.5s 957 398 16798 172246 3276714

ltl3ba

115 0.7s 829 307 14322 155220 2913043

ltl2tgba -s

49 1.9s 666 102 10346 129419 2399328

ltl2tgba -Ds

44 1.9s 671 96 10456 129804 2401471 Spot

8 / 27

slide-19
SLIDE 19

From LTL to Büchi Automata

LTL form. LTL rewritings Core translation Post- processings Büchi automaton G F a ∧ G F b G(F a ∧ F b) ab

1

a¯ b

¯

ab

1

¯

a¯ b Inf( 0 )∧Inf( 1 ) 1 2 3 ab

¯

b

¯

ab

¯

b ab

¯

ab

¯

a a Inf( 0 )

9 / 27

slide-20
SLIDE 20

From LTL to Büchi Automata

LTL form. LTL rewritings Core translation Post- processings Büchi automaton

◮ lots of rewritings

(e.g. f U G f ≡ G f)

◮ implication-based rewritings

(e.g., if f → g then f U g ≡ g) syntactic or automata-based

9 / 27

slide-21
SLIDE 21

From LTL to Büchi Automata

LTL form. LTL rewritings Core translation Post- processings Büchi automaton Couvreur’s translation, plus:

◮ Improved determinism ◮ Improved translation of persistent formulas ◮ Improved translation of G-subformulas

J.-M. Couvreur. On-the-fly verification of temporal logic. FM’99

  • A. Duret-Lutz. LTL translation improvements in Spot 1.0. Int. J. on Crit.

Comp.-Based Sys., 5(1/2):31–54, Mar. 2014

9 / 27

slide-22
SLIDE 22

From LTL to Büchi Automata

LTL form. LTL rewritings Core translation Post- processings Büchi automaton TGBA SCC simpl. fwd/bwd simul. degen. fwd/bwd simul. BA determinize and minimize

  • bligation properties

best

9 / 27

slide-23
SLIDE 23

From LTL to Büchi Automata

LTL form. LTL rewritings Core translation Post- processings Büchi automaton TGBA SCC simpl. fwd/bwd simul. degen. fwd/bwd simul. BA determinize and minimize

  • bligation properties

best Remove:

◮ useless SCCs ◮ useless acc. sets ◮ BDD signatures ◮ improves det.

SCC-aware degeneralization

  • T. Babiak, T. Badie, A. Duret-Lutz, M. Kˇ

retínský, and J. Strejˇ cek. Compositional approach to suspension and other improvements to LTL

  • translation. SPIN’13

9 / 27

slide-24
SLIDE 24

From LTL to Büchi Automata

LTL form. LTL rewritings Core translation Post- processings Büchi automaton TGBA SCC simpl. fwd/bwd simul. degen. fwd/bwd simul. BA determinize and minimize

  • bligation properties

best Secret weapon — only implemented in Spot!

  • C. Löding. Efficient minimization of deterministic weak ω-automata.

Information Processing Letters, 79(3):105–109, 2001

  • C. Dax, J. Eisinger, and F. Klaedtke. Mechanizing the powerset construction

for restricted classes of ω-automata. ATVA’07

9 / 27

slide-25
SLIDE 25

From LTL to Büchi Automata

LTL form. LTL rewritings Core translation Post- processings Büchi automaton TGBA SCC simpl. fwd/bwd simul. degen. fwd/bwd simul. BA determinize and minimize

  • bligation properties

best Secret weapon — only implemented in Spot! Requires: product, emptiness check, DBA complementation, NFA determinization, DFA minimization, SCC enumeration...

9 / 27

slide-26
SLIDE 26

The Temporal Hierarchy

Reactivity

G F pi ∨ F G qi

Recurrence G F p Persistence F G p Obligation

G pi ∨ F qi

Safety G p Guarantee F p Deterministic Büchi Monitor Weak Büchi Terminal Büchi

  • Z. Manna and A. Pnueli. A hierarchy of temporal properties. PODC’90
  • I. ˇ

Cerná and R. Pelánek. Relating hierarchy of temporal properties to model

  • checking. MFCS’03

10 / 27

slide-27
SLIDE 27

Comparison of Some “LTL to Büchi” Translators

Results summed over 178 formulas from the literature. automaton size product size nd. time st. nd.st. tr. st. tr.

spin (11×❆)

162 220.7s 1440 1236 46033 259313 9433430

ltl2ba

169 0.3s 1000 801 29974 190898 5616566

modella

109 18.5s 1244 577 23474 210494 4033414

trans

119 0.5s 957 398 16798 172246 3276714

ltl3ba

115 0.7s 829 307 14322 155220 2913043

ltl2tgba -s

49 1.9s 666 102 10346 129419 2399328

ltl2tgba -Ds

44 1.9s 671 96 10456 129804 2401471 Spot

11 / 27

slide-28
SLIDE 28

The Temporal Hierarchy

Reactivity

G F pi ∨ F G qi

Recurrence G F p Persistence F G p Obligation

G pi ∨ F qi

Safety G p Guarantee F p Deterministic Büchi Monitor Weak Büchi Terminal Büchi 10 25 25 8 52 52 6

  • Z. Manna and A. Pnueli. A hierarchy of temporal properties. PODC’90
  • I. ˇ

Cerná and R. Pelánek. Relating hierarchy of temporal properties to model

  • checking. MFCS’03

12 / 27

slide-29
SLIDE 29

The Temporal Hierarchy

Reactivity

G F pi ∨ F G qi

Recurrence G F p Persistence F G p Obligation

G pi ∨ F qi

Safety G p Guarantee F p Deterministic Büchi Monitor Weak Büchi Terminal Büchi 10 25 25 8 52 52 6 66% of the 178 formulas are

  • bligations

Good for the secret weapon!

12 / 27

slide-30
SLIDE 30

The Temporal Hierarchy

66% of the 178 formulas are

  • bligations

Good for the secret weapon! Reactivity

G F pi ∨ F G qi

Recurrence G F p Persistence F G p Obligation

G pi ∨ F qi

Safety G p Guarantee F p Deterministic Büchi Monitor Weak Büchi Terminal Büchi 10 25 25 8 52 52 6 80% are persistences Good for the improved translation!

12 / 27

slide-31
SLIDE 31

Büchi Variations on G F a ∧ G F b

state-based transition-based Büchi generalized Büchi 2 1 ab

¯

b

¯

ab

¯

b ab

¯

ab

¯

a a Inf( 0 ) 1

¯

a a

¯

b b

1

Inf( 0 )∧Inf( 1 ) 1

¯

a a

¯

b b Inf( 0 ) ab

1

a¯ b

¯

ab

1

¯

a¯ b Inf( 0 )∧Inf( 1 ) O n l y u s e f u l w h e n m i x i n g a c c e p t i n g & r e j e c t i n g c y c l e s

13 / 27

slide-32
SLIDE 32

The Temporal Hierarchy

Reactivity

G F pi ∨ F G qi

Recurrence G F p Persistence F G p Obligation

G pi ∨ F qi

Safety G p Guarantee F p Deterministic Büchi Monitor Weak Büchi Terminal Büchi Transition-based and generalized Büchi acceptance useful. Compare: 1 2 3 ab

¯

b

¯

ab

¯

b ab

¯

ab

¯

a a Inf( 0 ) ab

1

a¯ b

¯

ab

1

¯

a¯ b Inf( 0 )∧Inf( 1 ) Automata for G F a ∧ G F b.

14 / 27

slide-33
SLIDE 33

The Temporal Hierarchy

Reactivity

G F pi ∨ F G qi

Recurrence G F p Persistence F G p Obligation

G pi ∨ F qi

Safety G p Guarantee F p Deterministic Büchi Monitor Weak Büchi Terminal Büchi Transition-based and generalized co-Büchi acceptance useful. 1 2 3 ab

¯

b

¯

ab

¯

b ab

¯

ab

¯

a a Fin( 0 ) ab

1

a¯ b

¯

ab

1

¯

a¯ b Fin( 0 )∨Fin( 1 ) Automata for F G ¯ a ∨ F G ¯ b.

14 / 27

slide-34
SLIDE 34

The Temporal Hierarchy

Reactivity

G F pi ∨ F G qi

Recurrence G F p Persistence F G p Obligation

G pi ∨ F qi

Safety G p Guarantee F p Deterministic Büchi Monitor Weak Büchi Terminal Büchi More complex acceptance conditions (Rabin, Streett, Parity, generalized-Rabin, etc.) compete here.

14 / 27

slide-35
SLIDE 35

Context & Motivation

1

LTL to Büchi

2

Generalized Acceptance

3

Tooling for improvement

4

Closing remarks

Spot has a very good translator, combining several improved procedures. Named acceptances are a

  • hindrance. Generic algo-

rithms are more elegant. Spot: groundwork for research + tools for experimenting, test- ing, finding interesting cases.

15 / 27

slide-36
SLIDE 36

The Hanoi Omega-Automata Format

  • T. Babiak, F. Blahoudek, A. Duret-Lutz, J. Klein, J. Kˇ

retínský, D. Müller,

  • D. Parker, and J. Strejˇ
  • cek. The Hanoi Omega-Automata format. CAV’15

16 / 27

slide-37
SLIDE 37

The Hanoi Omega-Automata Format

Tool support at publication

ltl2dstar 0.5.3 ltl3ba 1.1.2 ltl3dra 0.2.2 Rabinizer 3.1 PRISM 4.3 Spot 1.99.2 jhoafparser cpphoafparser

  • T. Babiak, F. Blahoudek, A. Duret-Lutz, J. Klein, J. Kˇ

retínský, D. Müller,

  • D. Parker, and J. Strejˇ
  • cek. The Hanoi Omega-Automata format. CAV’15

16 / 27

slide-38
SLIDE 38

The Hanoi Omega-Automata Format

Original motivations

◮ Unify output formats for different tools/acceptance conditions ◮ Allow new acceptance conditions

Tool support at publication

ltl2dstar 0.5.3 ltl3ba 1.1.2 ltl3dra 0.2.2 Rabinizer 3.1 PRISM 4.3 Spot 1.99.2 jhoafparser cpphoafparser

positive Boolean formulas

  • f Inf

(

x

)

and Fin

(

y

)

terms

  • T. Babiak, F. Blahoudek, A. Duret-Lutz, J. Klein, J. Kˇ

retínský, D. Müller,

  • D. Parker, and J. Strejˇ
  • cek. The Hanoi Omega-Automata format. CAV’15

16 / 27

slide-39
SLIDE 39

The Hanoi Omega-Automata Format

Original motivations

◮ Unify output formats for different tools/acceptance conditions ◮ Allow new acceptance conditions

Tool support at publication

ltl2dstar 0.5.3 ltl3ba 1.1.2 ltl3dra 0.2.2 Rabinizer 3.1 PRISM 4.3 Spot 1.99.2 jhoafparser cpphoafparser

Resulting challenge

Can we build tools that process automata with arbitrary acceptance conditions? positive Boolean formulas

  • f Inf

(

x

)

and Fin

(

y

)

terms

  • T. Babiak, F. Blahoudek, A. Duret-Lutz, J. Klein, J. Kˇ

retínský, D. Müller,

  • D. Parker, and J. Strejˇ
  • cek. The Hanoi Omega-Automata format. CAV’15

16 / 27

slide-40
SLIDE 40

Generic Intersections and Unions

¯

ab a ∨ ¯ b a

¯

ab

¯

a¯ b

¯

ab

¯

a¯ b a

2 3

Fin(2)∨Inf(3) a¯ b

¯

a ∨ b b

¯

b

1

Fin(0)∨Inf(1)

17 / 27

slide-41
SLIDE 41

Generic Intersections and Unions

¯

ab a ∨ ¯ b a

¯

ab

¯

a¯ b

¯

ab

¯

a¯ b a

2 3

Fin(2)∨Inf(3) a¯ b

¯

a ∨ b b

¯

b

1

Fin(0)∨Inf(1)

¯

ab ab

¯

a¯ b∨ab

¯

ab

¯

a¯ b

¯

ab

¯

a¯ b ab a¯ b ab a¯ b

¯

ab a¯ b

¯

b

1 1 1 2 3 2

(Fin(0)∨Inf(1)) ∧ (Fin(2)∨Inf(3))

T h e i n t e r s e c t i

  • n
  • f

t w

  • S

t r e e t t a u

  • t
  • m

a t a i s a S t r e e t t a u t

  • m

a t

  • n

17 / 27

slide-42
SLIDE 42

Generic Intersections and Unions

¯

ab a ∨ ¯ b a

¯

ab

¯

a¯ b

¯

ab

¯

a¯ b a

2 3

Fin(2)∨Inf(3) a¯ b

¯

a ∨ b b

¯

b

1

Fin(0)∨Inf(1)

¯

ab ab

¯

a¯ b∨ab

¯

ab

¯

a¯ b

¯

ab

¯

a¯ b ab a¯ b ab a¯ b

¯

ab a¯ b

¯

b

1 1 1 2 3 2

(Fin(0)∨Inf(1)) ∨ (Fin(2)∨Inf(3))

The union of two Streett automata is... nothing special

17 / 27

slide-43
SLIDE 43

Generic Intersections and Unions

¯

ab a ∨ ¯ b a

¯

ab

¯

a¯ b

¯

ab

¯

a¯ b a

2 3

a¯ b

¯

a ∨ b b

¯

b

1 2 2

Fin(0)∨Inf(1)∨Fin(2)∨Inf(3) Union using non-deterministic initial states

17 / 27

slide-44
SLIDE 44

Generic Intersections and Unions

¯

ab a ∨ ¯ b a

¯

ab

¯

a¯ b

¯

ab

¯

a¯ b a

2 3

a¯ b

¯

a ∨ b b

¯

b

1 2 2

Fin(0)∨Inf(1)∨Fin(2)∨Inf(3) Intersection using universal initial states

17 / 27

slide-45
SLIDE 45

Other Operations

automata simplifications Most of Spot’s simplifications have been generalized already. complementation Trivial on any deterministic ω-automata. What about non-deterministic ω-automata?

18 / 27

slide-46
SLIDE 46

Other Operations

automata simplifications Most of Spot’s simplifications have been generalized already. complementation Trivial on any deterministic ω-automata. What about non-deterministic ω-automata? emptiness check Easy for “Fin-less acceptance”. More generic algorithms in the works. (NP-complete in the general case.)

18 / 27

slide-47
SLIDE 47

Other Operations

automata simplifications Most of Spot’s simplifications have been generalized already. complementation Trivial on any deterministic ω-automata. What about non-deterministic ω-automata? emptiness check Easy for “Fin-less acceptance”. More generic algorithms in the works. (NP-complete in the general case.) acceptance conversions Used before “non-generic” algorithms: any CNF DNF

  • Gen. Streett
  • Gen. Rabin

Fin-less

  • Gen. Büchi

Büchi Streett Rabin

⊃ ⊃ ⊃ ⊃ ⊃ ⊃ ⊃ ⊃

18 / 27

slide-48
SLIDE 48

Context & Motivation

1

LTL to Büchi

2

Generalized Acceptance

3

Tooling for improvement

4

Closing remarks

Spot has a very good translator, combining several improved procedures. Named acceptances are a

  • hindrance. Generic algo-

rithms are more elegant. Spot: groundwork for research + tools for experimenting, test- ing, finding interesting cases.

19 / 27

slide-49
SLIDE 49

ltlcross — testing LTL translators

How to test an LTL translator? By comparing results

  • f multiple translators.

◮ Spot has been using LBTT (LTL-to-Büchi Translator

Testbench) since 2003 in its test-suite.

  • H. Tauriainen and K. Heljanko. Testing LTL formula translation into Büchi
  • automata. STTT, 4(1):57–70, 2002

20 / 27

slide-50
SLIDE 50

ltlcross — testing LTL translators

How to test an LTL translator? By comparing results

  • f multiple translators.

◮ Spot has been using LBTT (LTL-to-Büchi Translator

Testbench) since 2003 in its test-suite.

◮ LBTT is no longer maintained (last release in 2005), ◮ LBTT is restricted to LTL, ◮ LBTT is restricted generalized Büchi acceptance.

  • H. Tauriainen and K. Heljanko. Testing LTL formula translation into Büchi
  • automata. STTT, 4(1):57–70, 2002

20 / 27

slide-51
SLIDE 51

ltlcross — testing LTL translators

How to test an LTL translator? By comparing results

  • f multiple translators.

◮ Spot has been using LBTT (LTL-to-Büchi Translator

Testbench) since 2003 in its test-suite.

◮ LBTT is no longer maintained (last release in 2005), ◮ LBTT is restricted to LTL, ◮ LBTT is restricted generalized Büchi acceptance.

◮ ltlcross is Spot’s replacement of LBTT. It supports:

◮ linear fragment of PSL (since Spot 1.0), ◮ arbitrary acceptance conditions (since Spot 1.99.1), ◮ weak alternating automata (since Spot 2.3), ◮ optional determinization-based checks (since Spot 1.99.8). 20 / 27

slide-52
SLIDE 52

Reusing Algorithms to Improve Other Tools

LTL form. LTL rewritings Core translation Post- processings automaton

ltl2tgba

21 / 27

slide-53
SLIDE 53

Reusing Algorithms to Improve Other Tools

LTL form. LTL rewritings Core translation Post- processings automaton

ltl2tgba ltlfilt --simplify autfilt --small autfilt --det

21 / 27

slide-54
SLIDE 54

Reusing Algorithms to Improve Other Tools

LTL form. LTL rewritings Core translation Post- processings automaton

ltl2tgba ltlfilt --simplify autfilt --small autfilt --det

$ ltl3dra -f ’F!p0 && Xp0 && (Gp1 || XF!p0)’ | grep States: States: 7 $ ltl3dra -f ’F!p0 && Xp0 && (Gp1 || XF!p0)’ | autfilt --det | grep States: States: 2

21 / 27

slide-55
SLIDE 55

Reusing Algorithms to Improve Other Tools

LTL form. LTL rewritings Core translation Post- processings automaton

ltl2tgba ltlfilt --simplify autfilt --small autfilt --det

$ ltl3dra -f ’F!p0 && Xp0 && (Gp1 || XF!p0)’ | grep States: States: 7 $ ltl3dra -f ’F!p0 && Xp0 && (Gp1 || XF!p0)’ | autfilt --det | grep States: States: 2

An obligation. The secret weapon did all the work.

21 / 27

slide-56
SLIDE 56

Building New Tools Efficiently

Let us not reinvent the wheel every time a new tool is made. LTL form. LTL rewritings Core translation Post- processings automaton

22 / 27

slide-57
SLIDE 57

Building New Tools Efficiently

Let us not reinvent the wheel every time a new tool is made. LTL form. LTL rewritings New translation Post- processings automaton

ltl3hoa

Tool by Juraj Major; https://github.com/jurajmajor/ltl3hoa.

22 / 27

slide-58
SLIDE 58

Building New Tools Efficiently

Let us not reinvent the wheel every time a new tool is made. LTL form. LTL rewritings New translation Post- processings automaton

ltl3hoa

Outputs non-deterministic

ω-automata with generic

acceptance. Configured to preserve generic acceptance.

Tool by Juraj Major; https://github.com/jurajmajor/ltl3hoa.

22 / 27

slide-59
SLIDE 59

Building New Tools Efficiently

Let us not reinvent the wheel every time a new tool is made. LTL form. LTL rewritings New translation Post- processings automaton

ltl3hoa

Outputs non-deterministic

ω-automata with generic

acceptance. Configured to preserve generic acceptance.

  • gen. Büchi

automaton Degen. Semi- determinize Post- processings Büchi automaton

Seminator

Configured to preserve semi-determinism.

Tool by Mikulas Klokocka; https://github.com/mklokocka/seminator.

22 / 27

slide-60
SLIDE 60

SAT-based minimization of det. ω-automata

Using a SAT solver, we can mine for cases where our routines (or

  • ther tools) could be improved.
  • R. Ehlers. Minimising deterministic Büchi automata precisely using SAT
  • solving. SAT’10
  • S. Baarir and A. Duret-Lutz. SAT-based minimization of deterministic

ω-automata. LPAR’15

23 / 27

slide-61
SLIDE 61

SAT-based minimization of det. ω-automata

Using a SAT solver, we can mine for cases where our routines (or

  • ther tools) could be improved.

$ ltldo ltl2dstar -f ’GFa->GFb’ | grep ’States:\|Accept’ States: 4 Acceptance: 4 (Fin(0) & Inf(1)) | (Fin(2) & Inf(3)) $ ltldo ltl2dstar -f ’GFa->GFb’ | autfilt --det | grep ’States:\|Accept’ States: 4 Acceptance: 4 (Fin(0) & Inf(1)) | (Fin(2) & Inf(3)) $ ltldo ltl2dstar -f ’GFa->GFb’ | autfilt -S --sat-minimize | grep ’States:\|Accept’ States: 3 Acceptance: 4 (Fin(0) & Inf(1)) | (Fin(2) & Inf(3))

  • S. Baarir and A. Duret-Lutz. SAT-based minimization of deterministic

ω-automata. LPAR’15

23 / 27

slide-62
SLIDE 62

Context & Motivation

1

LTL to Büchi

2

Generalized Acceptance

3

Tooling for improvement

4

Closing remarks

Spot has a very good translator, combining several improved procedures. Named acceptances are a

  • hindrance. Generic algo-

rithms are more elegant. Spot: groundwork for research + tools for experimenting, test- ing, finding interesting cases.

24 / 27

slide-63
SLIDE 63

Future Directions

Generalizing Algorithms

Problem: algorithms dedicated to “named acceptance conditions” Goal: algorithms working for larger classes of acceptance Examples:

◮ Can we unify emptiness checks for various acceptance

conditions? (Also consider model checking under fairness hypothesis.)

◮ Is there a determinization procedure that unifies existing ones?

Expand into related territories

Goal: build up on the features we support Examples:

◮ Alternating automata could be used for games, satisfiability,

synthesis.

◮ With little effort, Spot would be a very nice tool for teaching.

25 / 27

slide-64
SLIDE 64

Research Statistics (since 2007)

Publications

3 journal papers 22 conference papers (6×ATVA,

4×SPIN, 3×TACAS, 2×LPAR, 2×CIAA, CAV, FORTE, VeCOS, SUMO, FSMNLP)

Supervision

2 PhD students 17+ Epita students

Development

44 releases of Spot 15 releases of Vaucanson

Citations

Over 150 references to Spot

Reviewing

17 conference papers 5 journal papers examiner of 2 PhD thesis

Dissemination

7 invited talks

Collaboration programs

1 French-Taiwanese ANR 1 French-Czech PHC

26 / 27

slide-65
SLIDE 65

Co-authors (since 2007)

Co-authors of papers...

  • S. Baarir, T. Babiak, T. Badie, A.E. Ben Salem, F. Blahoudek,

J.-M. Couvreur, A. Demaille, A. Fauchille, Ł. Fronc, K. Klai, J. Klein,

  • F. Kordon, J. Kˇ

retínský, M. Kˇ retínský, F. Lesaint, A. Lewkowicz,

  • S. Lombardy, T. Michaud, D. Müller, D. Parker, D. Poitrenaud,

É. Renault, V. Rujbr, L. Saiu, J. Sakarovitch, J. Strejˇ cek,

  • F. Terrones, Y. Thierry-Mieg, L. Xu, and H.-C. Yen.

Co-authors of software (not already/yet listed above)...

  • F. Abecassis, E. Abi Saad, M. Colange, F. D’Halluin, J. Galtier,
  • A. Gbaguidi Aisse, G. Gillard, A. Hamelin, G. Lazzara, D. Lefortier,
  • G. Leroi, J. Ma, D. Moreira, P

. Parutto, A. Remaud, G. Sadegh, and

  • V. Tourneur.

27 / 27

slide-66
SLIDE 66
  • 1. Title
  • 3. Model Checking
  • 4. Motivation
  • 5. Contributions

1

  • 6. LTL to Büchi
  • 7. Büchi variations
  • 8. Benchmark
  • 9. Translation
  • 10. Hierarchy
  • 14. Upper classes

2

  • 15. Generic Acc.
  • 16. HOA
  • 17. ∩/∪
  • 18. Other ops

3

  • 19. Tooling
  • 20. ltlcross
  • 21. Reusing tools
  • 22. Reusing lib
  • 23. SAT

4

  • 24. Closing
  • 25. Future
  • 26. Stats
  • 27. Co-authors

HOA example code size arch usual acc.

  • acc. trans. ex.
  • det. ex.

SAT framework ltlcross details 1 / 9

slide-67
SLIDE 67

A Rabin Automaton for G F a → G F b

0 0 1 1 2 0 3 3 1 3 a¯ b

¯

a¯ b ab

¯

ab

¯

a¯ b

¯

a¯ b

¯

ab ab ab

¯

a¯ b

¯

ab

¯

a¯ b

¯

ab

¯

a¯ b

¯

a¯ b ab

F =

  • {0, 2}, {1, 3}
  • ,
  • ∅, {2, 4}
  • Fin(0)∧Inf(1)
  • Fin(2)∧Inf(3)
  • 2 / 9
slide-68
SLIDE 68

A Rabin Automaton for G F a → G F b

0 0 1 1 2 0 3 3 1 3 a¯ b

¯

a¯ b ab

¯

ab

¯

a¯ b

¯

a¯ b

¯

ab ab ab

¯

a¯ b

¯

ab

¯

a¯ b

¯

ab

¯

a¯ b

¯

a¯ b ab

  • Fin(0)∧Inf(1)
  • Fin(2)∧Inf(3)
  • HOA: v1

States: 4 Start: 0 AP: 2 "a" "b" acc-name: Rabin 2 Acceptance: 4 Fin( 0 )&Inf( 1 )|Fin( 2 )&Inf( 3 )

  • -BODY--

State: 0 { 0 } [!0&!1] 1 [0&!1] 0 [!0&1] 3 [0&1] 2 State: 1 { 1 } [!0&!1] 1 [0&!1] 0 [!0&1] 3 [0&1] 2 State: 2 { 0 3 } [!0&!1] 1 [0&!1] 0 [!0&1] 3 [0&1] 2 State: 3 { 1 3 } [!0&!1] 1 [0&!1] 0 [!0&1] 3 [0&1] 2

  • -END--

2 / 9

slide-69
SLIDE 69

A Rabin Automaton for G F a → G F b

0 0 1 1 2 0 3 3 1 3 a¯ b

¯

a¯ b ab

¯

ab

¯

a¯ b

¯

a¯ b

¯

ab ab ab

¯

a¯ b

¯

ab

¯

a¯ b

¯

ab

¯

a¯ b

¯

a¯ b ab

  • Fin(0)∧Inf(1)
  • Fin(2)∧Inf(3)
  • HOA: v1

States: 4 Start: 0 AP: 2 "a" "b" acc-name: Rabin 2 Acceptance: 4 Fin( 0 )&Inf( 1 )|Fin( 2 )&Inf( 3 )

  • -BODY--

State: 0 { 0 } [!0&!1] 1 [0&!1] 0 [!0&1] 3 [0&1] 2 State: 1 { 1 } [!0&!1] 1 [0&!1] 0 [!0&1] 3 [0&1] 2 State: 2 { 0 3 } [!0&!1] 1 [0&!1] 0 [!0&1] 3 [0&1] 2 State: 3 { 1 3 } [!0&!1] 1 [0&!1] 0 [!0&1] 3 [0&1] 2

  • -END--

2 / 9

slide-70
SLIDE 70

An ω-Automaton for G F a → G F b

0 0 1 1 2 0 2 3 1 2 a¯ b

¯

a¯ b ab

¯

ab

¯

a¯ b

¯

a¯ b

¯

ab ab ab

¯

a¯ b

¯

ab

¯

a¯ b

¯

ab

¯

a¯ b

¯

a¯ b ab

  • Fin(0)∧Inf(1)
  • ∨Inf(2)

HOA: v1 States: 4 Start: 0 AP: 2 "a" "b" Acceptance: 3 Fin( 0 )&Inf( 1 )|Inf( 2 )

  • -BODY--

State: 0 { 0 } [!0&!1] 1 [0&!1] 0 [!0&1] 3 [0&1] 2 State: 1 { 1 } [!0&!1] 1 [0&!1] 0 [!0&1] 3 [0&1] 2 State: 2 { 0 2 } [!0&!1] 1 [0&!1] 0 [!0&1] 3 [0&1] 2 State: 3 { 1 2 } [!0&!1] 1 [0&!1] 0 [!0&1] 3 [0&1] 2

  • -END--

2 / 9

slide-71
SLIDE 71

A Streett Automaton for G F a → G F b

0 0 1 4 2 0 1 3 1 a¯ b

¯

a¯ b ab

¯

ab

¯

a¯ b

¯

a¯ b

¯

ab ab ab

¯

a¯ b

¯

ab

¯

a¯ b

¯

ab

¯

a¯ b

¯

a¯ b ab Fin(0)∨Inf(1)

HOA: v1 States: 4 Start: 0 AP: 2 "a" "b" acc-name: Streett 1 Acceptance: 2 Fin( 0 )|Inf( 1 )

  • -BODY--

State: 0 { 0 } [!0&!1] 1 [0&!1] 0 [!0&1] 3 [0&1] 2 State: 1 [!0&!1] 1 [0&!1] 0 [!0&1] 3 [0&1] 2 State: 2 { 0 1 } [!0&!1] 1 [0&!1] 0 [!0&1] 3 [0&1] 2 State: 3 { 1 } [!0&!1] 1 [0&!1] 0 [!0&1] 3 [0&1] 2

  • -END--

2 / 9

slide-72
SLIDE 72

Code metrics

Graphs provided by https://www.openhub.net/p/spot

3 / 9

slide-73
SLIDE 73

Spot’s Architecture

libspot libspot-ltsmin libbddx import spot.ltsmin import spot randltl genltl ltlfilt randaut autfilt ltl2tgba ltl2tgta dstar2tgba ltlcross ltlgrind ltldo divine SpinS

IPython / Jupyter

4 / 9

slide-74
SLIDE 74

Usual Acceptance Conditions

none f all t Buchi Inf(0)

  • gen. Buchi 2

Inf(0) ∧ Inf(1)

  • gen. Buchi 3

Inf(0) ∧ Inf(1) ∧ Inf(2) co-Buchi Fin(0)

  • gen. co-Buchi 2

Fin(0) ∨ Fin(1) Rabin 1 Fin(0) ∧ Inf(1) Rabin 2

(Fin(0) ∧ Inf(1)) ∨ (Fin(2) ∧ Inf(3))

Streett 1 Fin(0) ∨ Inf(1) Streett 2

(Fin(0) ∨ Inf(1)) ∧ (Fin(2) ∨ Inf(3))

  • gen. Rabin 3 1 0 2 (Fin(0)∧Inf(1)) ∨ Fin(2) ∨ (Fin(3)∧Inf(4)∧Inf(5))

parity min odd 5 Fin(0) ∧ (Inf(1) ∨ (Fin(2) ∧ (Inf(3) ∨ Fin(4)))) parity max even 5 Inf(4) ∨ (Fin(3) ∧ (Inf(2) ∨ (Fin(1) ∧ Inf(0))))

5 / 9

slide-75
SLIDE 75

Acceptance Transformations (example)

(Fin(❶) & Fin(❸) & Inf(⓿)) | (Inf(❷)&Inf(❸)) | Inf(❶) 1 ❸ 1 a ❶❸ 2 !a ⓿❸ b ❸ a & b ⓿❸ !a & b ❷❸ !b a & !b ⓿ !a & !b ⓿ ⓿ ❶ ❸ ❸ ❶ ❷ ❸ ❶❸ ⓿❸ ❸ ⓿❸ ❷❸ ⓿ ⓿

6 / 9

slide-76
SLIDE 76

Acceptance Transformations (example)

(Fin(❶) & Fin(❸) & Inf(⓿)) | (Inf(❷)&Inf(❸)) | Inf(❶) 1 ❸ 1 a ❶❸ 2 !a ⓿❸ b ❸ a & b ⓿❸ !a & b ❷❸ !b a & !b ⓿ !a & !b ⓿

$ autfilt --cnf-acceptance example.hoa > output.hoa

(Inf(⓿) | Inf(❶) | Inf(❸)) & (Fin(❸) | Inf(❶) | Inf(❷)) 1 ❸ 1 a ❶❸ 2 !a ⓿❸ b ❸ a & b ⓿❸ !a & b ❷❸ !b a & !b ⓿ !a & !b ⓿

6 / 9

slide-77
SLIDE 77

Acceptance Transformations (example)

(Fin(❶) & Fin(❸) & Inf(⓿)) | (Inf(❷)&Inf(❸)) | Inf(❶) 1 ❸ 1 a ❶❸ 2 !a ⓿❸ b ❸ a & b ⓿❸ !a & b ❷❸ !b a & !b ⓿ !a & !b ⓿

$ autfilt --remove-fin example.hoa > output.hoa

Inf(⓿) | Inf(❶) | (Inf(❷)&Inf(❸)) 1 ❸ 1 a ❶❸ 2 !a ❸ b ❸ a & b ❸ !a & b ❷❸ !b a & !b !a & !b 3 !a & !b !a & !b ⓿

6 / 9

slide-78
SLIDE 78

Acceptance Transformations (example)

(Fin(❶) & Fin(❸) & Inf(⓿)) | (Inf(❷)&Inf(❸)) | Inf(❶) 1 ❸ 1 a ❶❸ 2 !a ⓿❸ b ❸ a & b ⓿❸ !a & b ❷❸ !b a & !b ⓿ !a & !b ⓿

$ autfilt --remove-fin --cnf-acc example.hoa > output.hoa

(Inf(⓿) | Inf(❶) | Inf(❷)) & (Inf(⓿) | Inf(❶) | Inf(❸)) 1 ❸ 1 a ❶❸ 2 !a ❸ b ❸ a & b ❸ !a & b ❷❸ !b a & !b !a & !b 3 !a & !b !a & !b ⓿

6 / 9

slide-79
SLIDE 79

Acceptance Transformations (example)

(Fin(❶) & Fin(❸) & Inf(⓿)) | (Inf(❷)&Inf(❸)) | Inf(❶) 1 ❸ 1 a ❶❸ 2 !a ⓿❸ b ❸ a & b ⓿❸ !a & b ❷❸ !b a & !b ⓿ !a & !b ⓿

$ autfilt --tgba example.hoa > output.hoa

Inf(⓿) 1 1 a ⓿ 2 !a b a & b !a & b ⓿ !b a & !b !a & !b 3 !a & !b !a & !b ⓿

6 / 9

slide-80
SLIDE 80

Determinization (example)

$ autfilt --deterministic example.hoa > output.hoa

Fin(⓿) & (Inf(❶) | (Fin(❷) & Inf(❸))) 1 !a 2 a !a & b a 3 !a & !b !a & !b ❷ a & !b ❷ 4 !a & b 5 a & b ❶ !a & b ❷ a ❷ !a & !b ❸ !a & b ❶ !a & !b ❶ a ❶ !a & !b a 6 !a & b !a & b ❷ a & b ❷ !a & !b a & !b ❶

7 / 9

slide-81
SLIDE 81

From LTL to Minimal D[T][G]BA

Output: DBA. (Ehlers’ setup.)

LTL formula DBA SAT minimization minimal DBA ltl2dstar (DRA) attempt conversion to DBA simplify DBA success not a recurrence fail

  • R. Ehlers. Minimising deterministic Büchi automata precisely using SAT
  • solving. SAT’10
  • S. C. Krishnan, A. Puri, and R. K. Brayton. Deterministic ω-automata

vis-a-vis deterministic Büchi automata. ISAAC’94

8 / 9

slide-82
SLIDE 82

From LTL to Minimal D[T][G]BA

Output: DBA.

LTL formula DBA SAT minimization minimal DBA minimal WDBA ltl2dstar (DRA) attempt conversion to DBA attempt WDBA minim. simplify DBA success fail not a recurrence fail success

8 / 9

slide-83
SLIDE 83

From LTL to Minimal D[T][G]BA

Output: DTBA.

LTL formula DTBA SAT minimization minimal DTBA minimal WDBA ltl2dstar (DRA) attempt conversion to DBA attempt WDBA minim. simplify DBA success fail not a recurrence fail success

8 / 9

slide-84
SLIDE 84

From LTL to Minimal D[T][G]BA

Output: DTBA.

translate to TGBA simplify TGBA LTL formula degen to TBA |F | > 1 else DTBA SAT minimization minimal DTBA minimal WDBA ltl2dstar (DRA) attempt conversion to DBA attempt WDBA minim. simplify DBA success fail not a recurrence fail success

8 / 9

slide-85
SLIDE 85

From LTL to Minimal D[T][G]BA

Output: DTBA.

translate to TGBA attempt WDBA minim. simplify TGBA fail LTL formula degen to TBA |F | > 1 else DTBA SAT minimization minimal DTBA minimal WDBA success ltl2dstar (DRA) attempt conversion to DBA attempt WDBA minim. simplify DBA success fail not a recurrence fail success

8 / 9

slide-86
SLIDE 86

From LTL to Minimal D[T][G]BA

Output: DTBA.

translate to TGBA attempt WDBA minim. simplify TGBA fail LTL formula degen to TBA |F | > 1 else attempt powerset to DTBA not in TCONG fail success nondet. det. DTBA SAT minimization minimal DTBA minimal WDBA success ltl2dstar (DRA) attempt conversion to DBA attempt WDBA minim. simplify DBA success fail not a recurrence fail success

8 / 9

slide-87
SLIDE 87

From LTL to Minimal D[T][G]BA

Output: DTGBA (m > 1) or DTBA (m = 1).

translate to TGBA attempt WDBA minim. simplify TGBA fail LTL formula degen to TBA

  • nondet. or

|F | > m = 1 else attempt powerset to DTBA not in TCONG fail success nondet. det. DTBA SAT minimization DTGBA SAT minimization minimal DTGBA minimal DTBA minimal WDBA success ltl2dstar (DRA) attempt conversion to DBA attempt WDBA minim. simplify DBA success fail m = 1 m > 1 not a recurrence fail success

8 / 9

slide-88
SLIDE 88

From LTL to Minimal D[T][G]BA

Output: DTGBA (m > 1) or DTBA (m = 1). Our setup.

ltl2tgba dstar2tgba translate to TGBA attempt WDBA minim. simplify TGBA fail LTL formula degen to TBA

  • nondet. or

|F | > m = 1 else attempt powerset to DTBA not in TCONG fail success nondet. det. DTBA SAT minimization DTGBA SAT minimization minimal DTGBA minimal DTBA minimal WDBA success ltl2dstar (DRA) attempt conversion to DBA attempt WDBA minim. simplify DBA success fail m = 1 m > 1 not a recurrence fail success

8 / 9

slide-89
SLIDE 89

ltlcross — basic operations

◮ Take a list of formulas (LTL/PSL) from file, stdin, or arguments. ◮ Take a list of translators T1, T2, ... given as arguments. ◮ For any formula ϕ and its negation, run all translators:

Pi = Ti(ϕ) Ni = Ti(¬ϕ)

◮ Perform the three checks of LBTT:

◮ intersection tests:

L (Ni ⊗ Pj) = ∅ L (Pi ⊗ Nj) = ∅

◮ cross-comparison tests (S is a random state-space)

L (Pi ⊗ S) = ∅ ⇐⇒ L (Pj ⊗ S) = ∅ L (Ni ⊗ S) = ∅ ⇐⇒ L (Nj ⊗ S) = ∅

◮ consistency check:

states(Pi ⊗ S)|S ∪ states(Ni ⊗ S)|S = S

◮ Additional intersection tests in ltlcross (Spot 1.2): L (Pi ⊗ Pj) = ∅ if Pj is deterministic L (Ni ⊗ Nj) = ∅ if Nj is deterministic ◮ Once all formulas have been processed, optionally output

detailed statistics in a CSV file.

9 / 9