Many FRSs provide some sort of run-time slot-value constraint checking. Each time a slot value is changed (either locally, or through a change to inherited values), the FRS evaluates constraints that have been defined by the user to specify what values are allowable for a given slot.
Constraint checking is described by two behaviors: :constraint-checking-time controls when constraint checking should be performed, and :constraint-report-time controls when constraint violations should be reported to the user, as follows.
Allowable values of :constraint-checking-time are:
Acceptable values of :constraint-report-time are: