Block Products for Algebras over Countable words and Applications to Logic
Saptarshi Sarkar, IIT Bombay Joint work with: Bharat Adsul, IIT Bombay & A.V. Sreejith, IIT Goa
LICS 2019
Block Products for Algebras over Countable words and Applications to - - PowerPoint PPT Presentation
Block Products for Algebras over Countable words and Applications to Logic Saptarshi Sarkar, IIT Bombay Joint work with: Bharat Adsul, IIT Bombay & A.V. Sreejith, IIT Goa LICS 2019 This talk is in the setting of Countable Linear Orderings
LICS 2019
∙ in the setting of Countable Linear Orderings ∙ about finding small objects
that combine to recognize FO or LTL languages
Words over countable linear orderings
Countable Linear Ordering - ( , ) Z Covntable set total osdes
<
Countable Linear Ordering - ( , ) Z Covntable set total osdes
Example 1 ({1, 2, 3, 4, 5}, < ) <
Countable Linear Ordering - ( , ) Z Covntable set total osdes
Example 1 ({1, 2, 3, 4, 5}, < ) Example 2 ω : (ℕ, < ) <
Countable Linear Ordering - ( , ) Z Covntable set total osdes
Example 1 ({1, 2, 3, 4, 5}, < ) Example 2 ω : (ℕ, < ) Example 3 ω* : (ℕ−, < ) <
Countable Linear Ordering - ( , ) Z Covntable set total osdes
Example 1 ({1, 2, 3, 4, 5}, < ) Example 2 ω : (ℕ, < ) Example 3 ω* : (ℕ−, < ) Example 4 α : ω + ω* < …
Countable Linear Ordering - ( , ) Z Covntable set total osdes
Example 1 ({1, 2, 3, 4, 5}, < ) Example 2 ω : (ℕ, < ) Example 3 ω* : (ℕ−, < ) Example 4 α : ω + ω* Example 5 η = (ℚ, < ) < …
countable word u : α → Σ covntable lineas
finite alphabet
countable word u : α → Σ covntable lineas
finite alphabet Examples
countable word u : α → Σ covntable lineas
finite alphabet Examples
a b c a b…
countable word u : α → Σ covntable lineas
finite alphabet Examples
a b c a b…
a
countable word u : α → Σ covntable lineas
finite alphabet Examples set of all countable words − Σ⊛
a b c a b…
a
ω words Finite Words Finite Monoids Schutzenberger Wilke Algebras Thomas Wilke Countable Finite ⋄ −Monoid Carton Countable Words Finite ⊛ −Monoid Colcombet McNaughton Bes Bedon et . al . Carton Puppis Scattered Words Bruyere 1960 1993 2007 2011 Finite ⊛ −Algebra
Monoid (S, ⋅ ) ⋅ : S* → S Associativity
Monoid (S, ⋅ ) ⋅ : S* → S Associativity ⊛ − Monoid (S, π) π : S⊛ → S Generalized Associativity
Monoid (S, ⋅ ) ⋅ : S* → S Associativity ⊛ − Monoid (S, π) π : S⊛ → S Generalized Associativity u π(u)
Monoid (S, ⋅ ) ⋅ : S* → S Associativity ⊛ − Monoid (S, π) π : S⊛ → S Generalized Associativity u ui = Πi∈αui π(u)
Monoid (S, ⋅ ) ⋅ : S* → S Associativity ⊛ − Monoid (S, π) π : S⊛ → S Generalized Associativity u ui π(Πi∈αui) = Πi∈αui
Monoid (S, ⋅ ) ⋅ : S* → S Associativity ⊛ − Monoid (S, π) π : S⊛ → S Generalized Associativity u ui π(ui) π(Πi∈αui) = Πi∈αui
Monoid (S, ⋅ ) ⋅ : S* → S Associativity ⊛ − Monoid (S, π) π : S⊛ → S Generalized Associativity u ui Πi∈απ(ui) π(ui) π(Πi∈αui) = Πi∈αui
Monoid (S, ⋅ ) ⋅ : S* → S Associativity ⊛ − Monoid (S, π) π : S⊛ → S Generalized Associativity u ui Πi∈απ(ui) π(ui) π(Πi∈αui) π(Πi∈απ(ui)) = Πi∈αui
Monoid (S, ⋅ ) ⋅ : S* → S Associativity ⊛ − Monoid (S, π) π : S⊛ → S Generalized Associativity u ui Πi∈απ(ui) π(ui) π(Πi∈αui) = π(Πi∈απ(ui)) = Πi∈αui
Monoid (S, ⋅ ) ⋅ : S* → S Associativity ⊛ − Monoid (S, π) π : S⊛ → S Generalized Associativity u ui Πi∈απ(ui) π(ui) π(Πi∈αui) = π(Πi∈απ(ui)) = Πi∈αui
Example 1 (Σ⊛, Π) stsing coocatenatioo
Example 1 ({0, 1}, π) U1 = 1 if u has no 0 if u has at least one 0 π(u) = Example 2 (Σ⊛, Π) stsing coocatenatioo
Example 1 ({0, 1}, π) U1 = 1 if u has no 0 if u has at least one 0 π(u) = Example 2 (Σ⊛, Π) stsing coocatenatioo Example 3 Sing = ({1, s, 0}, π) π(u) = 1 if u has no s or 0 if u has at least one 0
s if u has exactly one s and no 0
h : (S, π) → (T, π′) S⊛ S T⊛ T h(π(u)) = π′(¯ h(u)) where u ∈ S⊛
π h ¯ h π′
h : (S, π) → (T, π′) S⊛ S T⊛ T h(π(u)) = π′(¯ h(u)) where u ∈ S⊛
π h ¯ h π′
∙ Any morphism h : Σ⊛ → S is completely determined by h restricted to Σ (Σ⊛, Π) is a free ⊛ − monoid ∙ Conversely, any function h : Σ → S uniquely extends to a morphism
h : Σ⊛ → S L = h−1(X) mosphism language recognized by subset
h S
h : Σ⊛ → S L = h−1(X) Example h : {a, b}⊛ → U1 a ↦ 0 b ↦ 1 h−1(0) = {u|u contains letter a} mosphism language recognized by subset
h S
1 if u has no 0 if u has at least one 0 π(u) = U1 = ({0,1}, π)
h : Σ⊛ → S L = h−1(X) Example h : {a, b}⊛ → Sing a ↦ s b ↦ 1 h−1(s) = {u|u contains exactly one position labelled a} mosphism language recognized by subset
h S
1 if u has no 0 or s if u has a 0 or multiple s π(u) = s
Sing = ({1, s, 0}, π)
ϕ = a(x) | x < y | ¬ϕ | ϕ ∨ ϕ | ∃x ϕ | ∃X ϕ The following two statements are equivalent [CCP2011]: 1) A language of countable words is MSO logic definable 2) A language of countable words is recognized by some morphism to a finite ⊛ −Monoid
ϕ = a(x) | x < y | ¬ϕ | ϕ ∨ ϕ | ∃x ϕ | ∃X ϕ The following two statements are equivalent [CCP2011]: 1) A language of countable words is MSO logic definable 2) A language of countable words is recognized by some morphism to a finite ⊛ −Monoid MSO logic definability is decidable?
(S, π) no finite presentatioo
(S, π) (S, ⋅ , τ, τ*, κ) no finite presentatioo
(S, π) (S, ⋅ , τ, τ*, κ) ⋅ : S × S → S τ : S → S τ* : S → S κ : 𝒬(S)∖∅ → S a ⋅ b = π(ab) aτ = π(aω) aτ* = π(aω*) {a, b, c}κ = π({a, b, c}η) no finite presentatioo
(S, π) ≡ (S, ⋅ , τ, τ*, κ) ⋅ : S × S → S τ : S → S τ* : S → S κ : 𝒬(S)∖∅ → S a ⋅ b = π(ab) aτ = π(aω) aτ* = π(aω*) {a, b, c}κ = π({a, b, c}η) no finite presentatioo finite S
Example 1 Sing = ({1, s, 0}, π) π(u) = 1 if u has no s or 0 s if u has exactly one s and no 0
Example 1 Sing = ({1, s, 0}, π) Sing = ({1, s, 0}, ⋅ , τ, τ*, κ) s ⋅ s = 0 sτ = sτ* = 0 Pκ = { 1 if P = {1}
π(u) = 1 if u has no s or 0 s if u has exactly one s and no 0
Example 1 Sing = ({1, s, 0}, π) Sing = ({1, s, 0}, ⋅ , τ, τ*, κ) s ⋅ s = 0 sτ = sτ* = 0 Pκ = { 1 if P = {1}
Example 2 Ul
2 = ({1, [, (}, π)
π(u) = 1 if u has no s or 0 s if u has exactly one s and no 0
π(u) = 1 if u has no [ or ( [ if u has min position labelled [ (
Example 1 Sing = ({1, s, 0}, π) Sing = ({1, s, 0}, ⋅ , τ, τ*, κ) s ⋅ s = 0 sτ = sτ* = 0 Pκ = { 1 if P = {1}
Example 2 Ul
2 = ({1, [, (}, π)
Ul
2 = ({1, [, (}, ⋅ , τ, τ*, κ)
[τ* = (τ* = ( Pκ = { 1 if P = {1} (
π(u) = 1 if u has no s or 0 s if u has exactly one s and no 0
π(u) = 1 if u has no [ or ( [ if u has min position labelled [ (
(M, ⋅ ) (N, + ) M □ N
(M, ⋅ ) (N, + ) M □ N h : Σ → M □ N
a
u
… …
(M, ⋅ ) (N, + ) M □ N h : Σ → M □ N
a a
u h1 : Σ → M u
… … … …
(M, ⋅ ) (N, + ) M □ N h : Σ → M □ N
a a h1(u<x) , a , h1(u>x)
u h1 : Σ → M σ : Σ* → (M × Σ × M)* u u′ = σ(u) h1 h1
… … … … … …
(M, ⋅ ) (N, + ) M □ N h : Σ → M □ N
a a h1(u<x) , a , h1(u>x)
u h1 : Σ → M σ : Σ* → (M × Σ × M)* u h2 : M × Σ × M → N u′ = σ(u) h1 h1
… … … … … …
(M, ⋅ ) (N, + ) M □ N h : Σ → M □ N
a a h1(u<x) , a , h1(u>x)
u h1 : Σ → M σ : Σ* → (M × Σ × M)* u h2 : M × Σ × M → N u′ = σ(u) h1 h1
… … … … … …
h(u) is completely determined by h1(u) and h2(u′)
U1 = ({1,0}, ⋅ )
Σ = {a, b} L = {u | u contains exactly one a} U1 = ({1,0}, ⋅ )
U1 □ U1 Σ = {a, b} L = {u | u contains exactly one a} U1 = ({1,0}, ⋅ )
U1 □ U1
a
h1 : u
… …
Σ = {a, b} L = {u | u contains exactly one a} a ↦ 0 b ↦ 1 U1 = ({1,0}, ⋅ )
U1 □ U1
a 1 , a , 1
h1 : σ : Σ* → (U1 × Σ × U1)* u u′ = σ(u) h1 h1
… … … …
Σ = {a, b} L = {u | u contains exactly one a} a ↦ 0 b ↦ 1 U1 = ({1,0}, ⋅ )
U1 □ U1
a 1 , a , 1
h1 : σ : Σ* → (U1 × Σ × U1)* u h2 : u′ = σ(u) h1 h1
… … … …
Σ = {a, b} L = {u | u contains exactly one a} a ↦ 0 b ↦ 1 1, a, 1 ↦ 0 … ↦ 1 U1 = ({1,0}, ⋅ )
U1 □ U1
a 1 , a , 1
h1 : σ : Σ* → (U1 × Σ × U1)* u h2 : u′ = σ(u) h1 h1
… … … …
Σ = {a, b} L = {u | u contains exactly one a} a ↦ 0 b ↦ 1 1, a, 1 ↦ 0 … ↦ 1 u ∈ L iff h1(u) = 0 & h2(u′) = 0 U1 = ({1,0}, ⋅ )
(M, ⋅ ) (N, + ) (M □ N, ˜ ⋅ ) & Any language recognized by M □ N is a boolean combination of 1) Languages recognized by M 2) σ−1 of languages recognized by N σ is transducer induced by h1 Given h : Σ → M □ N , let h1 : Σ → M be the projection of h on M
(M, π) (N, ̂ π) (M □ N , ˜ π)
(M, π) (N, ̂ π) (M □ N , ˜ π) Satisfies Generalized Associativity
(M, π) (N, ̂ π) (M □ N , ˜ π) &
(M, ⋅ ,τ, τ*, κ) (N, + , ̂ τ, ̂ τ*, ̂ κ) (M □ N , ˜ ⋅ , ˜ τ, ˜ τ*, ˜ κ) (M, π) (N, ̂ π) (M □ N , ˜ π) & &
(M, ⋅ ,τ, τ*, κ) (N, + , ̂ τ, ̂ τ*, ̂ κ) (M □ N , ˜ ⋅ , ˜ τ, ˜ τ*, ˜ κ) (M, π) (N, ̂ π) (M □ N , ˜ π) & & Effective
h : Σ → M □ N
a
u
… …
(M, ⋅ , τ, τ*, κ) (N, + , ̂ τ, ̂ τ*, ̂ κ) (M □ N, ˜ ⋅ , ˜ τ, ˜ τ*, ˜ κ)
h : Σ → M □ N
a a h1(u<x) , a , h1(u>x)
u h1 : Σ → M σ : Σ⊕ → (M × Σ × M)⊕ u u′ = σ(u) h1 h1
… … … … … …
(M, ⋅ , τ, τ*, κ) (N, + , ̂ τ, ̂ τ*, ̂ κ) (M □ N, ˜ ⋅ , ˜ τ, ˜ τ*, ˜ κ)
h : Σ → M □ N
a a h1(u<x) , a , h1(u>x)
u h1 : Σ → M σ : Σ⊕ → (M × Σ × M)⊕ u h2 : M × Σ × M → N u′ = σ(u) h1 h1
… … … … … …
h(u) is completely determined by h1(u) and h2(u′) (M, ⋅ , τ, τ*, κ) (N, + , ̂ τ, ̂ τ*, ̂ κ) (M □ N, ˜ ⋅ , ˜ τ, ˜ τ*, ˜ κ)
(M, ⋅ , τ, τ*, κ) (N, + , ̂ τ, ̂ τ*, ̂ κ) (M □ N, ˜ ⋅ , ˜ τ, ˜ τ*, ˜ κ) & Given h : Σ → M □ N , let h1 : Σ → M be the projection of h on M Any countable language recognized by M □ N is a boolean combination of 1) Countable languages recognized by M 2) σ−1 of countable languages recognized by N σ is transducer induced by h1
((U1 □ U1) □ U1) □ U1… …U1 □ (U1 □ (U1 □ U1)) Iterated Block product Weakly Iterated Block product □* U1 = set of all iterated block products of U1 □*
w U1 = set of all weakly iterated block products of U1 1 if u has no 0 if u has at least one 0 π(u) = U1 = ({0,1}, π)
ℒ(□*U1) = FO definable languages [Krohn, Rhodes] = LTL definable languages [Kamp] ℒ(□*
wU1) = FO2 definable languages
[Straubing, Therien]
1 if u has no 0 if u has at least one 0 π(u) = U1 = ({0,1}, π)
wU1) = FO2 definable countable languages
1 if u has no 0 if u has at least one 0 π(u) = U1 = ({0,1}, π)
ℒ(□*U1) ⊇ FO definable countable languages
ℒ(□*U1) ⊇ FO definable countable languages ∃x a(x) ϕ = ∃x ψ(x) ψ(x)
ℒ(□*U1) ⊇ FO definable countable languages
(
a 1)
u
… …
∃x a(x) ϕ = ∃x ψ(x) ψ(x)
ℒ(□*U1) ⊇ FO definable countable languages
(
a 1)
u
… …
∙ ( a 1) exists ∙ exactly one ( * 1 ) ∃x a(x) ϕ = ∃x ψ(x) ψ(x)
ℒ(□*U1) ⊇ FO definable countable languages
(
a 1)
u
… …
∙ ( a 1) exists ∙ exactly one ( * 1 ) U1 ∃x a(x) ϕ = ∃x ψ(x) ψ(x)
ℒ(□*U1) ⊇ FO definable countable languages
(
a 1)
u
… …
∙ ( a 1) exists ∙ exactly one ( * 1 ) U1 (U1 □ U1) ∃x a(x) ϕ = ∃x ψ(x) ψ(x)
ℒ(□*U1) ⊇ FO definable countable languages
(
a 1)
u
… …
∙ ( a 1) exists ∙ exactly one ( * 1 ) U1 (U1 □ U1) × ∃x a(x) ϕ = ∃x ψ(x) ψ(x)
ℒ(□*U1) ⊇ FO definable languages ∃x a(x) ϕ = ∃x ψ(x) ψ(x)
ℒ(□*U1) ⊇ FO definable languages ∃x a(x)
(
a 1)
u ∈ L(ψ)
… …
ϕ = ∃x ψ(x) ψ(x) M
ℒ(□*U1) ⊇ FO definable languages ∃x a(x)
(
a 1)
u ∈ L(ψ)
… …
ϕ = ∃x ψ(x) ψ(x)
a
v = proj(u, Σ)
… …
M
ℒ(□*U1) ⊇ FO definable languages ∃x a(x)
(
a 1)
u ∈ L(ψ)
… …
ϕ = ∃x ψ(x) ψ(x)
a
v = proj(u, Σ)
… …
M □ U1
s = ∅ | a | s1 + s2 | s1 ∩ s2 | ¬s | s1 . a . s2 a ∈ Σ
s = ∅ | a | s1 + s2 | s1 ∩ s2 | ¬s | s1 . a . s2 a ∈ Σ
1 if u has no 0 if u has at least one 0 π(u) = U1 = ({0,1}, π)
ϕ = p ∈ P | ¬ϕ | ϕ1 ∨ ϕ2 | ϕ1 S ϕ2 | ϕ1 U ϕ2
ϕ = p ∈ P | ¬ϕ | ϕ1 ∨ ϕ2 | ϕ1 S ϕ2 | ϕ1 U ϕ2
p U q q p
ϕ = p ∈ P | ¬ϕ | ϕ1 ∨ ϕ2 | ϕ1 S ϕ2 | ϕ1 U ϕ2
p U q q p
ℒ(ϕ) = {w ∈ ΣΣ⊛ | w,0 ⊧ ϕ}
w {Mr, Ml}) = LTL[S, U] definable languages
p U q q
?
{p} {p} {}
q ≡ {q} or {p, q} u
p U q q
?
{p} {p} {}
q ≡ {q} or {p, q}
1 1
u
p U q q
?
{}
q ≡ {q} or {p, q} u
p U q q
?
{}
q ≡ {q} or {p, q}
[ (
u 1 [ ( Ul
2
( ⋅ ⋆ = ( [ ⋅ ⋆ = [
p U q q
?
{p} {p} {}
q ≡ {q} or {p, q}
1 [ ( 1
u
h1(u>0) = [ h1(u>0) = (
?
1 [ ( Ul
2
( ⋅ ⋆ = ( [ ⋅ ⋆ = [
p U q q
?
{p} {p} {}
q ≡ {q} or {p, q}
1 [ ( 1
u σ(u)
h1(u>0) = [ h1(u>0) = (
?
1 [ ( Ul
2
( ⋅ ⋆ = ( [ ⋅ ⋆ = [
1 [ ( Ul
2
h1 : {q}, {p, q} ↦ [ {p} ↦ 1 {} ↦ (
p U q q
?
{p, q} {p, q} {}
u 1 [ ( Ul
2 …
h1 : {q}, {p, q} ↦ [ {p} ↦ 1 {} ↦ (
{} {p, q} p U q
?
{p, q} {p, q} … {p, q}
p U q q
?
{p, q} {p, q} {}
u
h1(u>0) = ( h1(u>0) = (
1 [ ( Ul
2 …
h1 : {q}, {p, q} ↦ [ {p} ↦ 1 {} ↦ (
{} {p, q} p U q
?
{p, q} {p, q} … {p, q}
1 ab (ab)κ Ml a
1 ab (ab)κ Ml a
a a a 1 … …
1 ab (ab)κ Ml a
a a a 1 … … a 1 … … a ab or (ab)κ
∙ contains ab or (ab)κ ∙ prefix of a
1 ab (ab)κ Ml a
a a a 1 … … a 1 … … a ab or (ab)κ
∙ contains ab or (ab)κ ∙ prefix of a a . (ab)κ = ab
p U q q
?
{p, q} {p, q} {}
1 ab (ab)κ Ml
… {} {p, q} p U q
?
{p, q} {p, q} … {p, q}
a
p U q q
?
{p, q} {p, q} {}
1 ab (ab)κ Ml
…
h1 : {p, q} ↦ a {p} ↦ 1 {} ↦ (ab)κ
{} {p, q} p U q
?
{p, q} {p, q} … {p, q}
a {q} ↦ ab
p U q q
?
{p, q} {p, q} {} h1(u>0) = a or ab h1(u>0) = (ab)κ
1 ab (ab)κ Ml
…
h1 : {p, q} ↦ a {p} ↦ 1 {} ↦ (ab)κ
{} {p, q} p U q
?
{p, q} {p, q} … {p, q}
a {q} ↦ ab
p U q q
?
{p, q} {p, q} {} h1(u>0) = a or ab h1(u>0) = (ab)κ
1 ab (ab)κ Ml
…
h1 : {p, q} ↦ a {p} ↦ 1 {} ↦ (ab)κ
{} {p, q} p U q
?
{p, q} {p, q} … {p, q}
a {q} ↦ ab u,0 ⊧ p U q iff h1(u>0) = a or ab
U p ϕ = ϕ1 S ϕ2 S q
U p ϕ = ϕ1 S ϕ2 S q
a h1(u<x) , a , h1(u>x)
u u′ = σ(u) h1 h1
… … … …
h1 : Σ → Ml
U p ϕ = ϕ1 S ϕ2 S q
a h1(u<x) , a , h1(u>x)
u u′ = σ(u) h1 h1
… … … …
h1 : Σ → Ml
… … p U q?
S ϕ = ϕ1 S ϕ2 p′ ϕ′
S ϕ = ϕ1 S ϕ2 p′
… … p′ or ¬p′
ϕ′
S ϕ = ϕ1 S ϕ2 p′
… … p′ or ¬p′
ϕ′ Ml □ N
∙ ℒ(□*U1) = FO definable countable languages ∙ ℒ(□*
wU1) = FO2 definable languages
∙ ℒ( □*
w {Mr, Ml}) = LTL[S, U] definable languages
= countable languages of marked star free expressions ∙ Block product operation for ⊛ −Algebra
1) Extend to more expressive logic e . g . FO[cut] ∃X ϕ(X) 2) Get finer characterization of LTL or FO 3) Get equational characterization of LTL[S, U]
1) Extend to more expressive logic e . g . FO[cut] … ∃X ϕ(X) 2) Get finer characterization of LTL or FO 3) Get equational characterization of LTL[S, U]