Drop compilation-database entries which do not apply to
Function:
(defun comp-db-drop-non-c (db) (declare (xargs :guard (comp-dbp db))) (b* ((db (comp-db-fix db)) ((when (endp db)) nil) (file (acl2::str-fix (car (first db)))) (entry (comp-db-entry-fix (cdr (first db)))) (keep (and (str::strsuffixp ".c" file) (member-equal (make-comp-db-arg :name "-c" :separator "" :value nil) (comp-db-entry->arguments entry))))) (if keep (acons file entry (comp-db-drop-non-c (rest db))) (comp-db-drop-non-c (rest db)))))
Theorem:
(defthm comp-dbp-of-comp-db-drop-non-c (b* ((db$ (comp-db-drop-non-c db))) (comp-dbp db$)) :rule-classes :rewrite)
Theorem:
(defthm comp-db-drop-non-c-of-comp-db-fix-db (equal (comp-db-drop-non-c (comp-db-fix db)) (comp-db-drop-non-c db)))
Theorem:
(defthm comp-db-drop-non-c-comp-db-equiv-congruence-on-db (implies (comp-db-equiv db db-equiv) (equal (comp-db-drop-non-c db) (comp-db-drop-non-c db-equiv))) :rule-classes :congruence)