(stv-combine-into-snapshots in-alists out-alists int-alists) → snapshots
Function:
(defun stv-combine-into-snapshots (in-alists out-alists int-alists) (declare (xargs :guard (and (true-list-listp in-alists) (true-list-listp out-alists) (true-list-listp int-alists)))) (declare (xargs :guard (and (same-lengthp in-alists out-alists) (same-lengthp in-alists int-alists)))) (let ((__function__ 'stv-combine-into-snapshots)) (declare (ignorable __function__)) (b* (((when (atom in-alists)) nil) (snapshot1 (append (car in-alists) (car out-alists) (car int-alists)))) (cons snapshot1 (stv-combine-into-snapshots (cdr in-alists) (cdr out-alists) (cdr int-alists))))))
Theorem:
(defthm cons-list-listp-of-stv-combine-into-snapshots (implies (and (cons-list-listp in-alists) (cons-list-listp out-alists) (cons-list-listp int-alists)) (b* ((snapshots (stv-combine-into-snapshots in-alists out-alists int-alists))) (cons-list-listp snapshots))) :rule-classes :rewrite)