Recognizer for argument-syntax.
(argument-syntax-p term) → syntax-good?
Function:
(defun argument-syntax-p (term) (declare (xargs :guard t)) (let ((acl2::__function__ 'argument-syntax-p)) (declare (ignorable acl2::__function__)) (or (and (atom term) (equal term nil)) (and (true-listp term) (car term) (not (cdr term)) (symbolp (car term))) (and (true-listp term) (car term) (cadr term) (not (cddr term)) (symbolp (car term)) (smt-typep (cadr term))) (and (true-listp term) (car term) (cadr term) (not (cddddr term)) (symbolp (car term)) (smt-typep (cadr term)) (equal ':hints (caddr term)) (hints-syntax-p (cadddr term))))))
Theorem:
(defthm booleanp-of-argument-syntax-p (b* ((syntax-good? (argument-syntax-p term))) (booleanp syntax-good?)) :rule-classes :rewrite)