An object-constraint is a constraint on the properties of an object. Such objects can represent arbitrary systems of objects and parameters; this theory puts no restriction on the nature of the object (e.g., it might be a component, or syntatic structure, or a list of parameters). The purpose for distinguishing object constraints from parametric constraints is to allow for a modular scope of a constraint.Formally, an object-constraint is a constraint whose constraint.expression is a sentence with one free variable. That variable is not universally quantified; instead, it stands for the object being constrained. The semantics of the constraint expressions is given by the predicate SATISFIES-CONSTRAINT, which associates the variable with some specific object.
(<=> (Object-Constraint ?Constraint) (And (Constraint ?Constraint) (Value-Type ?Constraint Constraint.Expression Sentence-With-One-Variable) (Value-Cardinality ?Constraint Constraint.Expression 1)))
(Constraint ?Constraint)
(Exhaustive-Subclass-Partition Constraint (Setof Parametric-Constraint Object-Constraint)) (<=> (Object-Constraint ?Constraint) (And (Constraint ?Constraint) (Value-Type ?Constraint Constraint.Expression Sentence-With-One-Variable) (Value-Cardinality ?Constraint Constraint.Expression 1))) (=> (Satisfies-Constraint $X $Y) (Object-Constraint $Y)) (<=> (Satisfies-Constraint ?Object ?Constraint) (And (Object-Constraint ?Constraint) (Holds (Denotation (Listof 'Kappa (Listof (The-Free-Variable-In (Constraint.Expression ?Constraint))) (Constraint.Expression ?Constraint))) ?Object)))