Macro (name) for introducing a function with given enablement and non-executability.
Function:
(defun function-intro-macro (enable non-executable) (declare (xargs :guard (and (booleanp enable) (booleanp non-executable)))) (let ((__function__ 'function-intro-macro)) (declare (ignorable __function__)) (if enable (if non-executable 'defun-nx 'defun) (if non-executable 'defund-nx 'defund))))
Theorem:
(defthm return-type-of-function-intro-macro (b* ((macro (function-intro-macro enable non-executable))) (member-eq macro '(defun defund defun-nx defund-nx))) :rule-classes :rewrite)