Complementing Bchi automata Guillaume Sadegh LRDE EPITA Research - - PowerPoint PPT Presentation

complementing b chi automata
SMART_READER_LITE
LIVE PREVIEW

Complementing Bchi automata Guillaume Sadegh LRDE EPITA Research - - PowerPoint PPT Presentation

Complementing Bchi automata Guillaume Sadegh LRDE EPITA Research and Development Laboratory May 15, 2009 Guillaume Sadegh Complementing Bchi automata 1 / 25 Context Automata-theoretic approach to model checking 1. We have an


slide-1
SLIDE 1

Complementing Büchi automata

Guillaume Sadegh

LRDE – EPITA Research and Development Laboratory

May 15, 2009

Guillaume Sadegh Complementing Büchi automata 1 / 25

slide-2
SLIDE 2

Context

Automata-theoretic approach to model checking

  • 1. We have an automaton for the system AS,
  • 2. We have an automaton for the propertie AP,
  • 3. Synchronized-product between AS and ¬AP.

Guillaume Sadegh Complementing Büchi automata 2 / 25

slide-3
SLIDE 3

Context

Automata-theoretic approach to model checking

  • 1. We have an automaton for the system AS,
  • 2. We have an automaton for the propertie AP,
  • 3. Synchronized-product between AS and ¬AP.

Guillaume Sadegh Complementing Büchi automata 2 / 25

slide-4
SLIDE 4

Context

Automata-theoretic approach to model checking

  • 1. We have an automaton for the system AS,
  • 2. We have an automaton for the propertie AP,
  • 3. Synchronized-product between AS and ¬AP.

Guillaume Sadegh Complementing Büchi automata 2 / 25

slide-5
SLIDE 5

Context

Automata-theoretic approach to model checking

  • 1. We have an automaton for the system AS,
  • 2. We have an automaton for the propertie AP,
  • 3. Synchronized-product between AS and ¬AP.

Guillaume Sadegh Complementing Büchi automata 2 / 25

slide-6
SLIDE 6

Complementing Büchi Automata

Why not

◮ Complementation is unrealistic in practice,

Best algorithms produce 2O(n log n) states for an automaton with n states.

◮ Model checking avoids the complementation. (¬Aϕ ≡ A¬ϕ).

Why

◮ When properties are not forumlæ, ◮ To enrich our library, ◮ As a theoretical subject for Transition-based Generalized

Büchi Automata.

Guillaume Sadegh Complementing Büchi automata 3 / 25

slide-7
SLIDE 7

Outline

1

Overview on ω-automata Definitions

2

The complementation Safra’s construction Streett to non-deterministic Büchi

3

Conclusion and Perspectives

Guillaume Sadegh Complementing Büchi automata 4 / 25

slide-8
SLIDE 8

Outline

1

Overview on ω-automata Definitions

2

The complementation

3

Conclusion and Perspectives

Guillaume Sadegh Complementing Büchi automata 5 / 25

slide-9
SLIDE 9

ω-automata

Definition

An ω-automaton is a quintuplet A = (Q, Σ, δ, q0, F) that recognizes infinite words, with:

◮ Q a finite set of states, ◮ Σ the alphabet, ◮ δ : Q × Σ → 2Q the transition function, ◮ q0 ∈ Q the initial state, ◮ F the acceptance condition, which is a formula on states.

Guillaume Sadegh Complementing Büchi automata 6 / 25

slide-10
SLIDE 10

Acceptance conditions

Büchi (1962) acceptance condition

◮ The Büchi acceptance condition is a set of states. A run

must visit infinitely often some states of this acceptance condition to be accepting.

◮ Formally, a run π is accepting iff inf(π) ∩ F = ∅ with F ⊆ Q.

1 2 3

States in the accepting set are marked with .

Guillaume Sadegh Complementing Büchi automata 7 / 25

slide-11
SLIDE 11

Acceptance conditions

Büchi (1962) acceptance condition

◮ The Büchi acceptance condition is a set of states. A run

must visit infinitely often some states of this acceptance condition to be accepting.

◮ Formally, a run π is accepting iff inf(π) ∩ F = ∅ with F ⊆ Q.

1 2 3

States in the accepting set are marked with .

Deterministic Büchi are less expressive than non-deterministic Büchi!

Guillaume Sadegh Complementing Büchi automata 7 / 25

slide-12
SLIDE 12

Acceptance conditions

Rabin (1969) acceptance condition

◮ The Rabin acceptance condition F is a set of pair of sets of

  • states. For each pair (L, U), a run must visit infinitely often

some states of L and finitely often states of U.

◮ Formally, a run π is accepting iff

∃i : inf(π) ∩ Li = ∅ ∧ inf(π) ∩ Ui = ∅

1 2 3

F = {(L1, U1), (L2, U2)} denoted by {( , ), ( , )}.

Guillaume Sadegh Complementing Büchi automata 8 / 25

slide-13
SLIDE 13

Acceptance conditions

Streett (1982) acceptance condition: the dual

◮ The Streett acceptance condition F is a set of pair of sets

  • f states. For each pair (L, U), if a run visits infinitely often

some states of L then it must visit infinitely often some states of U.

◮ Formally, a run π is accepting iff

∀i : inf(π) ∩ Li = ∅ ∨ inf(π) ∩ Ui = ∅

1 2 3

F = {(L1, U1), (L2, U2)} denoted by {( , ), ( , )}.

Guillaume Sadegh Complementing Büchi automata 8 / 25

slide-14
SLIDE 14

Switching between classes (Löding, 1998; Safra, 1989)

NB NR

poly

NS DS ≡ DR DR

exp exp exp exp exp poly exp exp

Guillaume Sadegh Complementing Büchi automata 9 / 25

slide-15
SLIDE 15

Outline

1

Overview on ω-automata

2

The complementation Safra’s construction Streett to non-deterministic Büchi

3

Conclusion and Perspectives

Guillaume Sadegh Complementing Büchi automata 10 / 25

slide-16
SLIDE 16

The complementation

Safra’s construction

  • 1. Transform non-deterministic Büchi into deterministic Rabin
  • 2O(n log n)

,

  • 2. Interpret the deterministic Rabin automaton as a

deterministic Streett one,

  • 3. Transform deterministic Streett into a non-deterministic

Büchi

  • n · 2O(r)

.

Guillaume Sadegh Complementing Büchi automata 11 / 25

slide-17
SLIDE 17

Safra’s construction

Transform non-deterministic Büchi into deterministic Rabin

◮ The classical powerset construction does not work for

ω-automata!

q0 q1 a, b b b L = [ab]⋆bω {q0}

Guillaume Sadegh Complementing Büchi automata 12 / 25

slide-18
SLIDE 18

Safra’s construction

Transform non-deterministic Büchi into deterministic Rabin

◮ The classical powerset construction does not work for

ω-automata!

q0 q1 b b a, b L = [ab]⋆bω {q0} a

Guillaume Sadegh Complementing Büchi automata 12 / 25

slide-19
SLIDE 19

Safra’s construction

Transform non-deterministic Büchi into deterministic Rabin

◮ The classical powerset construction does not work for

ω-automata!

q0 q1 b a, b b L = [ab]⋆bω {q0} {q0, q1} a b

Guillaume Sadegh Complementing Büchi automata 12 / 25

slide-20
SLIDE 20

Safra’s construction

Transform non-deterministic Büchi into deterministic Rabin

◮ The classical powerset construction does not work for

ω-automata!

q0 q1 a, b b b L = [ab]⋆bω {q0} {q0, q1} a b b

Guillaume Sadegh Complementing Büchi automata 12 / 25

slide-21
SLIDE 21

Safra’s construction

Transform non-deterministic Büchi into deterministic Rabin

◮ The classical powerset construction does not work for

ω-automata!

q0 q1 b b a, b L = [ab]⋆bω {q0} {q0, q1} a b b a

Guillaume Sadegh Complementing Büchi automata 12 / 25

slide-22
SLIDE 22

Safra’s construction

Transform non-deterministic Büchi into deterministic Rabin

◮ The classical powerset construction does not work for

ω-automata!

q0 q1 a, b b b L = [ab]⋆bω {q0} {q0, q1} a b b a L = [ab]ω ◮ Too many accepting run are constructed.

Guillaume Sadegh Complementing Büchi automata 12 / 25

slide-23
SLIDE 23

Safra’s construction

Transform non-deterministic Büchi into deterministic Rabin

◮ Safra’s idea: using subsets of states in a tree.

{q0, q1, q2} 1 {q1, q2} 2 The tree Two nodes The label, a set of states The name This node is marked

Guillaume Sadegh Complementing Büchi automata 13 / 25

slide-24
SLIDE 24

Safra’s construction

The construction!

Transforming B = (Q, Σ, δ, q0, F) into

R = (Q′, Σ, δ′, q′

0, {(L1, U1), . . . , (L2n, U2n)}).

◮ Initial state: a Safra tree with q0 as label. ◮ Successors of the tree T for σ ∈ Σ is computed as follows:

  • 1. Remove marks.
  • 2. Branch accepting: A node with an accepting state in its

label has a new child.

  • 3. Powerset: The successor function is applied on each node.
  • 4. Horizontal merge: To limit the width of the tree.
  • 5. Remove empty: Empty nodes track finite runs.
  • 6. Vertical merge: Recurrent nodes track infinite runs.

◮ Q′ is all the reachable Safra trees.

Merging produces trees with at most |Q| nodes

Guillaume Sadegh Complementing Büchi automata 14 / 25

slide-25
SLIDE 25

Safra’s construction

The construction!

Transforming B = (Q, Σ, δ, q0, F) into

R = (Q′, Σ, δ′, q′

0, {(L1, U1), . . . , (L2n, U2n)}).

◮ Initial state: a Safra tree with q0 as label. ◮ Successors of the tree T for σ ∈ Σ is computed as follows:

  • 1. Remove marks.
  • 2. Branch accepting: A node with an accepting state in its

label has a new child.

  • 3. Powerset: The successor function is applied on each node.
  • 4. Horizontal merge: To limit the width of the tree.
  • 5. Remove empty: Empty nodes track finite runs.
  • 6. Vertical merge: Recurrent nodes track infinite runs.

◮ Q′ is all the reachable Safra trees.

Merging produces trees with at most |Q| nodes

Guillaume Sadegh Complementing Büchi automata 14 / 25

slide-26
SLIDE 26

Safra’s construction

The construction!

Transforming B = (Q, Σ, δ, q0, F) into

R = (Q′, Σ, δ′, q′

0, {(L1, U1), . . . , (L2n, U2n)}).

◮ Initial state: a Safra tree with q0 as label. ◮ Successors of the tree T for σ ∈ Σ is computed as follows:

  • 1. Remove marks.
  • 2. Branch accepting: A node with an accepting state in its

label has a new child.

  • 3. Powerset: The successor function is applied on each node.
  • 4. Horizontal merge: To limit the width of the tree.
  • 5. Remove empty: Empty nodes track finite runs.
  • 6. Vertical merge: Recurrent nodes track infinite runs.

◮ Q′ is all the reachable Safra trees.

Merging produces trees with at most |Q| nodes

Guillaume Sadegh Complementing Büchi automata 14 / 25

slide-27
SLIDE 27

Safra’s construction

The construction!

Transforming B = (Q, Σ, δ, q0, F) into

R = (Q′, Σ, δ′, q′

0, {(L1, U1), . . . , (L2n, U2n)}).

◮ Initial state: a Safra tree with q0 as label. ◮ Successors of the tree T for σ ∈ Σ is computed as follows:

  • 1. Remove marks.
  • 2. Branch accepting: A node with an accepting state in its

label has a new child.

  • 3. Powerset: The successor function is applied on each node.
  • 4. Horizontal merge: To limit the width of the tree.
  • 5. Remove empty: Empty nodes track finite runs.
  • 6. Vertical merge: Recurrent nodes track infinite runs.

◮ Q′ is all the reachable Safra trees.

Merging produces trees with at most |Q| nodes

Guillaume Sadegh Complementing Büchi automata 14 / 25

slide-28
SLIDE 28

Safra’s construction

The construction!

Transforming B = (Q, Σ, δ, q0, F) into

R = (Q′, Σ, δ′, q′

0, {(L1, U1), . . . , (L2n, U2n)}).

◮ Initial state: a Safra tree with q0 as label. ◮ Successors of the tree T for σ ∈ Σ is computed as follows:

  • 1. Remove marks.
  • 2. Branch accepting: A node with an accepting state in its

label has a new child.

  • 3. Powerset: The successor function is applied on each node.
  • 4. Horizontal merge: To limit the width of the tree.
  • 5. Remove empty: Empty nodes track finite runs.
  • 6. Vertical merge: Recurrent nodes track infinite runs.

◮ Q′ is all the reachable Safra trees.

Merging produces trees with at most |Q| nodes

Guillaume Sadegh Complementing Büchi automata 14 / 25

slide-29
SLIDE 29

Safra’s construction

The construction!

Transforming B = (Q, Σ, δ, q0, F) into

R = (Q′, Σ, δ′, q′

0, {(L1, U1), . . . , (L2n, U2n)}).

◮ Initial state: a Safra tree with q0 as label. ◮ Successors of the tree T for σ ∈ Σ is computed as follows:

  • 1. Remove marks.
  • 2. Branch accepting: A node with an accepting state in its

label has a new child.

  • 3. Powerset: The successor function is applied on each node.
  • 4. Horizontal merge: To limit the width of the tree.
  • 5. Remove empty: Empty nodes track finite runs.
  • 6. Vertical merge: Recurrent nodes track infinite runs.

◮ Q′ is all the reachable Safra trees.

Merging produces trees with at most |Q| nodes

Guillaume Sadegh Complementing Büchi automata 14 / 25

slide-30
SLIDE 30

Safra’s construction

The construction!

Transforming B = (Q, Σ, δ, q0, F) into

R = (Q′, Σ, δ′, q′

0, {(L1, U1), . . . , (L2n, U2n)}).

◮ Initial state: a Safra tree with q0 as label. ◮ Successors of the tree T for σ ∈ Σ is computed as follows:

  • 1. Remove marks.
  • 2. Branch accepting: A node with an accepting state in its

label has a new child.

  • 3. Powerset: The successor function is applied on each node.
  • 4. Horizontal merge: To limit the width of the tree.
  • 5. Remove empty: Empty nodes track finite runs.
  • 6. Vertical merge: Recurrent nodes track infinite runs.

◮ Q′ is all the reachable Safra trees.

Merging produces trees with at most |Q| nodes

Guillaume Sadegh Complementing Büchi automata 14 / 25

slide-31
SLIDE 31

Safra’s construction

The construction!

Transforming B = (Q, Σ, δ, q0, F) into

R = (Q′, Σ, δ′, q′

0, {(L1, U1), . . . , (L2n, U2n)}).

◮ Initial state: a Safra tree with q0 as label. ◮ Successors of the tree T for σ ∈ Σ is computed as follows:

  • 1. Remove marks.
  • 2. Branch accepting: A node with an accepting state in its

label has a new child.

  • 3. Powerset: The successor function is applied on each node.
  • 4. Horizontal merge: To limit the width of the tree.
  • 5. Remove empty: Empty nodes track finite runs.
  • 6. Vertical merge: Recurrent nodes track infinite runs.

◮ Q′ is all the reachable Safra trees.

Merging produces trees with at most |Q| nodes

Guillaume Sadegh Complementing Büchi automata 14 / 25

slide-32
SLIDE 32

Safra’s construction

The construction!

Transforming B = (Q, Σ, δ, q0, F) into

R = (Q′, Σ, δ′, q′

0, {(L1, U1), . . . , (L2n, U2n)}).

◮ Initial state: a Safra tree with q0 as label. ◮ Successors of the tree T for σ ∈ Σ is computed as follows:

  • 1. Remove marks.
  • 2. Branch accepting: A node with an accepting state in its

label has a new child.

  • 3. Powerset: The successor function is applied on each node.
  • 4. Horizontal merge: To limit the width of the tree.
  • 5. Remove empty: Empty nodes track finite runs.
  • 6. Vertical merge: Recurrent nodes track infinite runs.

◮ Q′ is all the reachable Safra trees.

Merging produces trees with at most |Q| nodes

Guillaume Sadegh Complementing Büchi automata 14 / 25

slide-33
SLIDE 33

Safra’s construction

The construction!

Transforming B = (Q, Σ, δ, q0, F) into

R = (Q′, Σ, δ′, q′

0, {(L1, U1), . . . , (L2n, U2n)}).

◮ Initial state: a Safra tree with q0 as label. ◮ Successors of the tree T for σ ∈ Σ is computed as follows:

  • 1. Remove marks.
  • 2. Branch accepting: A node with an accepting state in its

label has a new child.

  • 3. Powerset: The successor function is applied on each node.
  • 4. Horizontal merge: To limit the width of the tree.
  • 5. Remove empty: Empty nodes track finite runs.
  • 6. Vertical merge: Recurrent nodes track infinite runs.

◮ Q′ is all the reachable Safra trees.

Merging produces trees with at most |Q| nodes

Guillaume Sadegh Complementing Büchi automata 14 / 25

slide-34
SLIDE 34

Safra’s construction

The construction!

The Rabin acceptance condition is all the pairs (Li, Ui) with

◮ Li consists of all Safra trees with the node named i marked

(infinite run).

◮ Ui consists of all Safra trees without the node named i

(finite run).

Guillaume Sadegh Complementing Büchi automata 15 / 25

slide-35
SLIDE 35

Example of construction

Determinizing the following Büchi automaton: q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 16 / 25

slide-36
SLIDE 36

Example of construction

{q0} 1

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-37
SLIDE 37

Example of construction

{q0} 1 {q0} 1

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-38
SLIDE 38

Example of construction

{q0} 1 {q0} 1 {q0, q1} 1 ε b a c

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-39
SLIDE 39

Example of construction

{q0} 1 {q0, q1} 1 ε b a c 1 2

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-40
SLIDE 40

Example of construction

{q0} 1 {q0, q1} 1 ε b a c 1 2 {q0, q1} 1

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-41
SLIDE 41

Example of construction

{q0} 1 {q0, q1} 1 ε b a c 1 2 {q0, q1} 1 {q1} 2

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-42
SLIDE 42

Example of construction

{q0} 1 {q0, q1} 1 ε b a c 1 2 {q0} 1 {} 2 b {q1} 1 {q1} 2 c {q0, q1, q2} 1 {q2} 2 a

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-43
SLIDE 43

Example of construction

{q0} 1 {q0, q1} 1 ε b a c 1 2 {q0} 1 b {q1} 1 {q1} 2 c {q0, q1, q2} 1 {q2} 2 a

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-44
SLIDE 44

Example of construction

{q0} 1 {q0, q1} 1 ε b a c 1 2 {q0} 1 b {q1} 1 c {q0, q1, q2} 1 {q2} 2 a

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-45
SLIDE 45

Example of construction

{q0} 1 {q0, q1} 1 ε b a c b {q1} 1 c {q0, q1, q2} 1 {q2} 2 a 1 2 3

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-46
SLIDE 46

Example of construction

{q0} 1 {q0, q1} 1 ε a, b, c b a c b {q1} 1 c {q0, q1, q2} 1 {q2} 2 a 1 2

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-47
SLIDE 47

Example of construction

{q0} 1 {q0, q1} 1 ε a, b, c b a c b {q1} 1 c {q0, q1, q2} 1 {q2} 2 a b {q2} 1 a c 1 2

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-48
SLIDE 48

Example of construction

{q0} 1 {q0, q1} 1 ε a, b, c b a c b {q1} 1 c {q0, q1, q2} 1 {q2} 2 a b {q2} 1 a c 1 2 {q0, q1, q2} 1 {q2} 2

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-49
SLIDE 49

Example of construction

{q0} 1 {q0, q1} 1 ε a, b, c b a c b {q1} 1 c {q0, q1, q2} 1 {q2} 2 a b {q2} 1 a c 1 2 {q0, q1, q2} 1 {q2} 2 {q1, q2} 3 {q2} 4

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-50
SLIDE 50

Example of construction

{q0} 1 {q0, q1} 1 ε a, b, c b a c b {q1} 1 c {q0, q1, q2} 1 {q2} 2 a b {q2} 1 a c 1 2 {q0, q1, q2} 1 {q1, q2} 2 {q1, q2} 3 {q1, q2} 4 a {q0} 1 {} 2 {} 3 {} 4 b {q1} 1 {} 2 {q1} 3 {} 4 c

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-51
SLIDE 51

Example of construction

{q0} 1 {q0, q1} 1 ε a, b, c b a c b {q1} 1 c {q0, q1, q2} 1 {q2} 2 a b {q2} 1 a c 1 2 {q0, q1, q2} 1 {q1, q2} 2 {} 3 {q1, q2} 4 a {q0} 1 {} 2 {} 3 {} 4 b {q1} 1 {} 2 {q1} 3 {} 4 c

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-52
SLIDE 52

Example of construction

{q0} 1 {q0, q1} 1 ε a, b, c b a c b {q1} 1 c {q0, q1, q2} 1 {q2} 2 a b {q2} 1 a c 1 2 {q0, q1, q2} 1 {q1, q2} 2 {q1, q2} 4 a {q0} 1 b {q1} 1 {q1} 3 c

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-53
SLIDE 53

Example of construction

{q0} 1 {q0, q1} 1 ε a, b, c b a c b {q1} 1 c {q0, q1, q2} 1 {q2} 2 a b {q2} 1 a c 1 2 {q0, q1, q2} 1 {q1, q2} 2 a {q0} 1 b {q1} 1 c

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-54
SLIDE 54

Example of construction

{q0} 1 {q0, q1} 1 ε a, b, c b a c b {q1} 1 c {q0, q1, q2} 1 {q2} 2 a b {q2} 1 a c {q0, q1, q2} 1 {q1, q2} 2 a b 1 2 c

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-55
SLIDE 55

Example of construction

{q0} 1 {q0, q1} 1 ε a, b, c b a c b {q1} 1 c {q0, q1, q2} 1 {q2} 2 a b {q2} 1 a c {q0, q1, q2} 1 {q1, q2} 2 a b c c b {q1, q2} 1 a 1 2

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-56
SLIDE 56

Example of construction

{q0} 1 {q0, q1} 1 ε a, b, c b a c b {q1} 1 c {q0, q1, q2} 1 {q2} 2 a b {q2} 1 a c {q0, q1, q2} 1 {q1, q2} 2 a b c c b {q1, q2} 1 a a c b 1

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-57
SLIDE 57

Example of construction

{q0} 1 {q0, q1} 1 ε a, b, c b a c b {q1} 1 c {q0, q1, q2} 1 {q2} 2 a b {q2} 1 a c {q0, q1, q2} 1 {q1, q2} 2 a b c c b {q1, q2} 1 a a c b a b c

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-58
SLIDE 58

Example of construction

{q0} 1 {q0, q1} 1 ε a, b, c b a c b {q1} 1 c {q0, q1, q2} 1 {q2} 2 a b {q2} 1 a c {q0, q1, q2} 1 {q1, q2} 2 a b c c b {q1, q2} 1 a a c b a b c

  • 1. Remove marks
  • 2. Branch accepting states
  • 3. Sucessors
  • 4. Horizontal merge
  • 5. Remove empty
  • 6. Vertical merge

q0 q1 q2 a, b a a c a a

Guillaume Sadegh Complementing Büchi automata 17 / 25

slide-59
SLIDE 59

The complementation

Safra’s construction

✔ Transform non-deterministic Büchi into deterministic Rabin.

  • 2O(n log n)
  • 2. Interpret the deterministic Rabin automaton as a

deterministic Streett one.

  • 3. Transform deterministic Streett into a non-deterministic

Büchi.

  • n · 2O(r)

Guillaume Sadegh Complementing Büchi automata 18 / 25

slide-60
SLIDE 60

Streett to non-deterministic Büchi transformation

Basic idea

Three pools of states:

◮ One to track finite runs, ◮ One to track accepting runs, ◮ One to track non-accepting runs.

Guillaume Sadegh Complementing Büchi automata 19 / 25

slide-61
SLIDE 61

Example of the transformation

q0 q1 q2 a b a b b a q0 q1 q2 a b a b b a

Guillaume Sadegh Complementing Büchi automata 20 / 25

slide-62
SLIDE 62

Example of the transformation

q0 q1 q2 a b a b b a q0 q1 q2 a b a b b a

Guillaume Sadegh Complementing Büchi automata 20 / 25

slide-63
SLIDE 63

Example of the transformation

q0 q1 q2 a b a b b a q0, ∅, ∅ q1, ∅, ∅ q2, ∅, ∅ b a a b b a q0 q1 q2 a b a b b a

Guillaume Sadegh Complementing Büchi automata 20 / 25

slide-64
SLIDE 64

Example of the transformation

q0 q1 q2 a b a b b a q0, ∅, ∅ q1, ∅, ∅ q2, ∅, ∅ b a a b b a a b a b q0, { }, ∅ q1, { }, ∅ b a q0 q1 q2 a b a b b a

Guillaume Sadegh Complementing Büchi automata 20 / 25

slide-65
SLIDE 65

Example of the transformation

q0 q1 q2 a b a b b a q0, ∅, ∅ q1, ∅, ∅ q2, ∅, ∅ b a a b b a a b a b q0, { }, ∅ q1, { }, ∅ q2, { }, ∅ b a a b b a q0 q1 q2 a b a b b a

Guillaume Sadegh Complementing Büchi automata 20 / 25

slide-66
SLIDE 66

Example of the transformation

q0 q1 q2 a b a b b a q0, ∅, ∅ q1, ∅, ∅ q2, ∅, ∅ b a a b b a a b a b q0, { }, ∅ q1, { }, ∅ q2, { }, ∅ b a a b b a a b q0 q1 q2 a b a b b a

Guillaume Sadegh Complementing Büchi automata 20 / 25

slide-67
SLIDE 67

Example of the transformation

q0 q1 q2 a b a b b a q0, ∅, ∅ q1, ∅, ∅ q2, ∅, ∅ b a a b b a a b a b q0, { }, ∅ q1, { }, ∅ q2, { }, ∅ b a a b b a a b q0 q1 q2 a b a b b a

Guillaume Sadegh Complementing Büchi automata 20 / 25

slide-68
SLIDE 68

Outline

1

Overview on ω-automata

2

The complementation

3

Conclusion and Perspectives

Guillaume Sadegh Complementing Büchi automata 21 / 25

slide-69
SLIDE 69

Conclusion and Perspectives

The work done

◮ Implementation of those two algorithms in SPOT.

The work to do

◮ To work with Transition-based Generalized Büchi Automata

Safra’s construction Some idea to change Safra to work with generalized Büchi. Transition-based more complicated. Streett-to-Büchi Do not track anymore the second pair in states but use generalized Büchi conditions

  • n transitions.

Guillaume Sadegh Complementing Büchi automata 22 / 25

slide-70
SLIDE 70

Questions

Guillaume Sadegh Complementing Büchi automata 23 / 25

slide-71
SLIDE 71

Bibliography I

Büchi, J. R. (1962). On a decision method in restricted second

  • rder arithmetic. In Proceedings of the International

Congress on Logic, Methodology, and Philosophy of Science, Berkley, 1960, pages 1–11. Standford University Press. Republished in Lane and Siefkes (1990). Lane, S. M. and Siefkes, D., editors (1990). The Collected Works of J. Richard Büchi. Springer-Verlag. Löding, C. (1998). Methods for the transformation of ω-automata: Complexity and connection to second order

  • logic. Master’s thesis, University of Kiel.

Rabin, M. O. (1969). Decidability of second order theories and automata on infinite trees. Transactions of the American Mathematical Society, 141:1–35.

Guillaume Sadegh Complementing Büchi automata 24 / 25

slide-72
SLIDE 72

Bibliography II

Safra, S. (1989). Complexity of Automata on Infinite Objects. PhD thesis, The Weizmann Institute of Science, Rehovot, Israel. Streett, R. S. (1982). Propositional dynamic logic of looping and converse is elementary decidable. Information and Control, 54:121–141.

Guillaume Sadegh Complementing Büchi automata 25 / 25