Re: Intended meaning

From: Bernd Brassel <>
Date: Mon, 05 Nov 2007 12:02:02 +0100

Hello Sergio,

Sergio Antoy schrieb:
> It looks like we have different
> notions of what can or needs to be evaluated to obtains all the
> results of a computation. This can be partly due to the semantics
> or models we have in mind. E.g., Wolfgang thinks functions
> whereas I think rewrite rules. With a different model, maybe some
> steps that I would like to perform are not justified.

Could it be that the semantic model you have in mind is that of
_confluent_ rewriting? That you want to embed the non-confluence of
non-deterministic functions into a confluent system with special
treatment of the non-deterministic choice?

This would enlighten your comment:

> When a variable is shared, a narrowing step must instantiate the
> variable with a generator, not only with the cases of the function
> that is narrowing the variable.

and also your reply, to Michael's example:

> Michael's example is another case in point.
>> f True _ = True
>> g False = False
>> and the expression (f x (g x)). If you reduce the narrex (g x),
>> you cannot obtain the normal form True.
> Since x is shared it should be narrowed to (True ? False).

Making such non-standard narrowing steps is implemented in kics, since
mapping to functional programs means that you have to map to a confluent
system. And, unfortunately, we couldn't add the additional constraint
"since x is shared" which would make many computations in kics much more

Thanks for bringing up the topic!
curry mailing list
Received on Mo Nov 05 2007 - 12:16:15 CET

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