Article View: comp.lang.prolog
Article #2222Re: Occurs check
From: Fernando Pereira
Date: Fri, 18 Dec 1992 15:03
Date: Fri, 18 Dec 1992 15:03
42 lines
3100 bytes
3100 bytes
In article <TORKEL.92Dec17201903@bast.sics.se> torkel@sics.se (Torkel Franzen) writes: >In article <24435@alice.att.com> pereira@alice.att.com (Fernando Pereira) > writes: > >If you think of Prolog programs as *logic* programs where the logic is > >(a fragment of) first-order logic, what is wrong it that the answers > >derived without the occurs-check are in general unsound. > This is putting it too strongly, since such answers are perfectly >sound relative to the interpretation of a (pure) program as the union >of the clauses and the identities true in a suitable universe of >rational trees. The logic involved is still first order logic, it's >just that we have a somewhat stronger interpretation of programs. No, it is not too strong. I think you are confusing deduction in an interpreted system (eg. Horn clauses over the domain of finite trees, or of rational trees) with deduction that yields consequences true in any model, that is, valid consequences. If I use resolution to show that P |- exists x. Q (by deriving the empty clause from P /\ forall x. not Q) I have shown P |= exists x. Q, that is, for *any* model M such that M |= P there is an assignment a for x such that P, a |= Q. In particular (going back to my example) if I conclude by resolution that P |- exists x. r(x,x) then in every model of P there is an element that stands in the r relation with itself. With P = forall u. r(u, f(u)), from which exists x. r(x,x) follows by resolution without the occurs check, the model in which r is the successor relation on |N and f the successor function refutes exists x. r(x, x). Thus resolution without the occurs check is unsound as a method for deriving valid consequences in (uninterpreted) first-order logic. It could still be sound as a method for deriving true conseuqnces over some class of models, eg. rational trees. But that is a *very* different thing. When using logic for knowledge representation, we often do not know what models to consider, but rather we are interested in characterizing logically the class on models of interest. Thus we need to work with valid consequence, not just true consequence in particular models. On the other hand, if we are interested in using logic to define relations over particular structures, eg. rational trees, resolution modulo a particular equational theory can be the right way to go. Still, it is important not to confuse those two alternatives. Fernando Pereira 2D-447, AT&T Bell Laboratories 600 Mountain Ave, PO Box 636 Murray Hill, NJ 07974-0636 pereira@research.att.com
Technical Details
Message-ID:
<24439@alice.att.com>Path:
arc1-ca.pugleaf.net!sparky!uunet!spool.mu.edu!uwm.edu!linac!att!att!allegra!alice!pereiraReferences:
<1992Dec13.173016.8849@nntp.hut.fi> <1992Dec17.111142.24450@dcs.qmw.ac.uk> <24435@alice.att.com> <TORKEL.92Dec17201903@bast.sics.se>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!spool.mu.edu!uwm.edu!linac!att!att!allegra!alice!pereira From: pereira@alice.att.com (Fernando Pereira) Newsgroups: comp.lang.prolog Subject: Re: Occurs check Message-ID: <24439@alice.att.com> Date: 18 Dec 92 15:03:17 GMT Article-I.D.: alice.24439 References: <1992Dec13.173016.8849@nntp.hut.fi> <1992Dec17.111142.24450@dcs.qmw.ac.uk> <24435@alice.att.com> <TORKEL.92Dec17201903@bast.sics.se> Reply-To: pereira@alice.UUCP () Organization: AT&T, Bell Labs Lines: 42