(parse-vl-json-opts-bundle getopt::longnames args getopt::acc getopt::seen) → (mv getopt::errmsg getopt::acc getopt::seen rest)
Function:
(defun parse-vl-json-opts-bundle (getopt::longnames args getopt::acc getopt::seen) (declare (xargs :guard (and (string-listp getopt::longnames) (string-listp args) (vl-json-opts-p getopt::acc) (string-listp getopt::seen)))) (let ((__function__ 'parse-vl-json-opts-bundle)) (declare (ignorable __function__)) (b* (((when (atom getopt::longnames)) (mv nil getopt::acc getopt::seen args)) ((mv getopt::err getopt::acc rest) (parse-vl-json-opts-long (car getopt::longnames) nil args getopt::acc getopt::seen)) ((when getopt::err) (mv getopt::err getopt::acc getopt::seen rest)) (getopt::seen (cons (car getopt::longnames) getopt::seen))) (parse-vl-json-opts-bundle (cdr getopt::longnames) rest getopt::acc getopt::seen))))
Theorem:
(defthm vl-json-opts-p-of-parse-vl-json-opts-bundle.acc (implies (force (vl-json-opts-p getopt::acc)) (b* (((mv getopt::?errmsg getopt::?acc getopt::?seen common-lisp::?rest) (parse-vl-json-opts-bundle getopt::longnames args getopt::acc getopt::seen))) (vl-json-opts-p getopt::acc))) :rule-classes :rewrite)
Theorem:
(defthm string-listp-of-parse-vl-json-opts-bundle.seen (implies (and (force (string-listp getopt::longnames)) (force (string-listp getopt::seen))) (b* (((mv getopt::?errmsg getopt::?acc getopt::?seen common-lisp::?rest) (parse-vl-json-opts-bundle getopt::longnames args getopt::acc getopt::seen))) (string-listp getopt::seen))) :rule-classes :rewrite)
Theorem:
(defthm string-listp-of-parse-vl-json-opts-bundle.rest (implies (force (string-listp args)) (b* (((mv getopt::?errmsg getopt::?acc getopt::?seen common-lisp::?rest) (parse-vl-json-opts-bundle getopt::longnames args getopt::acc getopt::seen))) (string-listp rest))) :rule-classes :rewrite)
Theorem:
(defthm parse-vl-json-opts-bundle-makes-progress (<= (len (mv-nth 3 (parse-vl-json-opts-bundle getopt::longnames args getopt::acc getopt::seen))) (len args)) :rule-classes ((:rewrite) (:linear)))