Check if an assignment satisfies a system.
(system-satp sys asg p) → yes/no
All the constraints in the system must be satisfied, in the context of the definitions in the system.
Function:
(defun system-satp (sys asg p) (declare (xargs :guard (and (systemp sys) (assignmentp asg) (primep p)))) (declare (xargs :guard (assignment-wfp asg p))) (let ((__function__ 'system-satp)) (declare (ignorable __function__)) (constraint-list-satp (system->constraints sys) (system->definitions sys) asg p)))
Theorem:
(defthm booleanp-of-system-satp (b* ((yes/no (system-satp sys asg p))) (booleanp yes/no)) :rule-classes :rewrite)