(aignet-fanins aignet) → fanins
Function:
(defun aignet-fanins (aignet) (declare (xargs :guard (node-listp aignet))) (let ((__function__ 'aignet-fanins)) (declare (ignorable __function__)) (if (atom aignet) nil (if (fanin-node-p (car aignet)) (cons (node-fix (car aignet)) (aignet-fanins (cdr aignet))) (aignet-fanins (cdr aignet))))))
Theorem:
(defthm node-listp-of-aignet-fanins (b* ((fanins (aignet-fanins aignet))) (node-listp fanins)) :rule-classes :rewrite)
Theorem:
(defthm fanin-count-of-aignet-fanins (b* ((?fanins (aignet-fanins aignet))) (equal (fanin-count fanins) (fanin-count aignet))))
Theorem:
(defthm lookup-id-of-aignet-fanins (b* ((?fanins (aignet-fanins aignet))) (equal (lookup-id n fanins) (aignet-fanins (lookup-id n aignet)))))
Theorem:
(defthm stype-count-of-aignet-fanins (b* ((?fanins (aignet-fanins aignet))) (equal (stype-count stype fanins) (if (equal (ctype stype) (out-ctype)) 0 (stype-count stype aignet)))))
Theorem:
(defthm aignet-fanins-of-node-list-fix-aignet (equal (aignet-fanins (node-list-fix aignet)) (aignet-fanins aignet)))
Theorem:
(defthm aignet-fanins-node-list-equiv-congruence-on-aignet (implies (node-list-equiv aignet aignet-equiv) (equal (aignet-fanins aignet) (aignet-fanins aignet-equiv))) :rule-classes :congruence)
Theorem:
(defthm lookup-stype-of-aignet-fanins (b* ((?fanins (aignet-fanins aignet))) (equal (lookup-stype n stype fanins) (if (equal (ctype stype) (out-ctype)) nil (aignet-fanins (lookup-stype n stype aignet))))))
Theorem:
(defthm car-of-aignet-fanins (b* ((?fanins (aignet-fanins aignet))) (implies (fanin-node-p (car aignet)) (equal (car fanins) (node-fix (car aignet))))))
Theorem:
(defthm cdr-of-aignet-fanins (b* ((?fanins (aignet-fanins aignet))) (implies (fanin-node-p (car aignet)) (equal (cdr fanins) (aignet-fanins (cdr aignet))))))
Theorem:
(defthm aignet-fanins-of-append-non-fanins (implies (equal (fanin-count first) 0) (equal (aignet-fanins (append first x)) (aignet-fanins x))))
Theorem:
(defthm aignet-fanins-idempotent (equal (aignet-fanins (aignet-fanins x)) (aignet-fanins x)))
Theorem:
(defthm fanin-of-aignet-fanins (implies (fanin-node-p (car aignet)) (equal (fanin ftype (aignet-fanins aignet)) (fanin ftype aignet))))
Theorem:
(defthm aignet-fanins-of-cons (equal (aignet-fanins (cons node x)) (if (fanin-node-p node) (cons (node-fix node) (aignet-fanins x)) (aignet-fanins x))))