Perform skip-detection for a single expression.
(sd-patalist-compare dom x y ctx) → probs
We recur over
Function:
(defun sd-patalist-compare (dom x y ctx) (declare (xargs :guard (and (sd-patalist-p x) (sd-patalist-p y) (vl-context1-p ctx)))) (let ((__function__ 'sd-patalist-compare)) (declare (ignorable __function__)) (if (atom dom) nil (let ((first (sd-keylist-find-skipped (cdr (hons-get (car dom) x)) (cdr (hons-get (car dom) y)) ctx)) (rest (sd-patalist-compare (cdr dom) x y ctx))) (if first (cons first rest) rest)))))
Theorem:
(defthm sd-problemlist-p-of-sd-patalist-compare (implies (and (force (sd-patalist-p x)) (force (sd-patalist-p y)) (force (vl-context1-p ctx))) (b* ((probs (sd-patalist-compare dom x y ctx))) (sd-problemlist-p probs))) :rule-classes :rewrite)