From hal@murren.ai.mit.edu Thu May 18 09:04:40 1989
Date: Thu, 18 May 89 09:02:21 -0400
From: hal@murren.ai.mit.edu (Hal Abelson)
To: 6001-staff@zermatt.lcs.mit.edu
In-Reply-To: Michael R. Blair's message of Wed, 17 May 89 20:17:22 EDT <8905180017.AA01368@hx.LCS.MIT.EDU>
Subject: PS9 Prob5 solution wrong (late but read anyway)
Reply-To: hal@zurich.ai.mit.edu


I blew it when I wrote up that solution.  


Here is the real story.  With that buggy version of CONFLICTS, you can
still process a query such as

(conflicts 18:01 18:02)

and get the right answer.

However, if you try

(conflicts 18:01 ?what)

the system will produce nothing.  

What happens is what Ziggy said

In the first case

(conflicts 18:01 18:02) reduces to

   (and (not (same ?x ?y))
        ....)

where ?x is 18:01 and ?y is 18:02

This processes 

        (same ?x ?y)    

with a frame ?x=18:01 ?y=18:02.  This fails, so the frame is retained
by NOT.

So this frame is passed along to the rest of the conjuncts of the
AND, which eventually succeed for this value of ?x and ?y, and the
answer is produced.

---

On the other hand, if we start with

  (conflicts 18:01 ?what)

we start by checking

   (not (same ?x ?y))

with ?x=18:01 and ?y=?what

This time the SAME succeeds with ?x=?y=?what=18:01

So the NOT filters this frame out, leaving no frames to be passed to
the rest of the conjucts, so the answer returned in an empty stream.


Sorry I screwed this up.

-- Hal





