(aignet-norm aignet) → norm
Function:
(defun aignet-norm (aignet) (declare (xargs :guard (node-listp aignet))) (let ((__function__ 'aignet-norm)) (declare (ignorable __function__)) (append (aignet-nxsts aignet) (aignet-outputs aignet) (aignet-fanins aignet))))
Theorem:
(defthm node-listp-of-aignet-norm (b* ((norm (aignet-norm aignet))) (node-listp norm)) :rule-classes :rewrite)
Theorem:
(defthm fanin-count-of-aignet-norm (b* ((?norm (aignet-norm aignet))) (equal (fanin-count norm) (fanin-count aignet))))
Theorem:
(defthm stype-count-of-aignet-norm (b* ((?norm (aignet-norm aignet))) (implies (not (equal (stype-fix stype) :nxst)) (equal (stype-count stype norm) (stype-count stype aignet)))))
Theorem:
(defthm lookup-id-of-aignet-norm (b* ((?norm (aignet-norm aignet))) (equal (lookup-id n norm) (aignet-fanins (lookup-id n aignet)))))
Theorem:
(defthm lookup-reg-of-aignet-norm (b* ((?norm (aignet-norm aignet))) (equal (lookup-stype n :reg norm) (aignet-fanins (lookup-stype n :reg aignet)))))
Theorem:
(defthm lookup-pi-of-aignet-norm (b* ((?norm (aignet-norm aignet))) (equal (lookup-stype n :pi norm) (aignet-fanins (lookup-stype n :pi aignet)))))
Theorem:
(defthm po-fanin-of-aignet-norm (b* ((?norm (aignet-norm aignet))) (equal (fanin 0 (lookup-stype n :po norm)) (fanin 0 (lookup-stype n :po aignet)))))
Theorem:
(defthm lookup-reg->nxst-of-aignet-norm (b* ((?norm (aignet-norm aignet))) (equal (lookup-reg->nxst n norm) (lookup-reg->nxst n aignet))))
Theorem:
(defthm aignet-norm-idempotent (equal (aignet-norm (aignet-norm x)) (aignet-norm x)))
Theorem:
(defthm aignet-norm-of-cons (equal (aignet-norm (cons node (aignet-norm x))) (aignet-norm (cons node x))))
Theorem:
(defthm aignet-norm-of-node-list-fix-aignet (equal (aignet-norm (node-list-fix aignet)) (aignet-norm aignet)))
Theorem:
(defthm aignet-norm-node-list-equiv-congruence-on-aignet (implies (node-list-equiv aignet aignet-equiv) (equal (aignet-norm aignet) (aignet-norm aignet-equiv))) :rule-classes :congruence)