(vl-expr-has-patterns x) → *
Function:
(defun vl-expr-has-patterns (x) (declare (xargs :guard (vl-expr-p x))) (let ((__function__ 'vl-expr-has-patterns)) (declare (ignorable __function__)) (b* (((when (vl-atom-p x)) nil) ((vl-nonatom x)) ((when (member x.op '(:vl-pattern-positional :vl-pattern-keyvalue :vl-pattern-multi :vl-pattern-type))) t) ((when (eq x.op :vl-qmark)) (or (vl-expr-has-patterns (second x.args)) (vl-expr-has-patterns (third x.args))))) nil)))
Theorem:
(defthm vl-expr-has-patterns-of-vl-expr-fix-x (equal (vl-expr-has-patterns (vl-expr-fix x)) (vl-expr-has-patterns x)))
Theorem:
(defthm vl-expr-has-patterns-vl-expr-equiv-congruence-on-x (implies (vl-expr-equiv x x-equiv) (equal (vl-expr-has-patterns x) (vl-expr-has-patterns x-equiv))) :rule-classes :congruence)