(proper-node-listp x) recognizes lists where every element satisfies proper-node-p.
(proper-node-listp x) → std::bool
This is an ordinary deflist. It is
"strict" in that it requires
Function:
(defun proper-node-listp (x) (declare (xargs :guard t)) (let ((__function__ 'proper-node-listp)) (declare (ignorable __function__)) (if (consp x) (and (proper-node-p (car x)) (proper-node-listp (cdr x))) (null x))))
Theorem:
(defthm proper-node-listp-implies-node-listp (implies (proper-node-listp x) (node-listp x)))