Process the
(evmac-process-input-hints hints ctx state) → (mv erp hints$ state)
This is for event macros that have a
See the discussion in evmac-input-hints-p
about the possible forms of the
If the
If the
Note that if the input is (perhaps by default)
Function:
(defun evmac-process-input-hints (hints ctx state) (declare (xargs :stobjs (state))) (declare (xargs :guard t)) (let ((__function__ 'evmac-process-input-hints)) (declare (ignorable __function__)) (if (keyword-value-listp hints) (b* ((hints$ (keyword-value-list-to-alist hints)) (kwds (strip-cars hints$)) ((er &) (ensure-list-has-no-duplicates$ kwds (msg "The list of keywords ~x0 ~ in the keyword-value list ~ that forms the :HINTS input" kwds) t nil))) (value hints$)) (if (true-listp hints) (value hints) (er-soft+ ctx t nil "The :HINTS input must be ~ either a keyword-value list or a true list, ~ but it is ~x0 instead, which is neither." hints)))))
Theorem:
(defthm evmac-input-hints-p-of-evmac-process-input-hints.hints$ (b* (((mv ?erp ?hints$ ?state) (evmac-process-input-hints hints ctx state))) (evmac-input-hints-p hints$)) :rule-classes :rewrite)