• No results found

FO definable Transformations of Infinite strings

N/A
N/A
Protected

Academic year: 2022

Share "FO definable Transformations of Infinite strings"

Copied!
162
0
0

Loading.... (view fulltext now)

Full text

(1)

FO definable Transformations of Infinite strings

Vrunda Dave, S. Krishna, Ashutosh Trivedi

(2)

Outline

Introduction

Three formalisms for transductions Related work

Aperiodic transformations for Infinite strings Aperiodic two way transducer

Aperiodic streaming string transducer Equivalence results and Proof ideas

SSTsf

FOT = 2WSTsf

SSTsf

Conclusion

(3)

Introduction

Three formalisms for transformations:

(4)

Logic

Introduction

Three formalisms for transformations:

(5)

Logic

Introduction

Three formalisms for transformations:

Two way machines

(6)

Logic

Introduction

One way machines with finite registers Three formalisms for transformations:

Two way machines

(7)

Logic Transducer

(8)

Logic Transducer

[Courcelle’94]

(9)

Logic Transducer

input

[Courcelle’94]

(10)

a1 a2 a3 a4 a5 a6 a7 a8

Logic Transducer

input

[Courcelle’94]

(11)

a1 a2 a3 a4 a5 a6 a7 a8

Logic Transducer

input

dom

[Courcelle’94]

(12)

a1 a2 a3 a4 a5 a6 a7 a8

Logic Transducer

input

dom

[Courcelle’94]

(13)

a1 a2 a3 a4 a5 a6 a7 a8

Logic Transducer

input

dom

output

[Courcelle’94]

(14)

a1 a2 a3 a4 a5 a6 a7 a8

Logic Transducer

input

dom

a

b r w

g d b

a r

output

[Courcelle’94]

(15)

a1 a2 a3 a4 a5 a6 a7 a8

Logic Transducer

input

dom

nodes edges

a

b r w

g d b

a r

output

[Courcelle’94]

(16)

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v

where ui 2 {a, b} and v 2 {a, b}! FO/ MSO transducer

(17)

a b b # b a # (a, b)! input:

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v

where ui 2 {a, b} and v 2 {a, b}! FO/ MSO transducer

(18)

a b b # b a # (a, b)! input:

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v

where ui 2 {a, b} and v 2 {a, b}! FO/ MSO transducer

(19)

a b b # b a # (a, b)! input:

copy 3:

copy 2:

copy 1:

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v

where ui 2 {a, b} and v 2 {a, b}! FO/ MSO transducer

(20)

a b b # b a # (a, b)! input:

copy 3:

copy 2:

copy 1:

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

1 (x) = 2 (x) = L (x) ^ ¬L#(x) ^ reach#(x)

FO/ MSO transducer

reach#(x) = 9y(x y ^ L#(y))

3 (x) = L#(x) _ ¬reach#(x)

(21)

a b b # b a # (a, b)! input:

a b b b a

a b b b a

# # (a, b)!

copy 3:

copy 2:

copy 1:

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

1 (x) = 2 (x) = L (x) ^ ¬L#(x) ^ reach#(x)

FO/ MSO transducer

reach#(x) = 9y(x y ^ L#(y))

3 (x) = L#(x) _ ¬reach#(x)

(22)

a b b # b a # (a, b)! input:

a b b b a

a b b b a

# # (a, b)!

copy 3:

copy 2:

copy 1:

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

1 (x) = 2 (x) = L (x) ^ ¬L#(x) ^ reach#(x)

FO/ MSO transducer

reach#(x) = 9y(x y ^ L#(y))

2,2(x, y)

1,3(x, y)

3 (x) = L#(x) _ ¬reach#(x)

(23)

Two way machine

(24)

Two way machine [Rabin, Scott’59]

[Ehrich, Yau’71]

(25)

Two way machine

input

[Rabin, Scott’59]

[Ehrich, Yau’71]

(26)

Two way machine

a1 a2 a3 a4 a5 a6 a7 a8

input

[Rabin, Scott’59]

[Ehrich, Yau’71]

(27)

Two way machine

a1 a2 a3 a4 a5 a6 a7 a8

input

output

[Rabin, Scott’59]

[Ehrich, Yau’71]

(28)

Two way machine

a1 a2 a3 a4 a5 a6 a7 a8

input

output

[Rabin, Scott’59]

[Ehrich, Yau’71]

(29)

Look-around automaton

(30)

Look-around automaton

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v

(31)

Look-around automaton

w

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v

#

(32)

Look-around automaton

w

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v

#

suffix prefix

(33)

Look-around automaton

w

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v

#

suffix prefix

property: suffix does not contain #

(34)

Look-around automaton

w

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v

#

suffix prefix

property: suffix does not contain #

#

a, b

#, a, b

p r

(35)

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

Two way Transducer (2WST)

(36)

|↵, 1 |↵, +1

2 {a, b}

` |✏, +1

q0 q1 q2 q3

` |✏, +1

# |✏, 1 # |✏, +1

F = {{q1}}

# |#, +1

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

↵, p|✏, +1

↵, r|↵, +1

Two way Transducer (2WST)

(37)

|↵, 1 |↵, +1

2 {a, b}

` |✏, +1

q0 q1 q2 q3

` |✏, +1

# |✏, 1 # |✏, +1

F = {{q1}}

⊢ a b b # (a + b)ω

# |#, +1

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

↵, p|✏, +1

↵, r|↵, +1

Two way Transducer (2WST)

(38)

|↵, 1 |↵, +1

2 {a, b}

` |✏, +1

q0 q1 q2 q3

` |✏, +1

# |✏, 1 # |✏, +1

F = {{q1}}

⊢ a b b # (a + b)ω

# |#, +1

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

↵, p|✏, +1

↵, r|↵, +1

Two way Transducer (2WST)

(39)

|↵, 1 |↵, +1

2 {a, b}

` |✏, +1

q0 q1 q2 q3

` |✏, +1

# |✏, 1 # |✏, +1

F = {{q1}}

⊢ a b b # (a + b)ω

# |#, +1

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

↵, p|✏, +1

↵, r|↵, +1

Two way Transducer (2WST)

(40)

|↵, 1 |↵, +1

2 {a, b}

` |✏, +1

q0 q1 q2 q3

` |✏, +1

# |✏, 1 # |✏, +1

F = {{q1}}

⊢ a b b # (a + b)ω

# |#, +1

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

↵, p|✏, +1

↵, r|↵, +1

Two way Transducer (2WST)

(41)

|↵, 1 |↵, +1

2 {a, b}

` |✏, +1

q0 q1 q2 q3

` |✏, +1

# |✏, 1 # |✏, +1

F = {{q1}}

⊢ a b b # (a + b)ω

b b

# |#, +1

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

a

↵, p|✏, +1

↵, r|↵, +1

Two way Transducer (2WST)

(42)

|↵, 1 |↵, +1

2 {a, b}

` |✏, +1

q0 q1 q2 q3

` |✏, +1

# |✏, 1 # |✏, +1

F = {{q1}}

⊢ a b b # (a + b)ω

b b

# |#, +1

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

a

↵, p|✏, +1

↵, r|↵, +1

Two way Transducer (2WST)

(43)

|↵, 1 |↵, +1

2 {a, b}

` |✏, +1

q0 q1 q2 q3

` |✏, +1

# |✏, 1 # |✏, +1

F = {{q1}}

⊢ a b b # (a + b)ω

b b a b

# |#, +1

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

a b

↵, p|✏, +1

↵, r|↵, +1

Two way Transducer (2WST)

(44)

|↵, 1 |↵, +1

2 {a, b}

` |✏, +1

q0 q1 q2 q3

` |✏, +1

# |✏, 1 # |✏, +1

F = {{q1}}

⊢ a b b # (a + b)ω

b b a b #

# |#, +1

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

a b

↵, p|✏, +1

↵, r|↵, +1

Two way Transducer (2WST)

(45)

|↵, 1 |↵, +1

2 {a, b}

` |✏, +1

q0 q1 q2 q3

` |✏, +1

# |✏, 1 # |✏, +1

F = {{q1}}

⊢ a b b # (a + b)ω

b b a b # (a + b)ω

# |#, +1

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

a b

↵, p|✏, +1

↵, r|↵, +1

Two way Transducer (2WST)

(46)

One way machine with finite registers

(47)

One way machine with finite registers

[Alur, Černý’10]

(48)

One way machine with finite registers

a1 a2 a3 a4

input :

[Alur, Černý’10]

(49)

One way machine with finite registers

a1 a2 a3 a4

input :

registers : x, y, z…

[Alur, Černý’10]

(50)

One way machine with finite registers

a1 a2 a3 a4

input :

registers : x, y, z…

x = ax y = bycz z = c

x = 𝜀 y = cz z = by

x = ax y = bycz z = c

x = 𝜀 y = cz z = by

[Alur, Černý’10]

(51)

One way machine with finite registers

a1 a2 a3 a4

input :

registers : x, y, z…

x = ax y = bycz z = c

x = 𝜀 y = cz z = by

x = ax y = bycz z = c

x = 𝜀 y = cz z = by

x a y z

output :

[Alur, Černý’10]

(52)

One way machine with finite registers

a1 a2 a3 a4

input :

registers : x, y, z…

x = ax y = bycz z = c

x = 𝜀 y = cz z = by

x = ax y = bycz z = c

x = 𝜀 y = cz z = by

x a y z

output :

copyless update :

[Alur, Černý’10]

(53)

One way machine with finite registers

a1 a2 a3 a4

input :

registers : x, y, z…

x = ax y = bycz z = c

x = 𝜀 y = cz z = by

x = ax y = bycz z = c

x = 𝜀 y = cz z = by

x a y z

output :

copyless update : x = ax y = bycz z = c

x = ax y = bycz z = cx

[Alur, Černý’10]

(54)

One way machine with finite registers

a1 a2 a3 a4

input :

registers : x, y, z…

x = ax y = bycz z = c

x = 𝜀 y = cz z = by

x = ax y = bycz z = c

x = 𝜀 y = cz z = by

x a y z

output :

copyless update : x = ax y = bycz z = c

x = ax y = bycz z = cx

[Alur, Černý’10]

(55)

One way machine with finite registers

a1 a2 a3 a4

input :

registers : x, y, z…

x = ax y = bycz z = c

x = 𝜀 y = cz z = by

x = ax y = bycz z = c

x = 𝜀 y = cz z = by

x a y z

output :

copyless update : x = ax y = bycz z = c

x = ax y = bycz z = cx

✔ ❌

[Alur, Černý’10]

(56)

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

Streaming String Transducer (SST)

(57)

# x := x#

y := z :=

x := x

y := ↵y↵

z := z x := x

y := ↵y↵

z := z

# x := xy# y :=

z :=

q1 q2

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

F ({q2}) = xz

Streaming String Transducer (SST)

2 {a, b}

(58)

# x := x#

y := z :=

x := x

y := ↵y↵

z := z x := x

y := ↵y↵

z := z

# x := xy# y :=

z :=

q1 q2

a b b # (a + b)ω x:

y:

z:

𝜀 𝜀 𝜀

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

F ({q2}) = xz

Streaming String Transducer (SST)

2 {a, b}

(59)

# x := x#

y := z :=

x := x

y := ↵y↵

z := z x := x

y := ↵y↵

z := z

# x := xy# y :=

z :=

q1 q2

a b b # (a + b)ω x:

y:

z:

𝜀 𝜀 𝜀

aa a 𝜀

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

F ({q2}) = xz

Streaming String Transducer (SST)

2 {a, b}

(60)

# x := x#

y := z :=

x := x

y := ↵y↵

z := z x := x

y := ↵y↵

z := z

# x := xy# y :=

z :=

q1 q2

a b b # (a + b)ω x:

y:

z:

𝜀 𝜀 𝜀

aa a

𝜀 𝜀 𝜀

baab ab

bbaabb abb

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

F ({q2}) = xz

Streaming String Transducer (SST)

2 {a, b}

(61)

# x := x#

y := z :=

x := x

y := ↵y↵

z := z x := x

y := ↵y↵

z := z

# x := xy# y :=

z :=

q1 q2

a b b # (a + b)ω x:

y:

z:

𝜀 𝜀 𝜀

aa a

𝜀 𝜀 𝜀

baab ab

bbaabb abb

bbaabb#

𝜀 𝜀

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

F ({q2}) = xz

Streaming String Transducer (SST)

2 {a, b}

(62)

# x := x#

y := z :=

x := x

y := ↵y↵

z := z x := x

y := ↵y↵

z := z

# x := xy# y :=

z :=

q1 q2

a b b # (a + b)ω x:

y:

z:

𝜀 𝜀 𝜀

aa a

𝜀 𝜀 𝜀

baab ab

bbaabb abb

bbaabb#

𝜀 𝜀

bbaabb#

(a + b)ω

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

F ({q2}) = xz

Streaming String Transducer (SST)

2 {a, b}

(63)

# x := x#

y := z :=

x := x

y := ↵y↵

z := z x := x

y := ↵y↵

z := z

# x := xy# y :=

z :=

q1 q2

a b b # (a + b)ω x:

y:

z:

𝜀 𝜀 𝜀

aa a

𝜀 𝜀 𝜀

baab ab

bbaabb abb

bbaabb#

𝜀 𝜀

bbaabb#

(a + b)ω

f(u1#u2# . . . #un#v) = uR1 u1#uR2 u2# . . . #uRn un#v where ui 2 {a, b} and v 2 {a, b}!

F ({q2}) = xz

Streaming String Transducer (SST)

2 {a, b}

(64)

Related Work

(65)

Related Work

(66)

FO MSO

Related Work

(67)

FO MSO

Finite strings Infinite strings Related Work

(68)

FO MSO

Finite strings Infinite strings

MSOT = 2WST MSOT = SST

Related Work

[Engelfriet, Hoogeboom’01]

[Alur, Černý’10]

(69)

FO MSO

Finite strings Infinite strings

MSOT = 2WST MSOT = SST

MSOT = 2WSTla = SST

[Alur, Filiot, Trivedi’12]

Related Work

[Engelfriet, Hoogeboom’01]

[Alur, Černý’10]

(70)

FO MSO

Finite strings Infinite strings

MSOT = 2WST MSOT = SST

FOT = Ap 2WST FOT = Ap SST

MSOT = 2WSTla = SST

[Alur, Filiot, Trivedi’12]

Related Work

[Engelfriet, Hoogeboom’01]

[Alur, Černý’10]

[Carton, Dartois’15]

[Filiot, Krishna, Trivedi’14]

(71)

FO MSO

Finite strings Infinite strings

MSOT = 2WST MSOT = SST

FOT = Ap 2WST FOT = Ap SST

MSOT = 2WSTla = SST

[Alur, Filiot, Trivedi’12]

Related Work

[Engelfriet, Hoogeboom’01]

[Alur, Černý’10]

[Carton, Dartois’15]

[Filiot, Krishna, Trivedi’14]

(72)

FO MSO

Finite strings Infinite strings

FOT = Ap 2WST = Ap SST

MSOT = 2WSTla = SST

Related Work

(73)

FO MSO

Finite strings Infinite strings

FOT = Ap 2WST = Ap SST

MSOT = 2WSTla = SST

Related Work

(74)

FO MSO

Finite strings Infinite strings

FOT = Ap 2WST = Ap SST

MSOT = 2WSTla = SST

Related Work

FOT = Ap 2WSTsf = Ap SST

(75)

FO MSO

Finite strings Infinite strings

FOT = Ap 2WST = Ap SST

MSOT = 2WSTla = SST

Related Work

FOT = Ap 2WSTsf = Ap SST Infinite strings

(76)

This Talk FO

MSO

Finite strings Infinite strings

FOT = Ap 2WST = Ap SST

MSOT = 2WSTla = SST

Related Work

FOT = Ap 2WSTsf = Ap SST Infinite strings

Aperiodicity

(77)

Outline

Introduction

Three formalisms for transductions Related work

Aperiodic transformations for Infinite strings Aperiodic two way transducer

Aperiodic streaming string transducer Equivalence results and Proof ideas

SSTsf

FOT = 2WSTsf

SSTsf

Conclusion

(78)

Transition monoid of a Finite state automaton

[Schutzenberger’65]

(79)

Transition monoid of a Finite state automaton

r t q

a

b b a

b a

[Schutzenberger’65]

References

Related documents

The Gl loaded SF/CS scaffolds (SF/CS-Gl) showed improved hMSCs attachment and viability (82.45±2.6% live cells) together with an increase in cell metabolic

A significantly higher GAG secretion of 27µg/mg was achieved with SF/CS/Glu/Chs scaffold than the SF/CS (80:20) blend (18 µg/mg), SF/CS/Glu (21 µg/mg), SF/CS/Chs scaffolds (23

In this study, we investigate the nature of the SST–rainfall relationship simulated by AGCMs and the coupled versions (CGCMs) of nine global climate models used in the Fourth

(A) Time dependent cell adhesion of hMSCs onto Tissue Culture Polystyrene (TCP), silk film (SF), polyacrylic acid grafted (pAAc-SF) and phosphate grafted

[r]

[r]

[r]

[r]