**Defined in theory: Slot-constraint-sugar****Source code: slot-constraint-sugar.lisp**

**Documentation:**HAS-VALUES is a way to state the values of a slot on an instance. Its third arguyment is a set, so that one can specify several values at once. For example, (HAS-VALUES i R (setof v_1 v_2 v_3)) means that slot R applied to domain instance i maps to values v_1, v_2, and v_3. In other words, R(i,v_1), R(i,v_2), and R(i,v_3) hold.

There is no closed-world assumption implied; there may be other values for the specified slot on a given domain instance.

**Arity:**3

(Nth-Domain Has-Values 3 Set) (Nth-Domain Has-Values 2 Binary-Relation) (<=> (Has-Values ?Instance ?Binary-Relation ?Set-Of-Values) (And (Binary-Relation ?Binary-Relation) (Set ?Set-Of-Values) (Forall (?Instance) (<=> (Member ?Value ?Set-Of-Values) (Has-Value ?Instance ?Binary-Relation ?Value)))))