libSFTA is a library that implements symbolically encoded nondeterministic bottom-up finite tree automata and standard operations on them. Search here for further information. Note: The libSFTA library is now obsolete, check libvata for its successor.
To download the library, run $ git clone git://github.com/ondrik/libsfta.git.
For compiling the library, see the README file in the root directory.
The library comes with a simple interface program that performs the following operations:
The program expects an input to be formated in Timbuk style:
<file> : 'Ops' <label_list> <automaton> <label_list> : <label_decl> <label_decl> ... // a list of label declarations <label_decl> : string ':' int // a symbol declaration (the name and the arity) <automaton> : 'Automaton' string 'States' <state_list> 'Final States' <state_list> 'Transitions' <transition_list> <state_list> : <state> <state> ... // a list of states <state> : string // the name of a state <transition_list> : <transition> <transition> ... // a list of transitions <transition> : <label> '(' <state> ',' <state> ',' ... ')' '->' <state> // a transition <label> : string // the name of a labelAn example could look like this:
Ops a:0 b:1 c:2 Automaton A States q0 q1 q2 Final States q2 Transitions a() -> q0 b(q0) -> q1 c(q1, q1) -> q1 c(q1, q1) -> q2 c(q2, q2) -> q2
This work was supported by the Czech Science Foundation (within projects P103/10/0306 and 102/09/H042), the Czech Ministry of Education (projects COST OC10009 and MSM 0021630528), and the internal BUT project FIT-10-1.
If you have further questions, do not hesitate to contact authors (Lukas Holik, Ondrej Lengal and Tomas Vojnar).