Re: example with 2 combined searches: does "No solution" guarantee no solution actually?

From: Wolfgang Lux <>
Date: Tue, 19 Apr 2011 22:20:45 +0200

Ivan Zakharyaschev write:

> Hello!
> (I'd like probably discuss this on the Curry mailing to get responses
> from the Curry community, but I'm not a subscribed member yet. I'd be
> grateful if you could subscribe me, or forward my message, or respond
> to my issue!
> This can also turn out to be a bug report for the Muenster Curry
> Compiler.)

This is indeed a bug in MCC :-(

> I was surprised that the following (the essence extracted from a
> larger program) fails and also surprised with the way it fails (so I
> even suspect a bug of the curry-0.9.11-1.fc6 compiler):
>> constrainedValue | () =:= x = x where x free -- this works fine
>> (i.e., gives 1 solution).
>> test' = () =:= constrainedValue -- !!! Strange, but this
>> combination gives "no solution", although the parts are OK. A bug
>> in the compiler?

Yes. The bug is fixed in the darcs repository, but has never made it
into a new release so far. Sorry.

> [...]
> Is the thing I have described a bug in the compiler formally?

Again, yes. The generated code could violate an invariant assumed by
the implementation (and it is embarrassing that this bug was lurking
in the compiler for about 4 years without being noticed).

> Should (and can) this be fixed anyway?

As I mentioned above, it has been fixed in the darcs repository (about
seven month ago).

> Does my intuition that "No solution" guarantees that there exists no
> solution make sense?
> When else can the order of the arguments of (=:=) matter (although it
> appears to be symmetric)?

The order of arguments should not matter anywhere except for the order
in which solutions are computed.


curry mailing list
Received on Di Apr 19 2011 - 22:25:47 CEST

This archive was generated by hypermail 2.3.0 : Sa Dez 09 2023 - 07:15:12 CET