George Rudolph wrote:
1. In Prolog, assuming the terms in a clause are bounded correctly,
the engine will attempt to unify all undetermined variables (whether perceived as
“input” or “output” variables).
i.e. unification makes all unbound variables true, if possible.

"makes all unbound variables true" ???

Unification produces the smallest set of variable bindings that make both terms equal. Variable bindings can be variable-value or variable-variable. In the latter case, some variables may still be undetermined after unification.

If this same behavior is possible in OZ, how would I specify this?

The operator '=' in Oz performs unification. In fact Oz is more general than most Prolog implementations, because it handles cycles well. For instance, if X=f(X Z) and Y=f(Z Y), performing X=Y will make X, Y and Z equal to f(X X).

2. What is a good source for learning the details of constraint handling in OZ? I have read Peter Van Roy’s book—and it is excellent, but not detailed enough
    for what I need.
I have also browsed the online documentation, and I don’t quite understand how To adapt what I see there (ref. the Steiner Triples example) to the particular
    problems I want to solve.
I think it is a combination of APIs and knowing how to combine statements
    To get the results I want.

The Finite Domain Constraint Programming tutorial is an excellent way to learn how to write solvers for combinatorial problems. It is one of the best documents in the documentation of Mozart. I advise you to read it carefully.

Don't hesitate to ask if you are experiencing problems.

Cheers,
raph

_________________________________________________________________________________
mozart-users mailing list                               
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users

Reply via email to