Ejemplo n.º 1
0
iboolean geq(iboolean x, iboolean y)      // Project the constraint x>=y with respect to x
{	iboolean r;
        r=iboolean(iperhaps);
        if (y.value==empty)  r=iboolean(empty);
	if (y.value==itrue) r=iboolean(itrue);
        return Inter(x,r);
}
Ejemplo n.º 2
0
iboolean And(iboolean x, iboolean y)
{	
	if ((x.value == iempty)||(y.value == iempty)) return iboolean(iempty);
	if ((x.value == ifalse)||(y.value == ifalse)) return iboolean(ifalse);
	if ((x.value == iperhaps)||(y.value == iperhaps)) return iboolean(iperhaps);
	return iboolean(itrue);
}
Ejemplo n.º 3
0
// Project the constraint x>=y with respect to x
iboolean geq(iboolean x, iboolean y)      
{	
	iboolean r;
	r = iboolean(iperhaps);
	if (y.value == iempty) r = iboolean(iempty);
	if (y.value == itrue) r = iboolean(itrue);
	return Inter(x,r);
}
Ejemplo n.º 4
0
iboolean Union(iboolean x, iboolean y)
{	
	if (x.value == iempty) return y.value;
	if (y.value == iempty) return x.value;
	if (x.value == y.value) return x.value;
	return iboolean(iperhaps);
}
Ejemplo n.º 5
0
iboolean Inter(iboolean x, iboolean y)
{
	if (x.value == y.value) return x.value;
	if (x.value == iperhaps) return y.value;
	if (y.value == iperhaps) return x.value;
	return iboolean(iempty);
}
Ejemplo n.º 6
0
iboolean Xor(iboolean x, iboolean y)
{	if (x.value == empty)   return empty;
	if (y.value == empty)   return empty;
	if (x.value == iperhaps)   return iperhaps;
	if (y.value == iperhaps)   return iperhaps;
	if (x.value == y.value)   return ifalse;
	return iboolean(itrue);
}
Ejemplo n.º 7
0
iboolean leq(iboolean x, iboolean y)      // Project the constraint x<=y with respect to x
{	iboolean r;
        r=iboolean(iperhaps);
        if (y.value==empty)  r=iboolean(empty);
	if (y.value==ifalse) r=iboolean(ifalse);
        return Inter(x,r);
/*                               a     &&    (implique b)
1*0=\empty                       1     &&      0
1*1=1                            1     &&     [0,1]
1*[0,1]=1                        1     &&     [0,1]
0*0=0                            0     &&      0
0*1=0                            0     &&      [0,1]
0*[0,1]=0                        0     &&      [0,1]
[0,1]*0=0                        [0,1] &&       0
[0,1]*1=[0,1]                    [0,1] &&      [0,1]
[0,1]*[0,1]=[0,1]                [0,1] &&     [0,1]
*/
}
Ejemplo n.º 8
0
// Project the constraint x<=y with respect to x
iboolean leq(iboolean x, iboolean y)      
{	
	iboolean r;
	r = iboolean(iperhaps);
	if (y.value == iempty)  r = iboolean(iempty);
	if (y.value == ifalse) r = iboolean(ifalse);
	return Inter(x,r);
	/*                               a     &&    (implique b)
	1*0=\iempty                       1     &&      0
	1*1=1                            1     &&     [0,1]
	1*[0,1]=1                        1     &&     [0,1]
	0*0=0                            0     &&      0
	0*1=0                            0     &&      [0,1]
	0*[0,1]=0                        0     &&      [0,1]
	[0,1]*0=0                        [0,1] &&       0
	[0,1]*1=[0,1]                    [0,1] &&      [0,1]
	[0,1]*[0,1]=[0,1]                [0,1] &&     [0,1]
	*/
}
Ejemplo n.º 9
0
iboolean operator! (iboolean& x)
{	if (x.value == itrue) return iboolean(ifalse);
	if (x.value == ifalse) return iboolean(itrue);
	return x;
}