Problem 51 Date: Thu, 20 Apr 2000 From: Vladimir Lifschitz To: TAG I'd like to offer you, as a little exercise, one of the problems that we are discussing these days in my answer set programming class. We call it "Problem 51," because this is the number that this question happened to get in my list of homework problems. === PROBLEM 51. Let A be any logic program containing the rules p <- q, p <- not q. Let A' be the program obtained from A by replacing these two rules with p. Then A' has the same answer sets as A. True or false? === This is not a terribly difficult question, but I must tell you that, when I started thinking about it, I couldn't decide for some time what to look for -- a proof or a counterexample. What does your intuition tell you? =========== Date: Fri, 21 Apr 2000 From: Michael Gelfond To: Vladimir Lifschitz Tthanks, this is a nice problem. You should send us more of these. (To TAG members: If you do not know the answer yet you may think more before reading any further.) My intuition tells me that the programs are not equivalent. Let me try to explain why (the explanation naturally ends by a proof). The problem is related to a very important property of programs which I call "strong equivalence" but which is also known under other names (I do not remember them though). P1 is strongly equivalent to P2 if for any program T, T + P1 is equivalent (has the same answer sets) to T + P2. Programs (especially those with "not") are rarely strongly equivalent (even though Pearce and Herre have something to say about when they are). In your first program "p" is only defeasibly true while in the second it is "really" true which suggest that they are not strongly equivalent. Of course the difficulty is caused by the fact that "p" in the first program seems to be "really" true. One is tempted to use reasoning by cases to establish this. The argument does not work though since it ignores the possibility for a defeasible program to be inconsistent while its "classical" counterpart is not. This observation immediately leads to the proof - make p equivalent to q, i.s. consider two programs: q <- p p <- q p :- not q and q <-- p p. First has no answer sets while the second is consistent. Even though strong equivalence is rare some weaker but also important "equivalences" are more frequent. One can study equivalences of programs under various types of possible updates, e.g. let P1 and P2 be two programs with the same signature \sigma. We say that a program T is a definition (in terms of \sigma) if heads of rules in T contain no elements of \sigma. We say that P1 and P2 are equivalent w.r.t. definitions if for any definition T, P1 + T is equivalent to P2 + T. So, a question: Are the above programs equivalent w.r.t. definitions? General questions like these were addressed by several people (including myself) but the papers on the subject are sporadic at best. The question of discovering important "updates" (or transformations) and equivalence conditions under these updates is very important and deserves very serious attention. COMMENTS?