From b3c8c9e9a95c04db604420f159afa375ef111d5c Mon Sep 17 00:00:00 2001 From: Hans-Peter Deifel <hpd@hpdeifel.de> Date: Fri, 15 Mar 2019 17:41:07 +0100 Subject: [PATCH] Add another tree automaton example --- examples/top-down-tree-automaton | 25 +++++++++++++++++++++++++ examples/top-down-tree-automaton.out | 3 +++ 2 files changed, 28 insertions(+) create mode 100644 examples/top-down-tree-automaton create mode 100644 examples/top-down-tree-automaton.out diff --git a/examples/top-down-tree-automaton b/examples/top-down-tree-automaton new file mode 100644 index 0000000..4fbbdc8 --- /dev/null +++ b/examples/top-down-tree-automaton @@ -0,0 +1,25 @@ +# This is an example from [1], used to distinguish the expressivity of +# deterministic and non-deterministic top down tree automata. +# +# The automaton below accepts the tree language +# +# T = { f(a, b), f(b, a) } +# +# with symbols a/0, b/0 and f/2. A deterministic top-down automaton would not +# accept that language. See [1, Proposition 1.6.2]. + +{init, non_init} x Ƥ({a,b} + {f}×X×X) + + +q_i: (init, { inj1 (f, q_a, q_b), inj1 (f, q_b, q_a) }) + +q_a: (non_init, { inj0 a }) +q_b: (non_init, { inj0 b }) + + + +# [1]: Comon, Hubert; Dauchet, Max; Gilleron, Rémi; Jacquemard, Florent; +# Lugiez, Denis; Löding, Christof; Tison, Sophie; Tommasi, Marc +# (November 2008). +# Tree Automata Techniques and Applications. +# Retrieved 2019-03-15. diff --git a/examples/top-down-tree-automaton.out b/examples/top-down-tree-automaton.out new file mode 100644 index 0000000..601bca1 --- /dev/null +++ b/examples/top-down-tree-automaton.out @@ -0,0 +1,3 @@ +Block 0: q_i +Block 1: q_a +Block 2: q_b -- GitLab