Controlling Search in Declarative Programs
Logic languages can deal with non-deterministic computations via built-in search facilities. However, standard search methods like global backtracking are often not sufficient and a source of many programming errors. Therefore, we propose the addition of a single primitive to logic-oriented languages to control non-deterministic computation steps. Based on this primitive, a number of different search strategies can be easily implemented. These search operators can be applied if the standard search facilities are not successful or to encapsulate search. The latter is important if logic programs interact with the (non-backtrackable) outside world.
We continue the study of bottom-up unranked tree automata with equality and ::: disequality constraints between direct subtrees. In particular, we show that ::: the emptiness problem for the nondeterministic automata is decidable. In ::: addition, we show that the universality problem, in contrast, is undecidable.