An specific question about propagation.

From: Oscar Rosell <Oscar.Rosell_at_cwi.nl>
Date: Thu 04 Apr 2002 10:59:04 AM GMT
Message-Id: <200204041059.g34Ax4E15638@spiegel.ins.cwi.nl>
	Hello,	

	I have this program:

:- lib(fd).

go :-
        AT1 #>=0,
        ST1 #>=0,
        ADur #>=10,
        SDur #>=0,
        ST1 #= AT1,
        ST1 + SDur #>= AT1 + ADur,
        write([AT1,ST1,ADur,SDur]),nl,
        true.

go2 :-
        AT1 #>=0,
        ST1 #>=0,
        ADur #>=10,
        SDur #>=0,
        ST1 #= AT1,
        AT1 + SDur #>= AT1 + ADur, 	% This line is the only one different from go.
        write([AT1,ST1,ADur,SDur]),nl,
        true.

	Executing go, the output is:

	[AT1{[0..10000000]}, AT1, ADur{[10..10000000]}, SDur{[0..10000000]}]

	Executing go2, the output is:

	[AT1{[0..10000000]}, AT1, ADur{[10..10000000]}, SDur{[10..10000000]}]

	I was wondering why the system doesn't reduce SDur's domain in the first case.
	(My experience with ECLiPSe is quite limited.)

	Thanks in advance,

		Oscar Rosell
Received on Thu Apr 04 11:59:52 2002

This archive was generated by hypermail 2.1.8 : Wed 16 Nov 2005 06:07:13 PM GMT GMT