Re: [eclipse-clp-users] timeout in bb_min/3

From: Marco Gavanelli <marco.gavanelli_at_...17...>
Date: Thu, 18 Feb 2010 16:20:02 +0100
Amine Marref wrote:
> Thanks Marco,
> I have substituted ";" with "or" and it works. I thought that they are equivalent like "," and "and" are equivalent (I hope they are).

they are logically equivalent, but they have a different operational 
semantics (they do different things).

> I always wondered what when to use ";", when to use "or", and when to use multiple definitions of a predicate e.g. "con(X):-X#>0. \n con(X):-X#<0."

The operator ';' is equivalent to multiple clauses, i.e.,


is the same as

con(X):- (X#>0 ; X#<0).

If you write, instead, 'X$>0 or X $< 0' ECLiPSe imposes two ternary 
constraints; the first is


meaning that Boolean1 takes value 1 if and only if X$>0,
while it takes value 0 otherwise. In the same way, the second constraint 


Now ECLiPSe imposes some constraint saying that at least one amongst 
Boolean1 and Boolean2 must be true (value 1); e.g.:

	Boolean1+Boolean2 $>= 1.


Marco Gavanelli, Ph.D. in Computer Science
Dept of Engineering
University of Ferrara
Received on Thu Feb 18 2010 - 15:20:18 CET

This archive was generated by hypermail 2.3.0 : Sat Aug 24 2019 - 21:14:55 CEST