[m-dev.] Re: diff: Fix problem with quantifiers and double negation
Andrew Bromage
bromage at cs.mu.OZ.AU
Wed Jun 24 14:32:10 AEST 1998
G'day all.
Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> >Sorry, I made a mistake there -- I meant
>
> > 4. `~(P, Q, ...)' ===> `NotP ; NotQ ; ...' iff
> > `~P' ===> `NotP', and `~Q' ===> `NotQ', and ...
>
> > > 3 and 4 above - they are wrong.
>
> >For those of us who still haven't had the first coffee of the day ;-),
Lee Naish replied:
> Like me:-) I think 3. is probably ok (maybe I was getting confused with
> negating P). The correctness of 4. depends very much on what rules are
> used for implicit quantification and what restrictions are placed on
> modes.
It doesn't look right on the face of it. This goal:
\+ (
produce(X :: out) is det,
test(X :: in) is semidet
)
does not correctly transform into:
(
\+ (produce(X :: out) is det)
;
\+ (test(X :: in) is semidet)
)
Cheers,
Andrew Bromage
More information about the developers
mailing list