Is
(clone-p clone c xs) → *
Function:
(defun clone-p (clone c xs) (declare (xargs :guard (and (natp clone) (natp c) (irv-ballot-p xs)))) (declare (xargs :guard (not (equal clone c)))) (let ((__function__ 'clone-p)) (declare (ignorable __function__)) (if (endp xs) t (and (adjacent-p clone c (car xs)) (clone-p clone c (cdr xs))))))
Theorem:
(defthm clone-p-reflexive (implies (clone-p c clone xs) (clone-p clone c xs)))
Theorem:
(defthm eliminate-candidate-preserves-clone-p (implies (and (clone-p clone c xs) (not (equal id c)) (not (equal id clone)) (irv-ballot-p xs)) (clone-p clone c (eliminate-candidate id xs))))