Exercises 3:

EX 1: Bottom-up transducers

1.

Reminder:

Tree homomorphism $h: T(𝔉) ⟶ T(𝔉’)$:
  • $h(a) = t_a ∈ T(𝔉’)$
  • $h(f(t_1, \ldots, t_n)) = t_f \lbrace x_i ↤ h(t_i) \rbrace_i$

Ex:

𝔉 ≝ \lbrace g(3), a(0), b(0) \rbrace, \; 𝔉' ≝ \lbrace f(2), a(0), b(0) \rbrace
  • $h(g) = f(f(x_1, x_2), x_3)$
  • $h(a) = a$
  • $h(b) = b$

so that:

h(g(a, g(b,b,b), a)) = f(f(a, f(f(b,b), b)), a)

With only one state that we propagate: each tree homomorphism is a transducer.

2.

We disable the rewriting process

in $Δ$:

  • $f(q_1(x_1), \ldots, q_n(x_n)) ⟶ q’(u_f)$
  • $q(x_1) ⟶ q’(u)$

becomes

  • $f(q_1(x_1), \ldots, q_n(x_n)) ⟶ q’(f(x_1, \ldots, x_n))$
  • $q(x_1) ⟶ q’(x_1)$

EX 2: Minimal automaton

1 ⟹ 2

u ≡_𝒜 v ⟺ δ^\ast(u) = δ^\ast(v)

where $δ$ is the transitive closure of the transition function of the automaton:

L = \bigcup_{q ∈ Q_f} \overline{q}

and $Q_f ⊆ Q$ is finite.

2 ⟹ 3

We have a finite $\sim$ congruence relation. Let’s show that $≡_L$ is finite.

It will suffice to show that $u \sim v ⟹ u ≡_L v$:

if $u \sim v$, then $C(u) \sim C(v)$ (congruence), that is: there exists a congruence class $𝒞$ s.t.

C(u), C(v) ∈ 𝒞

Thus:

C(u) ∈ L = \bigcup_{𝒞' \text{ congruence class}} 𝒞' ⟺ C(v) ∈ L = \bigcup_{𝒞' \text{ congruence class}} 𝒞'

3 ⟹ 1

Let’s assume $≡_L$ is finite.

Let’s build

𝒜_{min} ≝ ⟨Q_{min} ≝ \lbrace \overline{u} \mid u ∈ Σ^\ast \rbrace, 𝔉, Q_{min, f} ≝ ≝ \lbrace \overline{u} \mid u ∈ L \rbrace, δ_{min}⟩

Then

δ_{min}(f, \overline{u_1}, \ldots, \overline{u_n}) = \overline{f(u_1, \ldots, u_n)}

Given $L$ and $𝒜$ s.t. $L(𝒜) = L$, we build $≡_𝒜$ as in 1 ⟹ 2.

We know that with 2 ⟹ 1:

\vert Q_𝒜 \vert = \vert \lbrace \overline{u}^𝒜 \mid u ∈ Σ^\ast \rbrace \vert ≥ \vert \lbrace \overline{u}^L \mid u ∈ Σ^\ast \rbrace \vert = \vert Q_{𝒜_{min}} \vert

Why is the minimal automaton useful?: given two automata $𝒜_1, 𝒜_2$, you can check if $L(𝒜_1) = L(𝒜_2)$ by comparing their minimal automata.

EX 3: MSO on finite trees

1.

$X$ is closed under predecessors:

closed(X) ≝ ∀x,y. (y ∈ X ∧ x \downarrow y ⟹ x∈X)

2.

Seen in class.

3.

∃x, y. (P_a(x) ∧ P_a(y) ∧ x \downarrow_\ast y ∧ x ≠ y)

4.

∃x, y. (P_a(x) ∧ P_a(y) ∧ ¬ (x \downarrow_\ast y) ∧ ¬ (y \downarrow_\ast x) ∧ x ≠ y)

5.

∃x. ∀y. (x \downarrow_\ast y) ⟹ P_a(y)

6.

x ≼ y ⟺ x \text{ is before } y \text{ in the frontier} \\ ≝ ∃z, x_0, y_0. z \downarrow_1 x_0 ∧ z \downarrow_1 x_1 ∧ x_0 \downarrow_\ast x ∧ y_0 \downarrow_\ast y \\ ∧ Fr(x) ∧ Fr(y)

∃x, y. P_a(x) ∧ P_b(y) \\ ∧ (∃z. x ≼ z ∧ z ≼ y) ∧ x ≼ y

Leave a comment