Exercises 1 : Recognizable Tree Languages and Finite Tree Automata

EX 1: First constructions

\newcommand{\dom}{\mathop{\rm dom}\nolimits}

Let $𝔉 ≝ \lbrace f(2), g(1), a(0)\rbrace$.

G(t) ≝ \lbrace f(f(a, u), g(v)) \mid u, v∈T(𝔉) \rbrace

Top-down: $q_0 ⟶^\ast t$

Bottom-up: $t ⟶ q_f$

  graph {
    rankdir= TB;
    f1[label="f"];
    f2[label="f"];
    a[label="a"];
    b1[label="."];
    b2[label="."];
    f1 -- f2, g;
    g -- b2;
    f2 -- a, b1;
  }

Top-down

$I ≝ \lbrace q_{f_1} \rbrace$

  • $q_{f_1}(f(x, y)) ⟶ f(q_{f_2}(x), q_g(y))$
  • $q_{f_2}(f(x, y)) ⟶ f(q_a(x), q_T(y))$
  • $q_a(a) ⟶ a$
  • $q_T(a) ⟶ a$
  • $q_g(g(x)) ⟶ g(q_T(x))$
  • $q_T(f(x, y)) ⟶ f(q_T(x), q_T(y))$
  • $q_T(g(x)) ⟶ g(q_T(x))$

Bottom-up

$F ≝ \lbrace q_T \rbrace$

$Q ≝ \lbrace q_a, q_f, q_g, q_\bot, q_T \rbrace$

  • $f(q_a, q) ⟶ q_f$ for all $q$
  • $g(q) ⟶ q_g$ for all $q$
  • $f(q_f, q_g) ⟶ q_T$
  • $f(q, q’) ⟶ q_\bot$ for all $q, q’ ∈ Q^2 \backslash \Big(\lbrace (q_f, q_g) \rbrace ∪ \lbrace (q_a, q) \mid q ∈ Q \rbrace \Big)$

EX 2: What is recognizable by an FTA?

2. $𝔉 ≝ \lbrace g(1), a(0) \rbrace$ and $L$ the set of ground terms of even height

$Q ≝ \lbrace q \text{ even }, q \text{ odd} \rbrace$

$F ≝ \lbrace q \text{ even} \rbrace$

  • $a^{(0)} ⟶ q_{odd}$
  • $g(q_{even}) ⟶ q_{odd}$
  • $g(q_{odd}) ⟶ q_{even}$

3. $𝔉 ≝ \lbrace f(2), g(1), a(0) \rbrace$ and $L$ the set of ground terms of even height

Not recognizable by any bottom-up tree automaton:

Let $𝒜$ be a NFTA bottom-up, with $n$ states.

The tree $t ≝ f(g^{2n+2}(a), g^{2n+1}(a))$ is recognized.

$r_t$ is the run of $𝒜$ on $t$:

Let’s consider the multi-set K ≝ \lbrace \underbrace{r_t(1 1^k)}_{\text{the states reached by going to the right } k+1 \text{ times}} \mid 1 ≤ k ≤ 2n+1 \rbrace

By the pigeonhole principle, there exist $k > k’∈ℕ$ such that

r_t(1 1^k) = r_t(1 1^{k'})

So for any $p∈ℕ$, the tree $t_p ≝ f\big(g^{2n+2}(a), g^{2n+1 + 2p(k-k’)}(a)\big)$ is still recognized, but not in $L$, since $2n+1 + 2p(k-k’) > 2n+2$ and $2n+1 + 2p(k-k’)$ is not even.

Contradiction.

EX 3: Bottom-up vs Top-down

1.

Bottom-up NFTA ⟺ Bottom-up DFTA ⟺ Top-down NFTA > Top-down DFTA

  1. Bottom-up NFTA VS Top-down NFTA: just flip around all the arrows of the rewriting rules.

  2. Bottom-up DFTA VS Bottom-up NFTA: just do the subset construction.

2.

Bottom-up

to match the pattern:

  • $a ⟶ q_a$
  • $g(q_a) ⟶ q_g$
  • $f(q_a, q_g) ⟶ q_T$

once matched:

  • $g(q_T) ⟶ q_T$
  • $g(q_g) ⟶ g(q_g)$, $g(q_\bot) ⟶ g(q_g)$

  • $f(q, q’) ⟶ q_T$ if $q = q_T$ or $q’ = q_T$
  • $f(q, q’) ⟶ q_\bot$ else

3.

By contradiction:

the following trees are accepted:

  graph {
    rankdir=TB;
    f -- a, t;
  }

and

  graph {
    rankdir=TB;
    f -- t, a;
  }

But as the automaton is deterministic, there’s a unique transition $q_f(f(x,y)) ⟶_𝒜 f(q_1(x), q_2(x))$ for both of th previous trees.

So

  • $q_1(a), q_2(t)$ are accepted
  • $q_1(t), q_2(a)$ are accepted

which means that the following tree must be accepted:

  graph {
    rankdir=TB;
    a1[label="a"];
    f -- a, a1;
  }

which is not true!

Leave a comment