375 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			375 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								% From lim@scorpio Thu Jun 17 14:09:28 1993
							 | 
						||
| 
								 | 
							
								% adapted for CHRs by thom fruehwirth 930617
							 | 
						||
| 
								 | 
							
								% replaced $= by =:= and then removed '$'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% Rational Constraint Solver Source Module
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% sccsid("@(#)data 1.00             92/06/29").
							 | 
						||
| 
								 | 
							
								% sccscr("@(#)  Copyright 1992 ECRC GmbH ").
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% IDENTIFICATION: examples
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% AUTHOR:         Pierre Lim
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% X + Y =:= 4
							 | 
						||
| 
								 | 
							
								% X - Y =:= 0
							 | 
						||
| 
								 | 
							
								% Answer:
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% X =:= 2, Y =:= 2
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								X + Y =:= 4,
							 | 
						||
| 
								 | 
							
								X - Y =:= 0.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%-8x + 5y + -1z =:= 18,
							 | 
						||
| 
								 | 
							
								%x + -11z + -5y =:= 6,
							 | 
						||
| 
								 | 
							
								%-1x + 5y + 5z =:= 0.
							 | 
						||
| 
								 | 
							
								% Answer:
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% x =:= -12/7, y =:= 23/35, z =:= -1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-8 * X + 5 * Y - Z =:= 18,
							 | 
						||
| 
								 | 
							
								X - 11 * Z - 5 * Y =:= 6,
							 | 
						||
| 
								 | 
							
								-X + 5 * Y + 5 * Z =:= 0. 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%-11z + -5y + x =:= -6,
							 | 
						||
| 
								 | 
							
								%5z + -1x + 5y =:= 0.
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% Answer:
							 | 
						||
| 
								 | 
							
								% 
							 | 
						||
| 
								 | 
							
								% z =:= 1, x =:= 5 * Y + 5, y =:= (unconstrained)
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% Notes:
							 | 
						||
| 
								 | 
							
								% CLP(R) compiler
							 | 
						||
| 
								 | 
							
								% 
							 | 
						||
| 
								 | 
							
								% Y =:= 0.2*X - 1
							 | 
						||
| 
								 | 
							
								% Z =:= 1
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% CHIP compiler
							 | 
						||
| 
								 | 
							
								% Z =:= (1)
							 | 
						||
| 
								 | 
							
								% X =:= (5) + (5) * _r80 
							 | 
						||
| 
								 | 
							
								% Y =:= _r80 
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% My rational constraint solver produces
							 | 
						||
| 
								 | 
							
								% Z =:= 1
							 | 
						||
| 
								 | 
							
								% X =:= 5 * _m277 + 5
							 | 
						||
| 
								 | 
							
								% Y =:= 1 * _m277
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-11*Z - 5*Y + X =:= -6,
							 | 
						||
| 
								 | 
							
								5*Z - X + 5*Y =:= 0.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								% X + -5*Y + -11 * Z =:= -6,
							 | 
						||
| 
								 | 
							
								% -X + 5* Z + 5* Y =:= 0,
							 | 
						||
| 
								 | 
							
								% X + 2* Z + -3* Y =:= 7,
							 | 
						||
| 
								 | 
							
								% 8*X + Z + -5*Y + P =:= 18.
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% Answer: z =:= 1.0, x =:= 5.0, y =:= 0.0, p =:= -23
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								X - 5*Y - 11 * Z =:= -6,
							 | 
						||
| 
								 | 
							
								-X + 5* Z + 5* Y =:= 0,
							 | 
						||
| 
								 | 
							
								X + 2* Z - 3* Y =:= 7,
							 | 
						||
| 
								 | 
							
								8*X + Z - 5*Y + P =:= 18.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%-8x + -1z + 5y =:= -18,
							 | 
						||
| 
								 | 
							
								%x + -5y + -11z =:= -6,
							 | 
						||
| 
								 | 
							
								%-x + 5z + y =:= 0,
							 | 
						||
| 
								 | 
							
								%x + 2z + -3y =:= 7.
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% Answer inconsistent
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-8*X + -1*Z + 5*Y =:= -18,
							 | 
						||
| 
								 | 
							
								X + -5*Y + -11*Z =:= -6,
							 | 
						||
| 
								 | 
							
								-X + 5*Z + Y =:= 0,
							 | 
						||
| 
								 | 
							
								X + 2*Z + -3*Y =:= 7.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% 0 =< X, X =< 10.
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								0 =< X, X =< 10, X =:= 11.              % inconsistent
							 | 
						||
| 
								 | 
							
								0 =< X, X =< 10, X =:= 1.               % X =:= 1
							 | 
						||
| 
								 | 
							
								X =:= (1/2)/(1/2).                        % X =:= 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% Inequality example 1
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								X1 + X2 >= 2,
							 | 
						||
| 
								 | 
							
								-X1 + X2 >= 1,
							 | 
						||
| 
								 | 
							
								X2 =< 3,
							 | 
						||
| 
								 | 
							
								X1 >= 0,
							 | 
						||
| 
								 | 
							
								X2 >= 0.
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% CHIP compiler
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% X1 =:= (1/2) + (-1/2) * _rp105  + (1/2) * _rp78 
							 | 
						||
| 
								 | 
							
								% X2 =:= (3/2) + (1/2) * _rp105  + (1/2) * _rp78 
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								X1 + X2 >= 2,
							 | 
						||
| 
								 | 
							
								-X1 + X2 >= 1,
							 | 
						||
| 
								 | 
							
								X2 =< 3,
							 | 
						||
| 
								 | 
							
								X1 >= 0,
							 | 
						||
| 
								 | 
							
								X2 >= 0.
							 | 
						||
| 
								 | 
							
								% print_store.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% Answer: X =:= 5
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								X >= 5,
							 | 
						||
| 
								 | 
							
								X =< 5.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% x1 + x2 =< 4,
							 | 
						||
| 
								 | 
							
								% 2x1 + 3x2 >= 18,
							 | 
						||
| 
								 | 
							
								% x1 >= 0,
							 | 
						||
| 
								 | 
							
								% x2 >= 0.
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% Answer: inconsistent
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								X1 + X2 =< 4,
							 | 
						||
| 
								 | 
							
								2 * X1 + 3 * X2 >= 18,
							 | 
						||
| 
								 | 
							
								X1 >= 0,
							 | 
						||
| 
								 | 
							
								X2 >= 0.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								X1 =< 50,
							 | 
						||
| 
								 | 
							
								X2 =< 200,
							 | 
						||
| 
								 | 
							
								X1 + 0.2 * X2 =< 72,
							 | 
						||
| 
								 | 
							
								150 * X1 + 25 * X2 =< 10000,
							 | 
						||
| 
								 | 
							
								Z =:= 250 * X1 + 45 * X2.
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% Answer: CLP(R) compiler
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% X1 =:= 0.004*Z - 0.18*X2
							 | 
						||
| 
								 | 
							
								% Z =< 3.33333*X2 + 16666.7
							 | 
						||
| 
								 | 
							
								% Z + 5*X2 =< 18000
							 | 
						||
| 
								 | 
							
								% X2 =< 200
							 | 
						||
| 
								 | 
							
								% Z =< 45*X2 + 12500
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% Answer: CHIP compiler
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% Z =:= (17000) + (-9/5) * _rp161  + (20) * _rp101 
							 | 
						||
| 
								 | 
							
								% X1 =:= (50) + (-1) * _rp101 
							 | 
						||
| 
								 | 
							
								% X2 =:= (100) + (-1/25) * _rp161  + (6) * _rp101 
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% First 3 constraints
							 | 
						||
| 
								 | 
							
								% X1 =:= (50) + (-1) * _rp67 
							 | 
						||
| 
								 | 
							
								% X2 =:= (110) + (-5) * _rp105  + (5) * _rp67
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								X1 =< 50,
							 | 
						||
| 
								 | 
							
								X2 =< 200,
							 | 
						||
| 
								 | 
							
								X1 + 2/10 * X2 =< 72,
							 | 
						||
| 
								 | 
							
								150 * X1 + 25 * X2 =< 10000,
							 | 
						||
| 
								 | 
							
								Z =:= 250 * X1 + 45 * X2.
							 | 
						||
| 
								 | 
							
								%,output.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								Eclipse input:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								X1 =< 50,
							 | 
						||
| 
								 | 
							
								X2 =< 200,
							 | 
						||
| 
								 | 
							
								X1 + 2/10 * X2 =< 72,
							 | 
						||
| 
								 | 
							
								150 * X1 + 25 * X2 =< 10000,
							 | 
						||
| 
								 | 
							
								Z =:= 250 * X1 + 45 * X2.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% X4 =< 1 + 3 * X3,
							 | 
						||
| 
								 | 
							
								% X4 =< 4/13+18/13*X3,
							 | 
						||
| 
								 | 
							
								% X4 >= -1/8+9/8*X3,
							 | 
						||
| 
								 | 
							
								% X4 >= -2+6*X3,
							 | 
						||
| 
								 | 
							
								% X4 >= -1/11+9/11*X3
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								X4 - 3 * X3 =< 1,
							 | 
						||
| 
								 | 
							
								X4 - 1.38462 * X3 =< 0.307692,
							 | 
						||
| 
								 | 
							
								X4 - 1.125 * X3 >= -0.125,
							 | 
						||
| 
								 | 
							
								X4 - 6 * X3 >= -2,
							 | 
						||
| 
								 | 
							
								X4 - 0.818182 * X3 >= -0.0909091.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								X4 - 3 * X3 =< 1,
							 | 
						||
| 
								 | 
							
								X4 - 18/13 * X3 =< 4/13,
							 | 
						||
| 
								 | 
							
								X4 - 9/8 * X3 >= -1/8,
							 | 
						||
| 
								 | 
							
								X4 - 6 * X3 >= -2,
							 | 
						||
| 
								 | 
							
								X4 - 9/11 * X3 >= -1/11.
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% CHIP Compiler
							 | 
						||
| 
								 | 
							
								% X4 =:= (-2/7) + (-13/7) * _rp145  + (6/7) * _rp118 
							 | 
						||
| 
								 | 
							
								% X3 =:= (-3/7) + (-13/21) * _rp145  + (13/21) * _rp118 
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% CLP(R) Compiler
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% 0.818182*X3 =< X4 + 0.0909091
							 | 
						||
| 
								 | 
							
								% 6*X3 =< X4 + 2
							 | 
						||
| 
								 | 
							
								% 1.125*X3 =< X4 + 0.125
							 | 
						||
| 
								 | 
							
								% X4 =< 1.38462*X3 + 0.307692
							 | 
						||
| 
								 | 
							
								% X4 =< 3*X3 + 1
							 | 
						||
| 
								 | 
							
								% 
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								X4 =< 1+3*X3,
							 | 
						||
| 
								 | 
							
								X4 =< 4/13+18/13*X3,
							 | 
						||
| 
								 | 
							
								X4 >= -1/8+9/8*X3,
							 | 
						||
| 
								 | 
							
								X4 >= -2+6*X3,
							 | 
						||
| 
								 | 
							
								X4 >= -1/11+9/11*X3.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% CHIP Compiler
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% X3 =:= (1/9) * _rp256  + (5/6) * _rp229  + (-4/9) * _rp202  + (-1/2) * _rp159 
							 | 
						||
| 
								 | 
							
								% X4 =:= (2/3) * _rp229  + (-1/3) * _rp202 
							 | 
						||
| 
								 | 
							
								% X1 =:= (1/9) * _rp256  + (1/3) * _rp229  + (-1/9) * _rp202  + (-1/3) * _rp159 
							 | 
						||
| 
								 | 
							
								% X2 =:= (1) + (-1) * _rp256  + (-13/6) * _rp229  + (1/3) * _rp202  +
							 | 
						||
| 
								 | 
							
								%       (3/2) * _rp159 
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								%example([X1,X2,X3,X4]) :-
							 | 
						||
| 
								 | 
							
								  12*X1 +   X2 -  3*X3 +    X4 =< 1,
							 | 
						||
| 
								 | 
							
								 -36*X1 - 2*X2 + 18*X3 - 11*X4 =< -2,
							 | 
						||
| 
								 | 
							
								 -18*X1 -   X2 +  9*X3 -  7*X4 =< -1,
							 | 
						||
| 
								 | 
							
								  45*X1 + 4*X2 - 18*X3 + 13*X4 =< 4,
							 | 
						||
| 
								 | 
							
								     X1                        >= 0,
							 | 
						||
| 
								 | 
							
								            X2                 >= 0.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% Small Scheduling Problem
							 | 
						||
| 
								 | 
							
								% CHIP Compiler
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% SA =:= (-7) + (1) * _r218  + (-1) * _rp211 
							 | 
						||
| 
								 | 
							
								% SB =:= _r218 
							 | 
						||
| 
								 | 
							
								% SD =:= (1) * _r218  + (1) * _rp238  + (-1) * _rp211 
							 | 
						||
| 
								 | 
							
								% SC =:= (3) + (1) * _r218  + (1) * _rp264 
							 | 
						||
| 
								 | 
							
								% SF =:= (8) + (1) * _r218  + (1) * _rp407  + (1) * _rp238  + (-1) * _rp211 
							 | 
						||
| 
								 | 
							
								% SH =:= (9) + (1) * _r218  + (1) * _rp471  + (1) * _rp407  + (1) * _rp238  +
							 | 
						||
| 
								 | 
							
								%      (-1) * _rp211 
							 | 
						||
| 
								 | 
							
								% SG =:= (8) + (1) * _r218  + (1) * _rp374  + (1) * _rp238  + (-1) * _rp211 
							 | 
						||
| 
								 | 
							
								% SE =:= (8) + (1) * _r218  + (1) * _rp314  + (1) * _rp238  + (-1) * _rp211 
							 | 
						||
| 
								 | 
							
								% SJ =:= (12) + (1) * _r218  + (1) * _rp506  + (1) * _rp471  + (1) * _rp407  +
							 | 
						||
| 
								 | 
							
								%      (1) * _rp238  + (-1) * _rp211 
							 | 
						||
| 
								 | 
							
								% Send =:= (15) + (1) * _r218  + (1) * _rp674  + (1) * _rp607  + (1) * _rp506  +
							 | 
						||
| 
								 | 
							
								%        (1) * _rp471  + (1) * _rp407  + (1) * _rp238  + (-1) * _rp211 
							 | 
						||
| 
								 | 
							
								% SK =:= (14) + (1) * _r218  + (1) * _rp607  + (1) * _rp506  + (1) * _rp471  +
							 | 
						||
| 
								 | 
							
								%      (1) * _rp407  + (1) * _rp238  + (-1) * _rp211 
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								SB >= SA + 7,
							 | 
						||
| 
								 | 
							
								SD >= SA + 7,
							 | 
						||
| 
								 | 
							
								SC >= SB + 3,
							 | 
						||
| 
								 | 
							
								SE >= SC + 1,
							 | 
						||
| 
								 | 
							
								SE >= SD + 8,
							 | 
						||
| 
								 | 
							
								SG >= SC + 1,
							 | 
						||
| 
								 | 
							
								SG >= SD + 8,
							 | 
						||
| 
								 | 
							
								SF >= SD + 8,
							 | 
						||
| 
								 | 
							
								SF >= SC + 1,
							 | 
						||
| 
								 | 
							
								SH >= SF + 1,
							 | 
						||
| 
								 | 
							
								SJ >= SH + 3,
							 | 
						||
| 
								 | 
							
								SK >= SG + 1,
							 | 
						||
| 
								 | 
							
								SK >= SE + 2,
							 | 
						||
| 
								 | 
							
								SK >= SJ + 2,
							 | 
						||
| 
								 | 
							
								Send >= SK + 1.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% Example from paper by De Backer and Beringer
							 | 
						||
| 
								 | 
							
								% ``A CLP language handling disjunctions of linear constraints''
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								% ConstrainedMin[ x, {3x -2y =< 4, 3x+2y =< 28, 5 =< y},{x,y}]
							 | 
						||
| 
								 | 
							
								% {0, {x -> 0, y -> 5}}
							 | 
						||
| 
								 | 
							
								% ConstrainedMax[ x, {3x -2y =< 4, 3x+2y =< 28, 5 =< y},{x,y}]
							 | 
						||
| 
								 | 
							
								%  16        16
							 | 
						||
| 
								 | 
							
								% {--, {x -> --, y -> 6}}
							 | 
						||
| 
								 | 
							
								%  3         3
							 | 
						||
| 
								 | 
							
								% ConstrainedMin[y, {3x -2y =< 4, 3x+2y =< 28, 5 =< y},{x,y}]
							 | 
						||
| 
								 | 
							
								%           14
							 | 
						||
| 
								 | 
							
								% {5, {x -> --, y -> 5}}
							 | 
						||
| 
								 | 
							
								%           3
							 | 
						||
| 
								 | 
							
								% ConstrainedMax[ y, {3x -2y =< 4, 3x+2y =< 28, 5 =< y},{x,y}]
							 | 
						||
| 
								 | 
							
								% {14, {x -> 0, y -> 14}}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								3*X - 2*Y =< -4, 3*X + 2*Y =< 28, 5 =< Y. %, rmax(X).
							 | 
						||
| 
								 | 
							
								%3*X - 2*Y >= -4, 3*X + 2*Y =< 28, 5 =< Y.%, rmin(X).
							 | 
						||
| 
								 | 
							
								%3*X - 2*Y =< -4, 3*X + 2*Y =< 28, 5 =< Y.%, rmax(Y).
							 | 
						||
| 
								 | 
							
								%3*X - 2*Y =< -4, 3*X + 2*Y =< 28, 5 =< Y.%, rmin(Y).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								X11 + X12 + X13 + X14 + X15 =:= 1000,
							 | 
						||
| 
								 | 
							
								X21 + X22 + X23 + X24 + X25 =:= 1000,
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								4*X11 + 5*X21 - Y21 - Z21 =< 0,
							 | 
						||
| 
								 | 
							
								-4*X12 - 5*X22 + Y22 + Z22 =:= 0,
							 | 
						||
| 
								 | 
							
								-4*X13 - 5*X23 + Y24 - Y25 + Z24 - Z25 =:= 0,
							 | 
						||
| 
								 | 
							
								Y21 + Z21 =:= 0.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								X1>=0,%positive(X1),
							 | 
						||
| 
								 | 
							
								X2>=0,%positive(X2),
							 | 
						||
| 
								 | 
							
								Y1>=0,%positive(Y1),
							 | 
						||
| 
								 | 
							
								Y2>=0,%positive(Y2),
							 | 
						||
| 
								 | 
							
								Y1 =:= X1 - X2,
							 | 
						||
| 
								 | 
							
								Y2 =:= X2 - X1.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								U1-Z+W =:= 0,
							 | 
						||
| 
								 | 
							
								U2 +Z-V =:= 0,
							 | 
						||
| 
								 | 
							
								U3 -W + V =:= 0,
							 | 
						||
| 
								 | 
							
								U1 >=0,
							 | 
						||
| 
								 | 
							
								U2 >= 0,
							 | 
						||
| 
								 | 
							
								U3 >= 0,
							 | 
						||
| 
								 | 
							
								Z >= 0,
							 | 
						||
| 
								 | 
							
								V >= 0,
							 | 
						||
| 
								 | 
							
								W >= 0.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								U1-Z+2*W =:= 0,
							 | 
						||
| 
								 | 
							
								U2 +2*Z-V =:= 0,
							 | 
						||
| 
								 | 
							
								U3-W+2*V =:= 0,
							 | 
						||
| 
								 | 
							
								U1 >= 0,
							 | 
						||
| 
								 | 
							
								U2 >= 0,
							 | 
						||
| 
								 | 
							
								U3 >= 0,
							 | 
						||
| 
								 | 
							
								Z >= 0,
							 | 
						||
| 
								 | 
							
								V >= 0,
							 | 
						||
| 
								 | 
							
								W >= 0.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								X + 2*Z >=0,
							 | 
						||
| 
								 | 
							
								-Z +Y >= 1,
							 | 
						||
| 
								 | 
							
								-Y >= 2.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 |