A Coalgebraic Decision Procedure for WS1S
Dmitriy Traytel
λ → ∀
=
Isabelle
β α
A Coalgebraic Decision Procedure for WS1S Dmitriy Traytel Isabelle - - PowerPoint PPT Presentation
A Coalgebraic Decision Procedure for WS1S Dmitriy Traytel Isabelle = A Coalgebraic Decision Procedure for WS1S Dmitriy Traytel Isabelle = Logic-Automaton Connection WS1S T | F | x X | x < y
Dmitriy Traytel
λ → ∀
=
Isabelle
β α
Dmitriy Traytel
λ → ∀
=
Isabelle
β α
WS1S T | F | x ∈ X | x < y | ϕ∨ψ | ¬ϕ | ∃x. ϕ | ∃X. ϕ finite
WS1S T | F | x ∈ X | x < y | ϕ∨ψ | ¬ϕ | FO x | ∃X. ϕ finite
WS1S T | F | x ∈ X | x < y | ϕ∨ψ | ¬ϕ | FO x | ∃X. ϕ finite ∀I. I ϕ ⇐ ⇒ I ψ?
WS1S T | F | x ∈ X | x < y | ϕ∨ψ | ¬ϕ | FO x | ∃X. ϕ finite ∀I. I ϕ ⇐ ⇒ I ψ? Finite Automata
Klarlund, Møller, et al. MONA
WS1S T | F | x ∈ X | x < y | ϕ∨ψ | ¬ϕ | FO x | ∃X. ϕ finite ∀I. I ϕ ⇐ ⇒ I ψ? Finite Automata
Fiedor et al., TACAS 2015 dWiNA, Klarlund, Møller, et al. MONA
Finite Reachability Games
Toss Ganzow & Kaiser, CSL 2010
WS1S ∀I. I ϕ ⇐ ⇒ I ψ? Regular Expressions L(α) = L(β)? ∀I. I ϕ ⇐ ⇒ enc I ∈ L(mkRE ϕ) Finite Automata
Fiedor et al., TACAS 2015 dWiNA, Klarlund, Møller, et al. MONA
Finite Reachability Games
Toss Ganzow & Kaiser, CSL 2010
λ → ∀
=
Isabelle
β α
WS1S ∀I. I ϕ ⇐ ⇒ I ψ?
Π-Extended Regular Expressions
L(α) = L(β)? ∀I. I ϕ ⇐ ⇒ enc I ∈ L(mkRE ϕ) Finite Automata
Fiedor et al., TACAS 2015 dWiNA, Klarlund, Møller, et al. MONA
Finite Reachability Games
Toss Ganzow & Kaiser, CSL 2010
λ → ∀
=
Isabelle
β α
WS1S ∀I. I ϕ ⇐ ⇒ I ψ?
Π-Extended Regular Expressions
L(α) = L(β)? ∀I. I ϕ ⇐ ⇒ enc I ∈ L(mkRE ϕ) Finite Automata
Fiedor et al., TACAS 2015 dWiNA, Klarlund, Møller, et al. MONA
Finite Reachability Games
Toss Ganzow & Kaiser, CSL 2010
λ → ∀
=
Isabelle
β α
a∗
ε+ a· a∗
a∗
ε+ a· a∗
Brzozowski derivative d: letter → regex → regex
L(da r) = {w | aw ∈ L(r)} ε· a∗ ∅+ε· a∗
da
a∗
ε+ a· a∗ ε· a∗ ∅+ε· a∗ ∅· a∗ ∅+∅· a∗
da db
a∗
ε+ a· a∗ ε· a∗ ∅+ε· a∗ ∅· a∗ +ε· a∗ ∅+∅· a∗ +ε· a∗ ∅· a∗ ∅+∅· a∗
da da db
a∗
ε+ a· a∗ ε· a∗ ∅+ε· a∗ ∅· a∗ +ε· a∗ ∅+∅· a∗ +ε· a∗ ∅· a∗ +∅· a∗ +ε· a∗ ∅+∅· a∗ +∅· a∗ +ε· a∗ ∅· a∗ ∅+∅· a∗
da da da db
a∗
ε+ a· a∗ ε· a∗ ∅+ε· a∗ ∅· a∗ +ε· a∗ ∅+∅· a∗ +ε· a∗ ∅· a∗ +∅· a∗ +ε· a∗ ∅+∅· a∗ +∅· a∗ +ε· a∗ ∅· a∗ ∅+∅· a∗
da da da ACI db
a∗
ε+ a· a∗ ε· a∗ ∅+ε· a∗ ∅· a∗ +ε· a∗ ∅+∅· a∗ +ε· a∗ ∅· a∗ +∅· a∗ +ε· a∗ ∅+∅· a∗ +∅· a∗ +ε· a∗ ∅· a∗ ∅+∅· a∗ ∅· a∗ +∅· a∗ ∅+∅· a∗ +∅· a∗ ∅· a∗ +∅· a∗ +∅· a∗ ∅+∅· a∗ +∅· a∗ +∅· a∗
da da da ACI db db db ACI ACI da db
?
∃X.x ∈ X ¬x < x ∃X.(T∨ F) ¬F ∃X.(T∨ F)∨(T∨ F) ¬F ∃X.(x ∈ X ∨ x ∈ X) ¬ x < x
d(1) d(1), d(0) ACI d(0) ACI
?
∃X.x ∈ X ¬x < x ∃X.(T∨ F) ¬F ∃X.(T∨ F)∨(T∨ F) ¬F ∃X.(x ∈ X ∨ x ∈ X) ¬ x < x
d(1) d(1), d(0) ACI d(0) ACI
Benefits
?
∃X.x ∈ X ¬x < x ∃X.(T∨ F) ¬F ∃X.(T∨ F)∨(T∨ F) ¬F ∃X.(x ∈ X ∨ x ∈ X) ¬ x < x
d(1) d(1), d(0) ACI d(0) ACI
Benefits
?
∃X.x ∈ X ¬x < x ∃X.(T∨ F) ¬F ∃X.(T∨ F)∨(T∨ F) ¬F ∃X.(x ∈ X ∨ x ∈ X) ¬ x < x
d(1) d(1), d(0) ACI d(0) ACI
Benefits
?
∃X.x ∈ X ¬x < x ∃X.(T∨ F) ¬F ∃X.(T∨ F)∨(T∨ F) ¬F ∃X.(x ∈ X ∨ x ∈ X) ¬ x < x
d(1) d(1), d(0) ACI d(0) ACI
Benefits
?
∃X.x ∈ X ¬x < x ∃X.(T∨ F) ¬F ∃X.(T∨ F)∨(T∨ F) ¬F ∃X.(x ∈ X ∨ x ∈ X) ¬ x < x
d(1) d(1), d(0) ACI d(0) ACI
Benefits
?
∃X.x ∈ X ¬x < x ∃X.(T∨ F) ¬F ∃X.(T∨ F)∨(T∨ F) ¬F ∃X.(x ∈ X ∨ x ∈ X) ¬ x < x
d(1) d(1), d(0) ACI d(0) ACI
Benefits
?
∃X.x ∈ X ¬x < x ∃X.(T∨ F) ¬F ∃X.(T∨ F)∨(T∨ F) ¬F ∃X.(x ∈ X ∨ x ∈ X) ¬ x < x
d(1) d(1), d(0) ACI d(0) ACI
Benefits
→ MonaCo (Pous & T., ongoing work)
I =
X → {1, 2, 3} Y → {0, 2} Z → {3}
I =
X → {1, 2, 3} Y → {0, 2} Z → {3} X 1 1 1 Y 1 1 Z 1 enc
I =
X → {1, 2, 3} Y → {0, 2} Z → {3} X 1 1 1 Y 1 1 Z 1 enc X 1 1 1 Y 1 Z 1 tail
I =
X → {1, 2, 3} Y → {0, 2} Z → {3} X 1 1 1 Y 1 1 Z 1 enc TAIL I =
X → {0, 1, 2} Y → {1} Z → {2} X 1 1 1 Y 1 Z 1 tail enc
I =
X → {1, 2, 3} Y → {0, 2} Z → {3} X 1 1 1 Y 1 1 Z 1 enc TAIL I =
X → {0, 1, 2} Y → {1} Z → {2} X 1 1 1 Y 1 Z 1 tail enc I ϕ ⇐
⇒ TAIL I d (HEAD I) ϕ
I =
X → {1, 2, 3} Y → {0, 2} Z → {3} X 1 1 1 Y 1 1 Z 1 enc TAIL I =
X → {0, 1, 2} Y → {1} Z → {2} X 1 1 1 Y 1 Z 1 tail enc I ϕ ⇐
⇒ TAIL I d
1
ϕ
Does x → {1,2,3} satisfy FO x?
Does x → {1,2,3} satisfy FO x? No, only singleton sets do
Does x → {1,2,3} satisfy FO x? No, only singleton sets do Yes, all non-empty sets do Minimum is the assigned value
Does x → {1,2,3} satisfy FO x? No, only singleton sets do Yes, all non-empty sets do Minimum is the assigned value
→ my Ph.D. thesis draft → here (also used in MONA)
d : letter → formula → formula
d : letter → formula → formula d v T
=
T d v F
=
F
d : letter → formula → formula d v T
=
T d v F
=
F d v (FO x)
=
if ¬v[x] T
d : letter → formula → formula d v T
=
T d v F
=
F d v (FO x)
=
if ¬v[x] T
d v (x ∈ X)
=
x ∈ X if ¬v[x] T if v[x]∧ v[X] F
d v (x < y)
=
x < y if ¬v[x]∧¬v[y] FO y if v[x]∧¬v[y] F
d : letter → formula → formula d v T
=
T d v F
=
F d v (FO x)
=
if ¬v[x] T
d v (x ∈ X)
=
x ∈ X if ¬v[x] T if v[x]∧ v[X] F
d v (x < y)
=
x < y if ¬v[x]∧¬v[y] FO y if v[x]∧¬v[y] F
d v (ϕ∨ψ)
=
d v ϕ∨ d v ψ d v (¬ϕ)
= ¬ d v ϕ
d : letter → formula → formula d v T
=
T d v F
=
F d v (FO x)
=
if ¬v[x] T
d v (x ∈ X)
=
x ∈ X if ¬v[x] T if v[x]∧ v[X] F
d v (x < y)
=
x < y if ¬v[x]∧¬v[y] FO y if v[x]∧¬v[y] F
d v (ϕ∨ψ)
=
d v ϕ∨ d v ψ d v (¬ϕ)
= ¬ d v ϕ
d v (∃X. ϕ)
= ∃X. (d (vX→1) ϕ∨ d (vX→0) ϕ)
ε : formula → bool
ε : formula → bool ε T =
1
ε F = ε (FO x) = ε (x ∈ X) = ε (x < y) = ε (ϕ∨ψ) = ε ϕ∨ε ψ ε (¬ϕ) = ¬ε ϕ ε (∃X. ϕ) = ε ϕ
ε : formula → bool ε T =
1
ε F = ε (FO x) = ε (x ∈ X) = ε (x < y) = ε (ϕ∨ψ) = ε ϕ∨ε ψ ε (¬ϕ) = ¬ε ϕ ε (∃X. ϕ) = ε ϕ
Any objections?
ε : formula → bool ε T =
1
ε F = ε (FO x) = ε (x ∈ X) = ε (x < y) = ε (ϕ∨ψ) = ε ϕ∨ε ψ ε (¬ϕ) = ¬ε ϕ ε (∃X. ϕ) = ε ϕ
Any objections? Yes, this decides M2L(Str), not WS1S.
ε : formula → bool ε T =
1
ε F = ε (FO x) = ε (x ∈ X) = ε (x < y) = ε (ϕ∨ψ) = ε ϕ∨ε ψ ε (¬ϕ) = ¬ε ϕ ε (∃X. ϕ) = ε ϕ
Any objections? Yes, this decides M2L(Str), not WS1S. Careful with trailing zeros!
ϕ
y x
ϕ
y x
x
[0] [1] [0] [0]
ϕ
y x
x
[0] [1] [0] [0]
[ ] [ ] [ ] [ ]
ϕ ε ϕ
y x
x
[0] [1] [0] [0]
[ ] [ ] [ ] [ ]
ϕ ε ϕ
y x
x
[0] [1] [0] [0]
[ ] [ ] [ ] [ ]
For WS1S: futurize formula before applying ε
ϕ ε ϕ
y x
x
[0] [1] [0] [0]
[ ] [ ] [ ] [ ]
For WS1S: futurize formula before applying ε futurize = derive from the right by
···
∗
under quantifiers
ϕ ε ϕ
y x
x
[0] [1] [0] [0]
[ ] [ ] [ ] [ ]
For WS1S: futurize formula before applying ε futurize = derive from the right by
···
∗
under quantifiers
→ paper
λ → ∀
=
Isabelle
β α
and
λ → ∀
=
Isabelle
β α
and
λ → ∀
=
Isabelle
β α
and
Dmitriy Traytel
λ → ∀
=
Isabelle
β α