(vl-latchcode-synth-alwayses x scary-regs vars cvtregs delta careful-p vecp) → (mv new-x cvtregs delta)
Function:
(defun vl-latchcode-synth-alwayses (x scary-regs vars cvtregs delta careful-p vecp) (declare (xargs :guard (and (vl-alwayslist-p x) (and (string-listp scary-regs) (setp scary-regs)) (vl-vardecllist-p vars) (string-listp cvtregs) (vl-delta-p delta) (booleanp careful-p)))) (let ((__function__ 'vl-latchcode-synth-alwayses)) (declare (ignorable __function__)) (b* (((when (atom x)) (mv nil cvtregs delta)) ((mv new-car? cvtregs delta) (vl-latchcode-synth-always (car x) scary-regs vars cvtregs delta careful-p vecp)) ((mv new-cdr cvtregs delta) (vl-latchcode-synth-alwayses (cdr x) scary-regs vars cvtregs delta careful-p vecp)) (new-x (if new-car? (cons new-car? new-cdr) new-cdr))) (mv new-x cvtregs delta))))
Theorem:
(defthm vl-alwayslist-p-of-vl-latchcode-synth-alwayses.new-x (implies (and (force (vl-alwayslist-p x)) (force (if (string-listp scary-regs) (setp scary-regs) 'nil)) (force (vl-vardecllist-p vars)) (force (string-listp cvtregs)) (force (vl-delta-p delta)) (force (booleanp careful-p))) (b* (((mv ?new-x ?cvtregs ?delta) (vl-latchcode-synth-alwayses x scary-regs vars cvtregs delta careful-p vecp))) (vl-alwayslist-p new-x))) :rule-classes :rewrite)
Theorem:
(defthm string-listp-of-vl-latchcode-synth-alwayses.cvtregs (implies (and (force (vl-alwayslist-p x)) (force (if (string-listp scary-regs) (setp scary-regs) 'nil)) (force (vl-vardecllist-p vars)) (force (string-listp cvtregs)) (force (vl-delta-p delta)) (force (booleanp careful-p))) (b* (((mv ?new-x ?cvtregs ?delta) (vl-latchcode-synth-alwayses x scary-regs vars cvtregs delta careful-p vecp))) (string-listp cvtregs))) :rule-classes :rewrite)
Theorem:
(defthm vl-delta-p-of-vl-latchcode-synth-alwayses.delta (implies (and (force (vl-alwayslist-p x)) (force (if (string-listp scary-regs) (setp scary-regs) 'nil)) (force (vl-vardecllist-p vars)) (force (string-listp cvtregs)) (force (vl-delta-p delta)) (force (booleanp careful-p))) (b* (((mv ?new-x ?cvtregs ?delta) (vl-latchcode-synth-alwayses x scary-regs vars cvtregs delta careful-p vecp))) (vl-delta-p delta))) :rule-classes :rewrite)