Most known results on avoiding the occur-check are based on the notion of "not subject to occur-check" (NSTO). It means that unification is performed only on such pairs of atoms for which the occur-check never succeeds in any run of a nondeterministic unification algorithm. Here we show that this requirement is too strong. We show how to weaken it, and present some related sufficient conditions under which the occur-check may be safely omitted. We show examples for which the proposed approach provides more general results than the approaches based on well-moded and nicely moded programs (this includes cases to which the latter approaches are inapplicable).
翻译:避免发生检查的最已知结果是基于“不须进行检查”的概念(NSTO),这意味着只有在对原子进行统一时,在非决定性的统一算法的任何运行中,这种统一永远不会成功。这里我们表明这一要求太强烈。我们展示了如何削弱这种要求,并提出了一些相关的充分条件,使这种检查可以安全地省略。我们举例说明了拟议方法所提供的结果比基于完善和完善模式程序的方法更为笼统(这包括后一种方法不适用的情况)。