(json-to-comp-db-exec-and-arguments arguments) → (mv erp exec arguments$)
Function:
(defun json-to-comp-db-exec-and-arguments (arguments) (declare (xargs :guard (json::value-listp arguments))) (b* (((reterr) "" nil) (arguments (json::value-list-fix arguments)) ((when (endp arguments)) (reterr "The arguments array should have at least one element ~ for the name of the executable.")) (exec (first arguments)) ((unless (eq (json::value-kind exec) :string)) (retmsg$ "Expected string type in \"arguments\" array of ~ JSON compilation database entry. Found ~x0 instead." (json::value-kind exec))) (exec-str (json::value-string->get exec)) ((erp arguments$) (json-to-comp-db-arguments (rest arguments)))) (retok exec-str arguments$)))
Theorem:
(defthm stringp-of-json-to-comp-db-exec-and-arguments.exec (b* (((mv acl2::?erp ?exec ?arguments$) (json-to-comp-db-exec-and-arguments arguments))) (stringp exec)) :rule-classes :rewrite)
Theorem:
(defthm comp-db-arg-listp-of-json-to-comp-db-exec-and-arguments.arguments$ (b* (((mv acl2::?erp ?exec ?arguments$) (json-to-comp-db-exec-and-arguments arguments))) (comp-db-arg-listp arguments$)) :rule-classes :rewrite)
Theorem:
(defthm json-to-comp-db-exec-and-arguments-of-value-list-fix-arguments (equal (json-to-comp-db-exec-and-arguments (json::value-list-fix arguments)) (json-to-comp-db-exec-and-arguments arguments)))
Theorem:
(defthm json-to-comp-db-exec-and-arguments-value-list-equiv-congruence-on-arguments (implies (json::value-list-equiv arguments arguments-equiv) (equal (json-to-comp-db-exec-and-arguments arguments) (json-to-comp-db-exec-and-arguments arguments-equiv))) :rule-classes :congruence)