(vl-partition-plainargs x inputs outputs inouts unknowns) → (mv inputs outputs inouts unknowns)
Function:
(defun vl-partition-plainargs (x inputs outputs inouts unknowns) (declare (xargs :guard (and (vl-plainarglist-p x) (vl-plainarglist-p inputs) (vl-plainarglist-p outputs) (vl-plainarglist-p inouts) (vl-plainarglist-p unknowns)))) (let ((__function__ 'vl-partition-plainargs)) (declare (ignorable __function__)) (b* (((when (atom x)) (mv (vl-plainarglist-fix inputs) (vl-plainarglist-fix outputs) (vl-plainarglist-fix inouts) (vl-plainarglist-fix unknowns))) (x1 (vl-plainarg-fix (car x))) (dir (vl-plainarg->dir x1)) ((when (eq dir :vl-input)) (vl-partition-plainargs (cdr x) (cons x1 inputs) outputs inouts unknowns)) ((when (eq dir :vl-output)) (vl-partition-plainargs (cdr x) inputs (cons x1 outputs) inouts unknowns)) ((when (eq dir :vl-inout)) (vl-partition-plainargs (cdr x) inputs outputs (cons x1 inouts) unknowns))) (vl-partition-plainargs (cdr x) inputs outputs inouts (cons x1 unknowns)))))
Theorem:
(defthm vl-plainarglist-p-of-vl-partition-plainargs.inputs (b* (((mv ?inputs ?outputs ?inouts ?unknowns) (vl-partition-plainargs x inputs outputs inouts unknowns))) (vl-plainarglist-p inputs)) :rule-classes :rewrite)
Theorem:
(defthm vl-plainarglist-p-of-vl-partition-plainargs.outputs (b* (((mv ?inputs ?outputs ?inouts ?unknowns) (vl-partition-plainargs x inputs outputs inouts unknowns))) (vl-plainarglist-p outputs)) :rule-classes :rewrite)
Theorem:
(defthm vl-plainarglist-p-of-vl-partition-plainargs.inouts (b* (((mv ?inputs ?outputs ?inouts ?unknowns) (vl-partition-plainargs x inputs outputs inouts unknowns))) (vl-plainarglist-p inouts)) :rule-classes :rewrite)
Theorem:
(defthm vl-plainarglist-p-of-vl-partition-plainargs.unknowns (b* (((mv ?inputs ?outputs ?inouts ?unknowns) (vl-partition-plainargs x inputs outputs inouts unknowns))) (vl-plainarglist-p unknowns)) :rule-classes :rewrite)
Theorem:
(defthm vl-partition-plainargs-of-vl-plainarglist-fix-x (equal (vl-partition-plainargs (vl-plainarglist-fix x) inputs outputs inouts unknowns) (vl-partition-plainargs x inputs outputs inouts unknowns)))
Theorem:
(defthm vl-partition-plainargs-vl-plainarglist-equiv-congruence-on-x (implies (vl-plainarglist-equiv x x-equiv) (equal (vl-partition-plainargs x inputs outputs inouts unknowns) (vl-partition-plainargs x-equiv inputs outputs inouts unknowns))) :rule-classes :congruence)
Theorem:
(defthm vl-partition-plainargs-of-vl-plainarglist-fix-inputs (equal (vl-partition-plainargs x (vl-plainarglist-fix inputs) outputs inouts unknowns) (vl-partition-plainargs x inputs outputs inouts unknowns)))
Theorem:
(defthm vl-partition-plainargs-vl-plainarglist-equiv-congruence-on-inputs (implies (vl-plainarglist-equiv inputs inputs-equiv) (equal (vl-partition-plainargs x inputs outputs inouts unknowns) (vl-partition-plainargs x inputs-equiv outputs inouts unknowns))) :rule-classes :congruence)
Theorem:
(defthm vl-partition-plainargs-of-vl-plainarglist-fix-outputs (equal (vl-partition-plainargs x inputs (vl-plainarglist-fix outputs) inouts unknowns) (vl-partition-plainargs x inputs outputs inouts unknowns)))
Theorem:
(defthm vl-partition-plainargs-vl-plainarglist-equiv-congruence-on-outputs (implies (vl-plainarglist-equiv outputs outputs-equiv) (equal (vl-partition-plainargs x inputs outputs inouts unknowns) (vl-partition-plainargs x inputs outputs-equiv inouts unknowns))) :rule-classes :congruence)
Theorem:
(defthm vl-partition-plainargs-of-vl-plainarglist-fix-inouts (equal (vl-partition-plainargs x inputs outputs (vl-plainarglist-fix inouts) unknowns) (vl-partition-plainargs x inputs outputs inouts unknowns)))
Theorem:
(defthm vl-partition-plainargs-vl-plainarglist-equiv-congruence-on-inouts (implies (vl-plainarglist-equiv inouts inouts-equiv) (equal (vl-partition-plainargs x inputs outputs inouts unknowns) (vl-partition-plainargs x inputs outputs inouts-equiv unknowns))) :rule-classes :congruence)
Theorem:
(defthm vl-partition-plainargs-of-vl-plainarglist-fix-unknowns (equal (vl-partition-plainargs x inputs outputs inouts (vl-plainarglist-fix unknowns)) (vl-partition-plainargs x inputs outputs inouts unknowns)))
Theorem:
(defthm vl-partition-plainargs-vl-plainarglist-equiv-congruence-on-unknowns (implies (vl-plainarglist-equiv unknowns unknowns-equiv) (equal (vl-partition-plainargs x inputs outputs inouts unknowns) (vl-partition-plainargs x inputs outputs inouts unknowns-equiv))) :rule-classes :congruence)