Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!bradley From: bradley@cs.utexas.edu (Bradley L. Richards) Newsgroups: comp.lang.prolog Subject: Re: Fun. vs. Logic Message-ID: <438@ghidrah.cs.utexas.edu> Date: 13 Dec 89 17:37:16 GMT References: <11500018@hpldola.HP.COM> <11500020@hpldola.HP.COM> <2221@cs-spool.calgary.UUCP> Organization: U. Texas CS Dept., Austin, Texas Lines: 19 In article <11500020@hpldola.HP.COM>, patch@hpldola.HP.COM (Pat Chkoreff) writes: >> >> Negation worries me. A language feature should either be essential for >> computation, or defined in terms of something that is. Negation is NOT >> essential for computation, so I HOPE that it can be defined in terms of pure >> Horn clauses, which are. Is there an effective procedure for removing I know you've already gotten a lengthy response on eliminating negation, but I think one quick additional note is in order. While it's true that negation is unnecessary when computing in infinite domains (since positive programs possess the full power of recursive function theory), this is *not* true when computing in finite domains. If you are computing over the domain, say, of citizens in Hoboken, then the ability to say Stranger(Who) :- not citizen(Who) in fact gives you a power you cannot duplicate without negation. brad