Make relative directories absolute in directory-valued arguments of a compilation-database.
Function:
(defun comp-db-absolute-dirs (db state) (declare (xargs :stobjs (state))) (declare (xargs :guard (comp-dbp db))) (b* ((db (comp-db-fix db)) ((when (endp db)) nil) (file (car (first db))) ((comp-db-entry entry) (cdr (first db))) (arguments (comp-db-arguments-absolute-dirs entry.directory entry.arguments state)) (entry (change-comp-db-entry entry :arguments arguments))) (acons file entry (comp-db-absolute-dirs (rest db) state))))
Theorem:
(defthm comp-dbp-of-comp-db-absolute-dirs (b* ((db$ (comp-db-absolute-dirs db state))) (comp-dbp db$)) :rule-classes :rewrite)
Theorem:
(defthm comp-db-absolute-dirs-of-comp-db-fix-db (equal (comp-db-absolute-dirs (comp-db-fix db) state) (comp-db-absolute-dirs db state)))
Theorem:
(defthm comp-db-absolute-dirs-comp-db-equiv-congruence-on-db (implies (comp-db-equiv db db-equiv) (equal (comp-db-absolute-dirs db state) (comp-db-absolute-dirs db-equiv state))) :rule-classes :congruence)