home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / lang / prolog / 2263 < prev    next >
Encoding:
Internet Message Format  |  1992-12-21  |  3.0 KB

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