Re: residuation for compositional search?

From: Sebastian Fischer <>
Date: Tue, 14 Jun 2011 08:58:35 +0200

On Tue, Jun 14, 2011 at 8:41 AM, Antonio Regidor García
<> wrote:
> Sorry, only the FIRST version works ok.

Interesting. I can confirm that in MCC

>> >     partition l | concat p =:= l & all (not . null) p =:= True = p
>> >       where p free

terminates gracefully after computing the last solution, but

>> >     partition l | all (not . null) p =:= True & concat p =:= l = p
>> >       where p free

only terminates with a stack overflow.

It seems that MCC evaluates concurrent constraints differently than
PAKCS which only tries the second argument if the first suspends.
Trying out

   cyi> concat unknown =:= [1,2,3]

however, does not suspend but searches indefinitely and dies with a
stack overflow. Apparently, MCC tries the second argument of (&) even
if the first does not suspend.

> Is this a bug in MCC?

The Curry report does not predate a specific interleaving of
concurrent constraints but only proposes PAKCS's behaviour as one
possible sequential implementation. I also did not find any
termination guarantees so it's hard to call any behaviour a bug, I

Wolfgang, can you clarify MCC's strategy of solving concurrent constraints?

Best regards,

curry mailing list
Received on Di Jun 14 2011 - 09:13:15 CEST

This archive was generated by hypermail 2.3.0 : Do Jun 13 2024 - 07:15:11 CEST