Nested Antichains for WS1S(originally presented at TACAS’15)
Tomas Fiedor1,2 Lukas Holık2 Ondrej Lengal2 Tomas Vojnar2
1Red Hat, Czech Republic2Brno University of Technology, Czech Republic
Automata, Logic, and (non-fun) Games’16
WS1S
weak monadic second-order logic of one successorI monadic second-order⇒ quantification over setsI weak⇒ sets are finiteI of one successor⇒ reasoning about linear structures
corresponds to finite automata (FAs) [Buchi’59]
decidable — but NONELEMENTARY [Meyer’72]I constructive proof→ translate ϕ to FA Aϕ
|Aϕ| ≈ 22···2
k
k : number of quantifier alternations
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 2 / 26
WS1S
weak monadic second-order logic of one successorI monadic second-order⇒ quantification over setsI weak⇒ sets are finiteI of one successor⇒ reasoning about linear structures
corresponds to finite automata (FAs) [Buchi’59]
decidable — but NONELEMENTARY [Meyer’72]I constructive proof→ translate ϕ to FA Aϕ
|Aϕ| ≈ 22···2
k
k : number of quantifier alternations
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 2 / 26
WS1S
weak monadic second-order logic of one successorI monadic second-order⇒ quantification over setsI weak⇒ sets are finiteI of one successor⇒ reasoning about linear structures
corresponds to finite automata (FAs) [Buchi’59]
decidable — but NONELEMENTARY [Meyer’72]I constructive proof→ translate ϕ to FA Aϕ
|Aϕ| ≈ 22···2
k
k : number of quantifier alternations
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 2 / 26
Applications of WS1S
expressive→ allows to define rich invariants
MONA tool [ElgaardKlaarlundMøller’98]I implementation of translation to DFAsI heuristics: BDDs, caching, DAGification, CPU cache localityI in many cases efficient (in practice)
used in tools for shape analysisI Pointer Assertion Logic Engine (PALE) [MøllerSchwartzbach’01]I STRucture ANd Data (STRAND) [MadhusudanQiu’11]
many other applicationsI program, protocol, HW verification; linguistics; . . .
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 3 / 26
Applications of WS1S
sometimes the complexity strikes backI in general: unavoidable
I in practice: not necessary→ more/better heuristics needed!
this talk:I decision procedure based on NFAs (MONA uses DFAs)
I construction of symbolic representation of Aϕ
I testing Aϕ for language non-emptiness
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 4 / 26
WS1SSyntax
term t ::= X ⊆ Y | Sing(X ) | X = {0} | X = σ(Y )
formula ϕ ::= t | ϕ ∧ ϕ | ¬ϕ | ∃X .ϕ (ϕ ∨ ϕ | ∀X .ϕ)
Interpretation: over finite subsets of NI models of formulae = assignments of sets to variables
Example (sugarized)
ϕ(X ,Y ) ≡ Sing(X ) ∧ 0 ∈ Y ∧∀Z .(Z ⊆ Y ∧ Sing(Z )
)︸ ︷︷ ︸≡∀z∈Y
=⇒(σ(Z ) ⊆ Y ⊕ σ(Z ) ⊆ X
)Models of ϕ(X ,Y ): {X 7→ {0},Y 7→ ∅}
{X 7→ {1},Y 7→ {0}}{X 7→ {2},Y 7→ {0,1}}
...
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 5 / 26
WS1SSyntax
term t ::= X ⊆ Y | Sing(X ) | X = {0} | X = σ(Y )
formula ϕ ::= t | ϕ ∧ ϕ | ¬ϕ | ∃X .ϕ (ϕ ∨ ϕ | ∀X .ϕ)
Interpretation: over finite subsets of NI models of formulae = assignments of sets to variables
Example (sugarized)
ϕ(X ,Y ) ≡ Sing(X ) ∧ 0 ∈ Y ∧∀Z .(Z ⊆ Y ∧ Sing(Z )
)︸ ︷︷ ︸≡∀z∈Y
=⇒(σ(Z ) ⊆ Y ⊕ σ(Z ) ⊆ X
)Models of ϕ(X ,Y ): {X 7→ {0},Y 7→ ∅}
{X 7→ {1},Y 7→ {0}}{X 7→ {2},Y 7→ {0,1}}
...
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 5 / 26
WS1SSyntax
term t ::= X ⊆ Y | Sing(X ) | X = {0} | X = σ(Y )
formula ϕ ::= t | ϕ ∧ ϕ | ¬ϕ | ∃X .ϕ (ϕ ∨ ϕ | ∀X .ϕ)
Interpretation: over finite subsets of NI models of formulae = assignments of sets to variables
Example (sugarized)
ϕ(X ,Y ) ≡ Sing(X ) ∧ 0 ∈ Y ∧∀Z .(Z ⊆ Y ∧ Sing(Z )
)︸ ︷︷ ︸≡∀z∈Y
=⇒(σ(Z ) ⊆ Y ⊕ σ(Z ) ⊆ X
)
Models of ϕ(X ,Y ): {X 7→ {0},Y 7→ ∅}{X 7→ {1},Y 7→ {0}}{X 7→ {2},Y 7→ {0,1}}
...
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 5 / 26
WS1SSyntax
term t ::= X ⊆ Y | Sing(X ) | X = {0} | X = σ(Y )
formula ϕ ::= t | ϕ ∧ ϕ | ¬ϕ | ∃X .ϕ (ϕ ∨ ϕ | ∀X .ϕ)
Interpretation: over finite subsets of NI models of formulae = assignments of sets to variables
Example (sugarized)
ϕ(X ,Y ) ≡ Sing(X ) ∧ 0 ∈ Y ∧∀Z .(Z ⊆ Y ∧ Sing(Z )
)︸ ︷︷ ︸≡∀z∈Y
=⇒(σ(Z ) ⊆ Y ⊕ σ(Z ) ⊆ X
)Models of ϕ(X ,Y ):
{X 7→ {0},Y 7→ ∅}{X 7→ {1},Y 7→ {0}}{X 7→ {2},Y 7→ {0,1}}
...
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 5 / 26
WS1SSyntax
term t ::= X ⊆ Y | Sing(X ) | X = {0} | X = σ(Y )
formula ϕ ::= t | ϕ ∧ ϕ | ¬ϕ | ∃X .ϕ (ϕ ∨ ϕ | ∀X .ϕ)
Interpretation: over finite subsets of NI models of formulae = assignments of sets to variables
Example (sugarized)
ϕ(X ,Y ) ≡ Sing(X ) ∧ 0 ∈ Y ∧∀Z .(Z ⊆ Y ∧ Sing(Z )
)︸ ︷︷ ︸≡∀z∈Y
=⇒(σ(Z ) ⊆ Y ⊕ σ(Z ) ⊆ X
)Models of ϕ(X ,Y ): {X 7→ {0},Y 7→ ∅}
{X 7→ {1},Y 7→ {0}}{X 7→ {2},Y 7→ {0,1}}
...
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 5 / 26
WS1SSyntax
term t ::= X ⊆ Y | Sing(X ) | X = {0} | X = σ(Y )
formula ϕ ::= t | ϕ ∧ ϕ | ¬ϕ | ∃X .ϕ (ϕ ∨ ϕ | ∀X .ϕ)
Interpretation: over finite subsets of NI models of formulae = assignments of sets to variables
Example (sugarized)
ϕ(X ,Y ) ≡ Sing(X ) ∧ 0 ∈ Y ∧∀Z .(Z ⊆ Y ∧ Sing(Z )
)︸ ︷︷ ︸≡∀z∈Y
=⇒(σ(Z ) ⊆ Y ⊕ σ(Z ) ⊆ X
)Models of ϕ(X ,Y ): {X 7→ {0},Y 7→ ∅}
{X 7→ {1},Y 7→ {0}}
{X 7→ {2},Y 7→ {0,1}}...
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 5 / 26
WS1SSyntax
term t ::= X ⊆ Y | Sing(X ) | X = {0} | X = σ(Y )
formula ϕ ::= t | ϕ ∧ ϕ | ¬ϕ | ∃X .ϕ (ϕ ∨ ϕ | ∀X .ϕ)
Interpretation: over finite subsets of NI models of formulae = assignments of sets to variables
Example (sugarized)
ϕ(X ,Y ) ≡ Sing(X ) ∧ 0 ∈ Y ∧∀Z .(Z ⊆ Y ∧ Sing(Z )
)︸ ︷︷ ︸≡∀z∈Y
=⇒(σ(Z ) ⊆ Y ⊕ σ(Z ) ⊆ X
)Models of ϕ(X ,Y ): {X 7→ {0},Y 7→ ∅}
{X 7→ {1},Y 7→ {0}}{X 7→ {2},Y 7→ {0,1}}
...
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 5 / 26
Related LogicsWSkS:
I extension: σ1(..), . . . , σk (..)I interpretation over infinite k -ary treeI reducible to WS2S
MSO(Str)I MSO on finite strings
• predicates a1(..), . . . , am(..) for symbols at positionsI models are of the form (w , ρ)
• w — a finite string of length n• ρ — assignment of variables to subsets of {0, . . . , n − 1}
Example (Σ = {a,b})ϕ(X ,Y ) ≡ Sing(X ) ∧ b(X ) ∧ 0 ∈ Y ∧ a(Y ) ∧
∀Z .(Z ⊆ Y ∧ Sing(Z )
)=⇒
(σ(Z ) ⊆ Y ⊕ σ(Z ) ⊆ X
)Models of ϕ(X ,Y ): (b, {X 7→ {0},Y 7→ ∅}) , (ab, {X 7→ {1},Y 7→ {0}}) ,
(aab, {X 7→ {2},Y 7→ {0,1}}), . . .
I can be translated to WS1S: symbol ai → variable Xai
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 6 / 26
Related LogicsWSkS:
I extension: σ1(..), . . . , σk (..)I interpretation over infinite k -ary treeI reducible to WS2S
MSO(Str)I MSO on finite strings
• predicates a1(..), . . . , am(..) for symbols at positions
I models are of the form (w , ρ)• w — a finite string of length n• ρ — assignment of variables to subsets of {0, . . . , n − 1}
Example (Σ = {a,b})ϕ(X ,Y ) ≡ Sing(X ) ∧ b(X ) ∧ 0 ∈ Y ∧ a(Y ) ∧
∀Z .(Z ⊆ Y ∧ Sing(Z )
)=⇒
(σ(Z ) ⊆ Y ⊕ σ(Z ) ⊆ X
)Models of ϕ(X ,Y ): (b, {X 7→ {0},Y 7→ ∅}) , (ab, {X 7→ {1},Y 7→ {0}}) ,
(aab, {X 7→ {2},Y 7→ {0,1}}), . . .
I can be translated to WS1S: symbol ai → variable Xai
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 6 / 26
Related LogicsWSkS:
I extension: σ1(..), . . . , σk (..)I interpretation over infinite k -ary treeI reducible to WS2S
MSO(Str)I MSO on finite strings
• predicates a1(..), . . . , am(..) for symbols at positionsI models are of the form (w , ρ)
• w — a finite string of length n• ρ — assignment of variables to subsets of {0, . . . , n − 1}
Example (Σ = {a,b})ϕ(X ,Y ) ≡ Sing(X ) ∧ b(X ) ∧ 0 ∈ Y ∧ a(Y ) ∧
∀Z .(Z ⊆ Y ∧ Sing(Z )
)=⇒
(σ(Z ) ⊆ Y ⊕ σ(Z ) ⊆ X
)Models of ϕ(X ,Y ): (b, {X 7→ {0},Y 7→ ∅}) , (ab, {X 7→ {1},Y 7→ {0}}) ,
(aab, {X 7→ {2},Y 7→ {0,1}}), . . .
I can be translated to WS1S: symbol ai → variable Xai
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 6 / 26
Related LogicsWSkS:
I extension: σ1(..), . . . , σk (..)I interpretation over infinite k -ary treeI reducible to WS2S
MSO(Str)I MSO on finite strings
• predicates a1(..), . . . , am(..) for symbols at positionsI models are of the form (w , ρ)
• w — a finite string of length n• ρ — assignment of variables to subsets of {0, . . . , n − 1}
Example (Σ = {a,b})ϕ(X ,Y ) ≡ Sing(X ) ∧ b(X ) ∧ 0 ∈ Y ∧ a(Y ) ∧
∀Z .(Z ⊆ Y ∧ Sing(Z )
)=⇒
(σ(Z ) ⊆ Y ⊕ σ(Z ) ⊆ X
)
Models of ϕ(X ,Y ): (b, {X 7→ {0},Y 7→ ∅}) , (ab, {X 7→ {1},Y 7→ {0}}) ,(aab, {X 7→ {2},Y 7→ {0,1}}), . . .
I can be translated to WS1S: symbol ai → variable Xai
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 6 / 26
Related LogicsWSkS:
I extension: σ1(..), . . . , σk (..)I interpretation over infinite k -ary treeI reducible to WS2S
MSO(Str)I MSO on finite strings
• predicates a1(..), . . . , am(..) for symbols at positionsI models are of the form (w , ρ)
• w — a finite string of length n• ρ — assignment of variables to subsets of {0, . . . , n − 1}
Example (Σ = {a,b})ϕ(X ,Y ) ≡ Sing(X ) ∧ b(X ) ∧ 0 ∈ Y ∧ a(Y ) ∧
∀Z .(Z ⊆ Y ∧ Sing(Z )
)=⇒
(σ(Z ) ⊆ Y ⊕ σ(Z ) ⊆ X
)Models of ϕ(X ,Y ):
(b, {X 7→ {0},Y 7→ ∅}) , (ab, {X 7→ {1},Y 7→ {0}}) ,(aab, {X 7→ {2},Y 7→ {0,1}}), . . .
I can be translated to WS1S: symbol ai → variable Xai
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 6 / 26
Related LogicsWSkS:
I extension: σ1(..), . . . , σk (..)I interpretation over infinite k -ary treeI reducible to WS2S
MSO(Str)I MSO on finite strings
• predicates a1(..), . . . , am(..) for symbols at positionsI models are of the form (w , ρ)
• w — a finite string of length n• ρ — assignment of variables to subsets of {0, . . . , n − 1}
Example (Σ = {a,b})ϕ(X ,Y ) ≡ Sing(X ) ∧ b(X ) ∧ 0 ∈ Y ∧ a(Y ) ∧
∀Z .(Z ⊆ Y ∧ Sing(Z )
)=⇒
(σ(Z ) ⊆ Y ⊕ σ(Z ) ⊆ X
)Models of ϕ(X ,Y ): (b, {X 7→ {0},Y 7→ ∅})
, (ab, {X 7→ {1},Y 7→ {0}}) ,(aab, {X 7→ {2},Y 7→ {0,1}}), . . .
I can be translated to WS1S: symbol ai → variable Xai
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 6 / 26
Related LogicsWSkS:
I extension: σ1(..), . . . , σk (..)I interpretation over infinite k -ary treeI reducible to WS2S
MSO(Str)I MSO on finite strings
• predicates a1(..), . . . , am(..) for symbols at positionsI models are of the form (w , ρ)
• w — a finite string of length n• ρ — assignment of variables to subsets of {0, . . . , n − 1}
Example (Σ = {a,b})ϕ(X ,Y ) ≡ Sing(X ) ∧ b(X ) ∧ 0 ∈ Y ∧ a(Y ) ∧
∀Z .(Z ⊆ Y ∧ Sing(Z )
)=⇒
(σ(Z ) ⊆ Y ⊕ σ(Z ) ⊆ X
)Models of ϕ(X ,Y ): (b, {X 7→ {0},Y 7→ ∅}) , (ab, {X 7→ {1},Y 7→ {0}})
,(aab, {X 7→ {2},Y 7→ {0,1}}), . . .
I can be translated to WS1S: symbol ai → variable Xai
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 6 / 26
Related LogicsWSkS:
I extension: σ1(..), . . . , σk (..)I interpretation over infinite k -ary treeI reducible to WS2S
MSO(Str)I MSO on finite strings
• predicates a1(..), . . . , am(..) for symbols at positionsI models are of the form (w , ρ)
• w — a finite string of length n• ρ — assignment of variables to subsets of {0, . . . , n − 1}
Example (Σ = {a,b})ϕ(X ,Y ) ≡ Sing(X ) ∧ b(X ) ∧ 0 ∈ Y ∧ a(Y ) ∧
∀Z .(Z ⊆ Y ∧ Sing(Z )
)=⇒
(σ(Z ) ⊆ Y ⊕ σ(Z ) ⊆ X
)Models of ϕ(X ,Y ): (b, {X 7→ {0},Y 7→ ∅}) , (ab, {X 7→ {1},Y 7→ {0}}) ,
(aab, {X 7→ {2},Y 7→ {0,1}}), . . .
I can be translated to WS1S: symbol ai → variable Xai
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 6 / 26
Related LogicsWSkS:
I extension: σ1(..), . . . , σk (..)I interpretation over infinite k -ary treeI reducible to WS2S
MSO(Str)I MSO on finite strings
• predicates a1(..), . . . , am(..) for symbols at positionsI models are of the form (w , ρ)
• w — a finite string of length n• ρ — assignment of variables to subsets of {0, . . . , n − 1}
Example (Σ = {a,b})ϕ(X ,Y ) ≡ Sing(X ) ∧ b(X ) ∧ 0 ∈ Y ∧ a(Y ) ∧
∀Z .(Z ⊆ Y ∧ Sing(Z )
)=⇒
(σ(Z ) ⊆ Y ⊕ σ(Z ) ⊆ X
)Models of ϕ(X ,Y ): (b, {X 7→ {0},Y 7→ ∅}) , (ab, {X 7→ {1},Y 7→ {0}}) ,
(aab, {X 7→ {2},Y 7→ {0,1}}), . . .
I can be translated to WS1S: symbol ai → variable Xai
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 6 / 26
WS1S — Decision ProcedureFinite subsets of N can be encoded as finite binary strings:
I {1,4,5} →
Index: 012345Membership: xXxxXX
Encoding: 010011,
0123456xXxxXXx0100110
, or01234567xXxxXXxx01001100
. . .
Models of ϕ 7→ words over ΣnI each variable of ϕ→ one trackI e.g. X1:
X2:
[01
]∈ Σ2
Example
{X1 7→ ∅,X2 7→ {0,3}}enc99K X1:
X2:
0[01
] 1[00
] 2[00
] 3[01
] 4[00
]· · ·
Automaton Aϕ
M |= ϕ ⇐⇒ enc(M) ∈ L(Aϕ)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 7 / 26
WS1S — Decision ProcedureFinite subsets of N can be encoded as finite binary strings:
I {1,4,5} →Index: 012345
Membership: xXxxXX
Encoding: 010011,
0123456xXxxXXx0100110
, or01234567xXxxXXxx01001100
. . .
Models of ϕ 7→ words over ΣnI each variable of ϕ→ one trackI e.g. X1:
X2:
[01
]∈ Σ2
Example
{X1 7→ ∅,X2 7→ {0,3}}enc99K X1:
X2:
0[01
] 1[00
] 2[00
] 3[01
] 4[00
]· · ·
Automaton Aϕ
M |= ϕ ⇐⇒ enc(M) ∈ L(Aϕ)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 7 / 26
WS1S — Decision ProcedureFinite subsets of N can be encoded as finite binary strings:
I {1,4,5} →Index: 012345Membership: xXxxXX
Encoding: 010011,
0123456xXxxXXx0100110
, or01234567xXxxXXxx01001100
. . .
Models of ϕ 7→ words over ΣnI each variable of ϕ→ one trackI e.g. X1:
X2:
[01
]∈ Σ2
Example
{X1 7→ ∅,X2 7→ {0,3}}enc99K X1:
X2:
0[01
] 1[00
] 2[00
] 3[01
] 4[00
]· · ·
Automaton Aϕ
M |= ϕ ⇐⇒ enc(M) ∈ L(Aϕ)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 7 / 26
WS1S — Decision ProcedureFinite subsets of N can be encoded as finite binary strings:
I {1,4,5} →Index: 012345Membership: xXxxXX
Encoding: 010011
,0123456xXxxXXx0100110
, or01234567xXxxXXxx01001100
. . .
Models of ϕ 7→ words over ΣnI each variable of ϕ→ one trackI e.g. X1:
X2:
[01
]∈ Σ2
Example
{X1 7→ ∅,X2 7→ {0,3}}enc99K X1:
X2:
0[01
] 1[00
] 2[00
] 3[01
] 4[00
]· · ·
Automaton Aϕ
M |= ϕ ⇐⇒ enc(M) ∈ L(Aϕ)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 7 / 26
WS1S — Decision ProcedureFinite subsets of N can be encoded as finite binary strings:
I {1,4,5} →Index: 012345Membership: xXxxXX
Encoding: 010011,
0123456xXxxXXx0100110
, or01234567xXxxXXxx01001100
. . .
Models of ϕ 7→ words over ΣnI each variable of ϕ→ one trackI e.g. X1:
X2:
[01
]∈ Σ2
Example
{X1 7→ ∅,X2 7→ {0,3}}enc99K X1:
X2:
0[01
] 1[00
] 2[00
] 3[01
] 4[00
]· · ·
Automaton Aϕ
M |= ϕ ⇐⇒ enc(M) ∈ L(Aϕ)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 7 / 26
WS1S — Decision ProcedureFinite subsets of N can be encoded as finite binary strings:
I {1,4,5} →Index: 012345Membership: xXxxXX
Encoding: 010011,
0123456xXxxXXx0100110
, or01234567xXxxXXxx01001100
. . .
Models of ϕ 7→ words over ΣnI each variable of ϕ→ one trackI e.g. X1:
X2:
[01
]∈ Σ2
Example
{X1 7→ ∅,X2 7→ {0,3}}enc99K X1:
X2:
0[01
] 1[00
] 2[00
] 3[01
] 4[00
]· · ·
Automaton Aϕ
M |= ϕ ⇐⇒ enc(M) ∈ L(Aϕ)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 7 / 26
WS1S — Decision ProcedureFinite subsets of N can be encoded as finite binary strings:
I {1,4,5} →Index: 012345Membership: xXxxXX
Encoding: 010011,
0123456xXxxXXx0100110
, or01234567xXxxXXxx01001100
. . .
Models of ϕ 7→ words over ΣnI each variable of ϕ→ one trackI e.g. X1:
X2:
[01
]∈ Σ2
Example
{X1 7→ ∅,X2 7→ {0,3}}enc99K X1:
X2:
0[01
] 1[00
] 2[00
] 3[01
]
4[00
]· · ·
Automaton Aϕ
M |= ϕ ⇐⇒ enc(M) ∈ L(Aϕ)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 7 / 26
WS1S — Decision ProcedureFinite subsets of N can be encoded as finite binary strings:
I {1,4,5} →Index: 012345Membership: xXxxXX
Encoding: 010011,
0123456xXxxXXx0100110
, or01234567xXxxXXxx01001100
. . .
Models of ϕ 7→ words over ΣnI each variable of ϕ→ one trackI e.g. X1:
X2:
[01
]∈ Σ2
Example
{X1 7→ ∅,X2 7→ {0,3}}enc99K X1:
X2:
0[01
] 1[00
] 2[00
] 3[01
] 4[00
]· · ·
Automaton Aϕ
M |= ϕ ⇐⇒ enc(M) ∈ L(Aϕ)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 7 / 26
WS1S — Decision ProcedureFinite subsets of N can be encoded as finite binary strings:
I {1,4,5} →Index: 012345Membership: xXxxXX
Encoding: 010011,
0123456xXxxXXx0100110
, or01234567xXxxXXxx01001100
. . .
Models of ϕ 7→ words over ΣnI each variable of ϕ→ one trackI e.g. X1:
X2:
[01
]∈ Σ2
Example
{X1 7→ ∅,X2 7→ {0,3}}enc99K X1:
X2:
0[01
] 1[00
] 2[00
] 3[01
] 4[00
]· · ·
Automaton Aϕ
M |= ϕ ⇐⇒ enc(M) ∈ L(Aϕ)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 7 / 26
WS1S — Decision Procedure
Construction of Aϕ is inductiveterm t : atomic automaton At
Example (X = σ(Y ))
0 1 2
X:Y:
[00
]X:Y:
[01
]X:Y:
[10
] X:Y:
[00
]
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 8 / 26
WS1S — Decision Procedure
logical connectives: automata operations
Example
¬(X ⊆ Y ) ∧ ∃Z .Sing(Z )∨ ∃W .W = σ(Z )
A1
project W
A2 ∪ A4
A2
project Z
A6 ∩ A7
A3
complementA6
A7
A4
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 9 / 26
WS1S — Decision Procedure
logical connectives: automata operations
Example
¬(X ⊆ Y ) ∧ ∃Z .Sing(Z )∨ ∃W .W = σ(Z )
A1
project W
A2 ∪ A4
A2
project Z
A6 ∩ A7
A3
complementA6
A7
A4
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 9 / 26
WS1S — Decision Procedure
logical connectives: automata operations
Example
¬(X ⊆ Y ) ∧ ∃Z .Sing(Z )∨ ∃W .W = σ(Z )
A1
project W
A2 ∪ A4
A2
project Z
A6 ∩ A7
A3
complementA6
A7
A4
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 9 / 26
WS1S — Decision Procedure
logical connectives: automata operations
Example
¬(X ⊆ Y ) ∧ ∃Z .Sing(Z )∨ ∃W .W = σ(Z )
A1
project W
A2 ∪ A4
A2
project Z
A6 ∩ A7
A3
complementA6
A7
A4
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 9 / 26
WS1S — Decision Procedure
logical connectives: automata operations
Example
¬(X ⊆ Y ) ∧ ∃Z .Sing(Z )∨ ∃W .W = σ(Z )
A1
project W
A2 ∪ A4
A2
project Z
A6 ∩ A7
A3
complementA6
A7
A4
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 9 / 26
WS1S — Decision Procedure
logical connectives: automata operations
Example
¬(X ⊆ Y ) ∧ ∃Z .Sing(Z )∨ ∃W .W = σ(Z )
A1
project W
A2 ∪ A4
A2
project Z
A6 ∩ A7
A3
complementA6
A7
A4
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 9 / 26
WS1S — Decision Procedure
logical connectives: automata operations
Example
¬(X ⊆ Y ) ∧ ∃Z .Sing(Z )∨ ∃W .W = σ(Z )
A1
project W
A2 ∪ A4
A2
project Z
A6 ∩ A7
A3
complementA6
A7
A4
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 9 / 26
WS1S — Decision Procedure
Projectionremove a track from all symbols in transitions
BUT!! afterwards, not all encodings of a model would be acceptedI an issue when combined with negation
→ need to saturate final states
Example
1 2 3
X:Y:
[01
]X:Y:
[00
]X:Y:
[10
] X:Y:
[00
]
AX=σ(Y )
1 2 3
X:Y:
[01
]X:Y:
[00
]X:Y:
[10
] X:Y:
[00
]
→ Projection
1 2 3Y: [1]
Y: [0]
Y: [0]
Y: [0]
→ Adjust statesto accept encodings:
1, 01, 001, . . .
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 10 / 26
WS1S — Decision Procedure
Projectionremove a track from all symbols in transitions
BUT!! afterwards, not all encodings of a model would be acceptedI an issue when combined with negation
→ need to saturate final states
Example
1 2 3
X:Y:
[01
]X:Y:
[00
]X:Y:
[10
] X:Y:
[00
]
AX=σ(Y )
1 2 3
X:Y:
[01
]X:Y:
[00
]X:Y:
[10
] X:Y:
[00
]
→ Projection
1 2 3Y: [1]
Y: [0]
Y: [0]
Y: [0]
→ Adjust statesto accept encodings:
1, 01, 001, . . .
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 10 / 26
WS1S — Decision Procedure
Projectionremove a track from all symbols in transitions
BUT!! afterwards, not all encodings of a model would be acceptedI an issue when combined with negation
→ need to saturate final states
Example
1 2 3
X:Y:
[01
]X:Y:
[00
]X:Y:
[10
] X:Y:
[00
]
AX=σ(Y )
1 2 3
X:Y:
[01
]X:Y:
[00
]X:Y:
[10
] X:Y:
[00
]
→ Projection
1 2 3Y: [1]
Y: [0]
Y: [0]
Y: [0]
→ Adjust statesto accept encodings:
1, 01, 001, . . .
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 10 / 26
WS1S — Decision Procedure
Projectionremove a track from all symbols in transitionsBUT!! afterwards, not all encodings of a model would be accepted
I an issue when combined with negation
→ need to saturate final states
Example
1 2 3
X:Y:
[01
]X:Y:
[00
]X:Y:
[10
] X:Y:
[00
]
AX=σ(Y )
1 2 3
X:Y:
[01
]X:Y:
[00
]X:Y:
[10
] X:Y:
[00
]
→ Projection
1 2 3Y: [1]
Y: [0]
Y: [0]
Y: [0]
→ Adjust statesto accept encodings:
1, 01, 001, . . .
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 10 / 26
WS1S — Decision Procedure
Projectionremove a track from all symbols in transitionsBUT!! afterwards, not all encodings of a model would be accepted
I an issue when combined with negation
→ need to saturate final states
Example
1 2 3
X:Y:
[01
]X:Y:
[00
]X:Y:
[10
] X:Y:
[00
]
AX=σ(Y )
1 2 3
X:Y:
[01
]X:Y:
[00
]X:Y:
[10
] X:Y:
[00
]
→ Projection
1 2 3Y: [1]
Y: [0]
Y: [0]
Y: [0]
→ Adjust statesto accept encodings:
1, 01, 001, . . .
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 10 / 26
MONA
MONA:uses DFAs→ after every projection determinizes
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 11 / 26
Deciding WS1Swith NFAs
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 12 / 26
Deciding WS1S with NFAs
FormulaeI in PNFI matrix in NNFI ground
Example
ϕ = ¬∃Xm ¬ . . .¬∃X2 ¬∃X1 : ϕ0(X)︸ ︷︷ ︸NNF
Decision problem:I validity
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 13 / 26
Deciding WS1S with NFAsConstruction of Aϕ:
based on number of alternations m
ϕ = ¬∃Xm ¬. . .¬∃X2 ¬∃X1 : ϕ0(X)︸ ︷︷ ︸ϕ1
. ..︸ ︷︷ ︸
ϕm
ϕ0 — composition of atomic automata: A = (Q0,∆0, I0,F0)
ϕi+1 — obtained from ϕi by projection and complementationI projection — remove track from Σ and saturate final statesI complementation — determinise and swap final states
Hierarchical family of automata
Aϕm = (22···2
Q0︸ ︷︷ ︸m
,∆m, Im,Fm)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 14 / 26
Deciding WS1S with NFAsConstruction of Aϕ:
based on number of alternations m
ϕ = ¬∃Xm ¬. . .¬∃X2 ¬∃X1 : ϕ0(X)︸ ︷︷ ︸ϕ1
. ..︸ ︷︷ ︸
ϕm
ϕ0 — composition of atomic automata: A = (Q0,∆0, I0,F0)
ϕi+1 — obtained from ϕi by projection and complementationI projection — remove track from Σ and saturate final statesI complementation — determinise and swap final states
Hierarchical family of automata
Aϕm = (22···2
Q0︸ ︷︷ ︸m
,∆m, Im,Fm)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 14 / 26
Deciding WS1S with NFAsConstruction of Aϕ:
based on number of alternations m
ϕ = ¬∃Xm ¬. . .¬∃X2 ¬∃X1 : ϕ0(X)︸ ︷︷ ︸ϕ1
. ..︸ ︷︷ ︸
ϕm
ϕ0 — composition of atomic automata: A = (Q0,∆0, I0,F0)
ϕi+1 — obtained from ϕi by projection and complementation
I projection — remove track from Σ and saturate final statesI complementation — determinise and swap final states
Hierarchical family of automata
Aϕm = (22···2
Q0︸ ︷︷ ︸m
,∆m, Im,Fm)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 14 / 26
Deciding WS1S with NFAsConstruction of Aϕ:
based on number of alternations m
ϕ = ¬∃Xm ¬. . .¬∃X2 ¬∃X1 : ϕ0(X)︸ ︷︷ ︸ϕ1
. ..︸ ︷︷ ︸
ϕm
ϕ0 — composition of atomic automata: A = (Q0,∆0, I0,F0)
ϕi+1 — obtained from ϕi by projection and complementationI projection — remove track from Σ and saturate final states
I complementation — determinise and swap final states
Hierarchical family of automata
Aϕm = (22···2
Q0︸ ︷︷ ︸m
,∆m, Im,Fm)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 14 / 26
Deciding WS1S with NFAsConstruction of Aϕ:
based on number of alternations m
ϕ = ¬∃Xm ¬. . .¬∃X2 ¬∃X1 : ϕ0(X)︸ ︷︷ ︸ϕ1
. ..︸ ︷︷ ︸
ϕm
ϕ0 — composition of atomic automata: A = (Q0,∆0, I0,F0)
ϕi+1 — obtained from ϕi by projection and complementationI projection — remove track from Σ and saturate final statesI complementation — determinise and swap final states
Hierarchical family of automata
Aϕm = (22···2
Q0︸ ︷︷ ︸m
,∆m, Im,Fm)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 14 / 26
Deciding WS1S with NFAsConstruction of Aϕ:
based on number of alternations m
ϕ = ¬∃Xm ¬. . .¬∃X2 ¬∃X1 : ϕ0(X)︸ ︷︷ ︸ϕ1
. ..︸ ︷︷ ︸
ϕm
ϕ0 — composition of atomic automata: A = (Q0,∆0, I0,F0)
ϕi+1 — obtained from ϕi by projection and complementationI projection — remove track from Σ and saturate final statesI complementation — determinise and swap final states
Hierarchical family of automata
Aϕm = (22···2
Q0︸ ︷︷ ︸m
,∆m, Im,Fm)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 14 / 26
Deciding WS1S with NFAs
For ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Why?I each variable→ one trackI no variables→ no tracksI if a final state is reachable, saturation after the last projection
(∃Xm) must have made some initial state final too
Example (ϕ ≡ ∃X . X = σ(Y ))
1 2 3Y: [1]
Y: [0]
Y: [0]
Y: [0]
Aϕ
1 2 3
→ Projection
1 2 3⊥
⊥
⊥
⊥
A∃Y .ϕ
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 15 / 26
Deciding WS1S with NFAs
For ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Why?I each variable→ one trackI no variables→ no tracksI if a final state is reachable, saturation after the last projection
(∃Xm) must have made some initial state final too
Example (ϕ ≡ ∃X . X = σ(Y ))
1 2 3Y: [1]
Y: [0]
Y: [0]
Y: [0]
Aϕ
1 2 3Y: [1]
Y: [0]
Y: [0]
Y: [0]
→ Projection
1 2 3⊥
⊥
⊥
⊥
A∃Y .ϕ
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 15 / 26
Deciding WS1S with NFAs
For ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Why?I each variable→ one trackI no variables→ no tracksI if a final state is reachable, saturation after the last projection
(∃Xm) must have made some initial state final too
Example (ϕ ≡ ∃X . X = σ(Y ))
1 2 3Y: [1]
Y: [0]
Y: [0]
Y: [0]
Aϕ
1 2 3Y: [1]
Y: [0]
Y: [0]
Y: [0]
→ Projection
1 2 3⊥
⊥
⊥
⊥
A∃Y .ϕ
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 15 / 26
Deciding WS1S with NFAs
For ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Why?I each variable→ one trackI no variables→ no tracksI if a final state is reachable, saturation after the last projection
(∃Xm) must have made some initial state final too
Example (ϕ ≡ ∃X . X = σ(Y ))
1 2 3Y: [1]
Y: [0]
Y: [0]
Y: [0]
Aϕ
1 2 3Y: [1]
Y: [0]
Y: [0]
Y: [0]
→ Projection
1 2 3⊥
⊥
⊥
⊥
A∃Y .ϕ
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 15 / 26
Deciding WS1S with NFAs
For ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Why?I each variable→ one trackI no variables→ no tracksI if a final state is reachable, saturation after the last projection
(∃Xm) must have made some initial state final too
Example (ϕ ≡ ∃X . X = σ(Y ))
1 2 3Y: [1]
Y: [0]
Y: [0]
Y: [0]
Aϕ
1 2 3Y: [1]
Y: [0]
Y: [0]
Y: [0]
→ Projection
1 2 3⊥
⊥
⊥
⊥
A∃Y .ϕ
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 15 / 26
Deciding WS1S with NFAsFor ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Constructing the whole automaton for ϕm is unnecessary!
I construct initial states ImI construct final states FmI check whether they intersect
Initial states ImI0 — givenI1 = {I0}I2 = {I1} = {{I0}}
...
Im = {Im−1} = {{. . . {︸ ︷︷ ︸m
I0} . . .}}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 16 / 26
Deciding WS1S with NFAsFor ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Constructing the whole automaton for ϕm is unnecessary!I construct initial states Im
I construct final states FmI check whether they intersect
Initial states ImI0 — givenI1 = {I0}I2 = {I1} = {{I0}}
...
Im = {Im−1} = {{. . . {︸ ︷︷ ︸m
I0} . . .}}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 16 / 26
Deciding WS1S with NFAsFor ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Constructing the whole automaton for ϕm is unnecessary!I construct initial states ImI construct final states Fm
I check whether they intersect
Initial states ImI0 — givenI1 = {I0}I2 = {I1} = {{I0}}
...
Im = {Im−1} = {{. . . {︸ ︷︷ ︸m
I0} . . .}}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 16 / 26
Deciding WS1S with NFAsFor ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Constructing the whole automaton for ϕm is unnecessary!I construct initial states ImI construct final states FmI check whether they intersect
Initial states ImI0 — givenI1 = {I0}I2 = {I1} = {{I0}}
...
Im = {Im−1} = {{. . . {︸ ︷︷ ︸m
I0} . . .}}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 16 / 26
Deciding WS1S with NFAsFor ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Constructing the whole automaton for ϕm is unnecessary!I construct initial states ImI construct final states FmI check whether they intersect
Initial states Im
I0 — givenI1 = {I0}I2 = {I1} = {{I0}}
...
Im = {Im−1} = {{. . . {︸ ︷︷ ︸m
I0} . . .}}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 16 / 26
Deciding WS1S with NFAsFor ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Constructing the whole automaton for ϕm is unnecessary!I construct initial states ImI construct final states FmI check whether they intersect
Initial states ImI0 — given
I1 = {I0}I2 = {I1} = {{I0}}
...
Im = {Im−1} = {{. . . {︸ ︷︷ ︸m
I0} . . .}}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 16 / 26
Deciding WS1S with NFAsFor ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Constructing the whole automaton for ϕm is unnecessary!I construct initial states ImI construct final states FmI check whether they intersect
Initial states ImI0 — givenI1 = {I0}
I2 = {I1} = {{I0}}...
Im = {Im−1} = {{. . . {︸ ︷︷ ︸m
I0} . . .}}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 16 / 26
Deciding WS1S with NFAsFor ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Constructing the whole automaton for ϕm is unnecessary!I construct initial states ImI construct final states FmI check whether they intersect
Initial states ImI0 — givenI1 = {I0}I2 = {I1} = {{I0}}
...
Im = {Im−1} = {{. . . {︸ ︷︷ ︸m
I0} . . .}}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 16 / 26
Deciding WS1S with NFAsFor ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Constructing the whole automaton for ϕm is unnecessary!I construct initial states ImI construct final states FmI check whether they intersect
Initial states ImI0 — givenI1 = {I0}I2 = {I1} = {{I0}}
...
Im = {Im−1} = {{. . . {︸ ︷︷ ︸m
I0} . . .}}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 16 / 26
Deciding WS1S with NFAsFor ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Final states FmI more trickyI the source of NONELEMENTARYlivi¿?Ex%dity of our procedure
Final states Fm
F0 ⊆ Q0 — givenF1 ⊆ 2Q0 — take F0, project X1, saturate, complement
F2 ⊆ 22Q0 — take F1, project X2, saturate, complement...
Fm ⊆ 22···2
Q0︸ ︷︷ ︸m
— take Fm−1, project Xm, saturate, complement
not really efficient
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 17 / 26
Deciding WS1S with NFAsFor ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Final states FmI more trickyI the source of NONELEMENTARYlivi¿?Ex%dity of our procedure
Final states Fm
F0 ⊆ Q0 — givenF1 ⊆ 2Q0 — take F0, project X1, saturate, complement
F2 ⊆ 22Q0 — take F1, project X2, saturate, complement...
Fm ⊆ 22···2
Q0︸ ︷︷ ︸m
— take Fm−1, project Xm, saturate, complement
not really efficient
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 17 / 26
Deciding WS1S with NFAsFor ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Final states FmI more trickyI the source of NONELEMENTARYlivi¿?Ex%dity of our procedure
Final states Fm
F0 ⊆ Q0 — given
F1 ⊆ 2Q0 — take F0, project X1, saturate, complement
F2 ⊆ 22Q0 — take F1, project X2, saturate, complement...
Fm ⊆ 22···2
Q0︸ ︷︷ ︸m
— take Fm−1, project Xm, saturate, complement
not really efficient
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 17 / 26
Deciding WS1S with NFAsFor ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Final states FmI more trickyI the source of NONELEMENTARYlivi¿?Ex%dity of our procedure
Final states Fm
F0 ⊆ Q0 — givenF1 ⊆ 2Q0 — take F0, project X1, saturate, complement
F2 ⊆ 22Q0 — take F1, project X2, saturate, complement...
Fm ⊆ 22···2
Q0︸ ︷︷ ︸m
— take Fm−1, project Xm, saturate, complement
not really efficient
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 17 / 26
Deciding WS1S with NFAsFor ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Final states FmI more trickyI the source of NONELEMENTARYlivi¿?Ex%dity of our procedure
Final states Fm
F0 ⊆ Q0 — givenF1 ⊆ 2Q0 — take F0, project X1, saturate, complement
F2 ⊆ 22Q0 — take F1, project X2, saturate, complement
...
Fm ⊆ 22···2
Q0︸ ︷︷ ︸m
— take Fm−1, project Xm, saturate, complement
not really efficient
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 17 / 26
Deciding WS1S with NFAsFor ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Final states FmI more trickyI the source of NONELEMENTARYlivi¿?Ex%dity of our procedure
Final states Fm
F0 ⊆ Q0 — givenF1 ⊆ 2Q0 — take F0, project X1, saturate, complement
F2 ⊆ 22Q0 — take F1, project X2, saturate, complement...
Fm ⊆ 22···2
Q0︸ ︷︷ ︸m
— take Fm−1, project Xm, saturate, complement
not really efficient
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 17 / 26
Deciding WS1S with NFAsFor ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Final states FmI more trickyI the source of NONELEMENTARYlivi¿?Ex%dity of our procedure
Final states Fm
F0 ⊆ Q0 — givenF1 ⊆ 2Q0 — take F0, project X1, saturate, complement
F2 ⊆ 22Q0 — take F1, project X2, saturate, complement...
Fm ⊆ 22···2
Q0︸ ︷︷ ︸m
— take Fm−1, project Xm, saturate, complement
not really efficientT. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 17 / 26
Deciding WS1S with NFAsϕm = ¬∃Xm ¬ . . .¬∃X2 ¬∃X1 : ϕ0(X)
For ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Our contribution:
symbolic representation of FiI projection, saturation, and complementationI testing intersection non-emptinessI subsumption-based pruning
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 18 / 26
Deciding WS1S with NFAsϕm = ¬∃Xm ¬ . . .¬∃X2 ¬∃X1 : ϕ0(X)
For ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Our contribution:symbolic representation of Fi
I projection, saturation, and complementationI testing intersection non-emptinessI subsumption-based pruning
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 18 / 26
Deciding WS1S with NFAsϕm = ¬∃Xm ¬ . . .¬∃X2 ¬∃X1 : ϕ0(X)
For ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Our contribution:symbolic representation of Fi
I projection, saturation, and complementation
I testing intersection non-emptinessI subsumption-based pruning
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 18 / 26
Deciding WS1S with NFAsϕm = ¬∃Xm ¬ . . .¬∃X2 ¬∃X1 : ϕ0(X)
For ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Our contribution:symbolic representation of Fi
I projection, saturation, and complementationI testing intersection non-emptiness
I subsumption-based pruning
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 18 / 26
Deciding WS1S with NFAsϕm = ¬∃Xm ¬ . . .¬∃X2 ¬∃X1 : ϕ0(X)
For ground formulae
|= ϕm iff Im ∩ Fm 6= ∅
Our contribution:symbolic representation of Fi
I projection, saturation, and complementationI testing intersection non-emptinessI subsumption-based pruning
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 18 / 26
Deciding WS1S with NFAs
Example (¬∃X .ϕ)Aϕ0
I Q0 = {0,1,2,3}I F0 = {3}
0 1 2 3
X:Y:
[01
]X:Y:
[11
]X:Y:
[10
]
After quantification:I F∃
0 = {2,3}I N∃
0 = Q0 \ F∃0 = {0,1} (non-final states)
After negation (determinisation + complement):I F1 = {∅, {0}, {1}, {0,1}}
= ↓ {{0, 1}} (symbolic representation)
I N1 = {{2}, {3}, {2,0}, {3,0}, . . . {2,3,0}, {2,3,1}, . . . {0,1,2,3}}
= ↑ {{2}, {3}} (symbolic representation)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 19 / 26
Deciding WS1S with NFAs
Example (¬∃X .ϕ)Aϕ0
I Q0 = {0,1,2,3}I F0 = {3}
0 1 2 3
X:Y:
[01
]X:Y:
[11
]X:Y:
[10
]
After quantification:I F∃
0 = {2,3}I N∃
0 = Q0 \ F∃0 = {0,1} (non-final states)
After negation (determinisation + complement):I F1 = {∅, {0}, {1}, {0,1}}
= ↓ {{0, 1}} (symbolic representation)
I N1 = {{2}, {3}, {2,0}, {3,0}, . . . {2,3,0}, {2,3,1}, . . . {0,1,2,3}}
= ↑ {{2}, {3}} (symbolic representation)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 19 / 26
Deciding WS1S with NFAs
Example (¬∃X .ϕ)Aϕ0
I Q0 = {0,1,2,3}I F0 = {3}
0 1 2 3
X:Y:
[01
]X:Y:
[11
]X:Y:
[10
]
After quantification:I F∃
0 = {2,3}I N∃
0 = Q0 \ F∃0 = {0,1} (non-final states)
After negation (determinisation + complement):I F1 = {∅, {0}, {1}, {0,1}}
= ↓ {{0, 1}} (symbolic representation)
I N1 = {{2}, {3}, {2,0}, {3,0}, . . . {2,3,0}, {2,3,1}, . . . {0,1,2,3}}
= ↑ {{2}, {3}} (symbolic representation)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 19 / 26
Deciding WS1S with NFAs
Example (¬∃X .ϕ)Aϕ0
I Q0 = {0,1,2,3}I F0 = {3}
0 1 2 3
X:Y:
[01
]X:Y:
[11
]X:Y:
[10
]
After quantification:I F∃
0 = {2,3}I N∃
0 = Q0 \ F∃0 = {0,1} (non-final states)
After negation (determinisation + complement):I F1 = {∅, {0}, {1}, {0,1}}
= ↓ {{0, 1}} (symbolic representation)
I N1 = {{2}, {3}, {2,0}, {3,0}, . . . {2,3,0}, {2,3,1}, . . . {0,1,2,3}}
= ↑ {{2}, {3}} (symbolic representation)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 19 / 26
Deciding WS1S with NFAs
Example (¬∃X .ϕ)Aϕ0
I Q0 = {0,1,2,3}I F0 = {3}
0 1 2 3
X:Y:
[01
]X:Y:
[11
]X:Y:
[10
]
After quantification:I F∃
0 = {2,3}I N∃
0 = Q0 \ F∃0 = {0,1} (non-final states)
After negation (determinisation + complement):I F1 = {∅, {0}, {1}, {0,1}}
= ↓ {{0, 1}} (symbolic representation)I N1 = {{2}, {3}, {2,0}, {3,0}, . . . {2,3,0}, {2,3,1}, . . . {0,1,2,3}}
= ↑ {{2}, {3}} (symbolic representation)
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 19 / 26
Deciding WS1S with NFAsComputing Fm
ϕm = ¬∃Xm ¬ . . .¬∃X2 ¬∃X1 : ϕ0(X)
1 Start with F0
2 Saturate final states after projection:
F∃0 = µZ . F0 ∪ pre0(Z )
3 Determinise + complement final states:
N1 =↑{F∃0 }
4 Saturate final states after projection:
N∃1 = νZ . N1 ∩ cpre0(Z )
I cpre0(Z ): states that can over 0 go only into Z
5 Determinise + complement final states:
F2 =↓{N∃1}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 20 / 26
Deciding WS1S with NFAsComputing Fm
ϕm = ¬∃Xm ¬ . . .¬∃X2 ¬∃X1 : ϕ0(X)
1 Start with F0
2 Saturate final states after projection:
F∃0 = µZ . F0 ∪ pre0(Z )
3 Determinise + complement final states:
N1 =↑{F∃0 }
4 Saturate final states after projection:
N∃1 = νZ . N1 ∩ cpre0(Z )
I cpre0(Z ): states that can over 0 go only into Z
5 Determinise + complement final states:
F2 =↓{N∃1}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 20 / 26
Deciding WS1S with NFAsComputing Fm
ϕm = ¬∃Xm ¬ . . .¬∃X2 ¬∃X1 : ϕ0(X)
1 Start with F0
2 Saturate final states after projection:
F∃0 = µZ . F0 ∪ pre0(Z )
3 Determinise + complement final states:
N1 =↑{F∃0 }
4 Saturate final states after projection:
N∃1 = νZ . N1 ∩ cpre0(Z )
I cpre0(Z ): states that can over 0 go only into Z
5 Determinise + complement final states:
F2 =↓{N∃1}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 20 / 26
Deciding WS1S with NFAsComputing Fm
ϕm = ¬∃Xm ¬ . . .¬∃X2 ¬∃X1 : ϕ0(X)
1 Start with F0
2 Saturate final states after projection:
F∃0 = µZ . F0 ∪ pre0(Z )
3 Determinise + complement final states:
N1 =↑{F∃0 }
4 Saturate final states after projection:
N∃1 = νZ . N1 ∩ cpre0(Z )
I cpre0(Z ): states that can over 0 go only into Z
5 Determinise + complement final states:
F2 =↓{N∃1}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 20 / 26
Deciding WS1S with NFAsComputing Fm
ϕm = ¬∃Xm ¬ . . .¬∃X2 ¬∃X1 : ϕ0(X)
1 Start with F0
2 Saturate final states after projection:
F∃0 = µZ . F0 ∪ pre0(Z )
3 Determinise + complement final states:
N1 =↑{F∃0 }
4 Saturate final states after projection:
N∃1 = νZ . N1 ∩ cpre0(Z )
I cpre0(Z ): states that can over 0 go only into Z
5 Determinise + complement final states:
F2 =↓{N∃1}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 20 / 26
Deciding WS1S with NFAsComputing Fm
ϕm = ¬∃Xm ¬ . . .¬∃X2 ¬∃X1 : ϕ0(X)
1 Start with F0
2 Saturate final states after projection:
F∃0 = µZ . F0 ∪ pre0(Z )
3 Determinise + complement final states:
N1 =↑{F∃0 }
4 Saturate final states after projection:
N∃1 = νZ . N1 ∩ cpre0(Z )
I cpre0(Z ): states that can over 0 go only into Z
5 Determinise + complement final states:
F2 =↓{N∃1}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 20 / 26
Deciding WS1S with NFAs
Computing Fm
ϕm = ¬∃Xm ¬ . . .¬∃X2 ¬∃X1 : ϕ0(X)
Keep alternating as follows:
Fi+1 = ↓{νZ . Ni ∩ cpre0(Z )}
Ni+1 = ↑{µZ . Fi ∪ pre0(Z )}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 21 / 26
Deciding WS1S with NFAsComputing cpre0/pre0
Lemmacpre0(↑{Q}) =↑
∐{pre0(Q)}
∐breaks the predecessors into new generators that cover the Q
Lemma (dual)pre0(↓{Q}) =↓{cpre0(Q)}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 22 / 26
Deciding WS1S with NFAsComputing cpre0/pre0
Lemmacpre0(↑{Q}) =↑
∐{pre0(Q)}
CPRE
pre
∐breaks the predecessors into new generators that cover the Q
Lemma (dual)pre0(↓{Q}) =↓{cpre0(Q)}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 22 / 26
Deciding WS1S with NFAsComputing cpre0/pre0
Lemmacpre0(↑{Q}) =↑
∐{pre0(Q)}
CPRE
pre
∐breaks the predecessors into new generators that cover the Q
Lemma (dual)pre0(↓{Q}) =↓{cpre0(Q)}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 22 / 26
Deciding WS1S with NFAsComputing cpre0/pre0
Lemmacpre0(↑{Q}) =↑
∐{pre0(Q)}
CPRE
∐breaks the predecessors into new generators that cover the Q
Lemma (dual)pre0(↓{Q}) =↓{cpre0(Q)}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 22 / 26
Deciding WS1S with NFAsComputing cpre0/pre0
Lemmacpre0(↑{Q}) =↑
∐{pre0(Q)}
CPRE∐breaks the predecessors into new generators that cover the Q
Lemma (dual)pre0(↓{Q}) =↓{cpre0(Q)}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 22 / 26
Deciding WS1S with NFAsComputing cpre0/pre0
Lemmacpre0(↑{Q}) =↑
∐{pre0(Q)}
CPRE∐breaks the predecessors into new generators that cover the Q
Lemma (dual)pre0(↓{Q}) =↓{cpre0(Q)}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 22 / 26
Deciding WS1S with NFAsComputing cpre0/pre0
Lemmacpre0(↑{Q}) =↑
∐{pre0(Q)}
U
CPRE∐breaks the predecessors into new generators that cover the Q
Lemma (dual)pre0(↓{Q}) =↓{cpre0(Q)}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 22 / 26
Deciding WS1S with NFAsComputing cpre0/pre0
Lemmacpre0(↑{Q}) =↑
∐{pre0(Q)}
UU U
CPRE∐breaks the predecessors into new generators that cover the Q
Lemma (dual)pre0(↓{Q}) =↓{cpre0(Q)}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 22 / 26
Deciding WS1S with NFAsComputing cpre0/pre0
Lemmacpre0(↑{Q}) =↑
∐{pre0(Q)}
UU U
CPRE∐breaks the predecessors into new generators that cover the Q
Lemma (dual)pre0(↓{Q}) =↓{cpre0(Q)}
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 22 / 26
Deciding WS1S with NFAsInner structure of Fm
F0
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 23 / 26
Deciding WS1S with NFAsInner structure of Fm
F0...E
UU
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 23 / 26
Deciding WS1S with NFAsInner structure of Fm
F0
N1
E
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 23 / 26
Deciding WS1S with NFAsInner structure of Fm
F0
N1...
E
EUU
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 23 / 26
Deciding WS1S with NFAsInner structure of Fm
F0
N1
F2
E
E
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 23 / 26
Deciding WS1S with NFAsInner structure of Fm
F0
N1
F2... E
E
E
UU
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 23 / 26
Deciding WS1S with NFAsState Space Reduction
Symbolic representation of Fi using generators
I which are composed of generatorsI which are themselves composed of generators
Generators can be minimizedI subsumption-basedI similar idea to Antichains (NFA universality/language inclusion)I computed on the nested structure
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 24 / 26
Deciding WS1S with NFAsState Space Reduction
Symbolic representation of Fi using generatorsI which are composed of generators
I which are themselves composed of generators
Generators can be minimizedI subsumption-basedI similar idea to Antichains (NFA universality/language inclusion)I computed on the nested structure
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 24 / 26
Deciding WS1S with NFAsState Space Reduction
Symbolic representation of Fi using generatorsI which are composed of generatorsI which are themselves composed of generators
Generators can be minimizedI subsumption-basedI similar idea to Antichains (NFA universality/language inclusion)I computed on the nested structure
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 24 / 26
Deciding WS1S with NFAsState Space Reduction
Symbolic representation of Fi using generatorsI which are composed of generatorsI which are themselves composed of generators
Generators can be minimized
I subsumption-basedI similar idea to Antichains (NFA universality/language inclusion)I computed on the nested structure
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 24 / 26
Deciding WS1S with NFAsState Space Reduction
Symbolic representation of Fi using generatorsI which are composed of generatorsI which are themselves composed of generators
Generators can be minimizedI subsumption-basedI similar idea to Antichains (NFA universality/language inclusion)I computed on the nested structure
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 24 / 26
Experimental results
implemented in dWiNAcompared with MONA:
I on generated and real formulaeI in generic and ∃PNF form
MONA dWiNATime [s] Space [states] Time [s] Space [states]
real (STRAND) normal ∃PNF normal ∃PNF Prefix Prefixlist-reverse-after-loop 0.01 0.01 179 1 326 0.01 100list-reverse-in-loop 0.02 0.47 1 311 70 278 0.02 260bubblesort-else 0.01 0.45 1 285 12 071 0.01 14bubblesort-if-else 0.02 2.17 4 260 116 760 0.23 234bubblesort-if-if 0.12 5.29 8 390 233 372 1.14 28generated3 alternations - 0.57 - 60 924 0.01 504 alternations - 1.79 - 145 765 0.02 585 alternations - 4.98 - 349 314 0.02 706 alternations - TO - TO 0.47 90
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 25 / 26
Future Work
WSkS
Yet Another ApproachTM
I combination of automata and logic approachesI partial unwinding of ϕI lazy evaluation = early termination & continuations
preprocessingI anti-prenexingI smarter conversion to ∃PNF
many opportunities for various heuristics
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 26 / 26
Future Work
WSkS
Yet Another ApproachTM
I combination of automata and logic approachesI partial unwinding of ϕI lazy evaluation = early termination & continuations
preprocessingI anti-prenexingI smarter conversion to ∃PNF
many opportunities for various heuristics
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 26 / 26
Future Work
WSkS
Yet Another ApproachTM
I combination of automata and logic approachesI partial unwinding of ϕI lazy evaluation = early termination & continuations
preprocessingI anti-prenexingI smarter conversion to ∃PNF
many opportunities for various heuristics
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 26 / 26
Future Work
WSkS
Yet Another ApproachTM
I combination of automata and logic approachesI partial unwinding of ϕI lazy evaluation = early termination & continuations
preprocessingI anti-prenexingI smarter conversion to ∃PNF
many opportunities for various heuristics
T. Fiedor, L. Holık, O. Lengal, T. Vojnar Nested Antichains for WS1S Automata, Logic, Games’16 26 / 26