Create the temporary C code variable names for a whole list of AIGs.
(aig2c-maketemps-list x config tempmap db) → (mv new-map new-db)
This just extends aig2c-maketemps to an AIG list.
Function:
(defun aig2c-maketemps-list (x config tempmap db) (declare (xargs :guard (and (aig2c-config-p config) (string-listp (alist-vals tempmap)) (vl::vl-namedb-p db)))) (let ((__function__ 'aig2c-maketemps-list)) (declare (ignorable __function__)) (b* (((when (atom x)) (mv tempmap db)) ((mv tempmap db) (aig2c-maketemps (car x) config tempmap db))) (aig2c-maketemps-list (cdr x) config tempmap db))))
Theorem:
(defthm vl-namedb-p-of-aig2c-maketemps-list.new-db (implies (and (force (vl::vl-namedb-p db)) (force (aig2c-config-p config))) (b* (((mv ?new-map ?new-db) (aig2c-maketemps-list x config tempmap db))) (vl::vl-namedb-p new-db))) :rule-classes :rewrite)
Theorem:
(defthm string-listp-of-alist-vals-of-aig2c-maketemps-list (b* (((mv new-map ?new-db) (aig2c-maketemps-list x config tempmap db))) (implies (and (force (string-listp (alist-vals tempmap))) (force (vl::vl-namedb-p db)) (force (aig2c-config-p config))) (string-listp (alist-vals new-map)))))
Theorem:
(defthm aig2c-maketemps-list-monotonic (b* (((mv new-map ?new-db) (aig2c-maketemps-list x config tempmap db))) (implies (subsetp-equal keys (alist-keys tempmap)) (subsetp-equal keys (alist-keys new-map)))))