[ library(cardinal) | Reference Manual | Alphabetic Index ]

complement(?SetVar, ?Complement)

Set complement constraint
SetVar
A variable.
Complement
A variable

Description

Constrain sets so that Complement is the complement set of SetVar. (The universe is taken as the union of their LUBs.).

Fail Conditions

Fails if Complement can not be the set complement of SetVar (in their universe).

Resatisfiable

No.

Examples

?- complement([8,9], []), complement([8,9], [t]).
yes

?- complement([8,9], [8]).
no

?- complement([8,9], N).
N = []

?- sets([X,Y], [],[7,8,9], []), complement(X,Y), 8 `@ Y, glb_poss(X,GX,PX), glb_poss(Y,GY,PY).
GX = [], PX = [7,9], GY = [8], PY = [7,9]

?- sets([X,Y], [],[7,8,9], [cardinality:C]), complement(X,Y), card_labeling([X]).
no

?- sets([X,Y], [],[7,8,9], []), complement(X,Y), X `>= Y, set_labeling(up,[Y]).
Y = [], X = [7,8,9] ;
no

?- sets([X,Y], [],[7,8,9], [minimum:Min]), complement(X,Y), refine(up,X).
no

?- sets([X,Y], [],[7,8,9], []), complement(X,Y), #(X,1), #(Y,CY).
CY = 2

See Also

complement / 3, `$ / 2, `= / 2