Re: residuation for compositional search?

From: Sebastian Fischer <sebf_at_informatik.uni-kiel.de>
Date: Tue, 14 Jun 2011 08:58:35 +0200

On Tue, Jun 14, 2011 at 8:41 AM, Antonio Regidor García
<a_regidor_at_yahoo.es> 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
think.

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

Best regards,
Sebastian

_______________________________________________
curry mailing list
curry_at_lists.RWTH-Aachen.DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/curry
Received on Tue Jun 14 2011 - 09:13:15 CEST

This archive was generated by hypermail 2.3.0 : Mon Nov 18 2019 - 07:15:08 CET