Adding user defined guard to smt-func.
(make-merge-guard content smt-func) → func
Function:
(defun make-merge-guard (content smt-func) (declare (xargs :guard (and (hypothesis-syntax-p content) (func-p smt-func)))) (let ((acl2::__function__ 'make-merge-guard)) (declare (ignorable acl2::__function__)) (b* ((content (hypothesis-syntax-fix content)) (smt-func (func-fix smt-func)) ((cons thm (cons & hints-lst)) content) (hints (car hints-lst)) (new-guard (make-hint-pair :thm thm :hints hints))) (change-func smt-func :guard new-guard))))
Theorem:
(defthm func-p-of-make-merge-guard (b* ((func (make-merge-guard content smt-func))) (func-p func)) :rule-classes :rewrite)