The Notion of Floundering for SLDNF-Resolution Revisited
Abstract:
Abstract. SLDNF-resolution is the standard operational semantics for normal programs. Its safeness condition induces a notion of floundering which may be considered as a programming error. But this notion of floundering seems too weak: a program and a goal may flounder despite the existence of an SLDNF-tree and, in such a case, one computation may flounder while another one may not. We propose a novel stronger notion of floundering-- called true floundering-- which depends only on the existence of an (extended) SLDNF-tree and not on a particular strategy. This notion formalises the idea that the existence of a floundered goal is irrelevant if with another strategy, it would have been possible to continue the computation without floundering. We also introduce a new operational semantics called extended SLDNF-resolution. Extended SLDNF-resolution may be efficiently implemented. Moreover, with a result from Drabent ([Dra94]), extended SLDNF-resolution is complete wrt Kunen semantics for non true floundering programs and goals, which corresponds to a large class of normal programs with a declarative characterization.

