An object-constraint is satisfied if its constraint.expression, when applied to an object, is a true sentence.The "application" of the expression is a syntactic construction that transforms the expression into a KIF predicate. The constraint is satisfied by an object iff the predicate holds for the object.
(<=> (Satisfies-Constraint ?Object ?Constraint) (And (Object-Constraint ?Constraint) (Holds (Denotation (Listof 'Kappa (Listof (The-Free-Variable-In (Constraint.Expression ?Constraint))) (Constraint.Expression ?Constraint))) ?Object)))
(=> (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)))
(= (constraint.expression c1) (quote (= (f ?x) (* (m ?x) (a ?x)))))
(= (f body) 20)
(= (m body) 10)
(= (a body) 2)
(satisfies-constraint body c1)