Section: New Results
Tree Automata Completion Checker
As shown in section 3.3 , provided that a program or system can be represented by a term rewriting system, the (un)reachability of some program states can be proven using a tree automata completion algorithm. In this setting, completion computes a tree automaton recognising the set of all possible reachable terms. On the one side, we are interested in designing an efficient completion implementation so as to perform analysis on real-size problems. For example, the completion algorithm has been implemented in Tom ( http://tom.loria.fr ) and permitted to obtain completion times 100 times faster than the original implementation  . However, to obtain such results, it is necessary to achieve low level optimisations on the implementation that may corrupt the result, i.e. the completed tree automaton.
Hence, on the other side, we are also interested in designing a checker guaranteeing that a tree automaton is a valid fixpoint of the completion algorithm. This consists in showing that for all term recognised by a tree automaton all his rewrites are also recognised by the same tree automaton. This checker has been formally defined in Coq and an efficient Ocaml implementation has been automatically extracted  . This checker is now used to certify all analysis results produced by regular completion as well as the optimised version of  .