Gather all of the values throughout an expression.
(vl-expr-values x) → values
We simply gather all of the values of all of the literals throughout the expression, with repetition. The resulting list may contain any vl-value.
Theorem:
(defthm return-type-of-vl-expr-values.values (b* ((common-lisp::?values (vl-expr-values x))) (vl-valuelist-p values)) :rule-classes :rewrite)
Theorem:
(defthm return-type-of-vl-exprlist-values.values (b* ((common-lisp::?values (vl-exprlist-values x))) (vl-valuelist-p values)) :rule-classes :rewrite)
Theorem:
(defthm true-listp-of-vl-expr-values (true-listp (vl-expr-values x)) :rule-classes :type-prescription)
Theorem:
(defthm true-listp-of-vl-exprlist-values (true-listp (vl-exprlist-values x)) :rule-classes :type-prescription)
Theorem:
(defthm vl-expr-values-nrev-removal (equal (vl-expr-values-nrev x nrev) (append nrev (vl-expr-values x))))
Theorem:
(defthm vl-exprlist-values-nrev-removal (equal (vl-exprlist-values-nrev x nrev) (append nrev (vl-exprlist-values x))))
Theorem:
(defthm vl-expr-values-of-vl-expr-fix-x (equal (vl-expr-values (vl-expr-fix x)) (vl-expr-values x)))
Theorem:
(defthm vl-exprlist-values-of-vl-exprlist-fix-x (equal (vl-exprlist-values (vl-exprlist-fix x)) (vl-exprlist-values x)))
Theorem:
(defthm vl-expr-values-vl-expr-equiv-congruence-on-x (implies (vl-expr-equiv x x-equiv) (equal (vl-expr-values x) (vl-expr-values x-equiv))) :rule-classes :congruence)
Theorem:
(defthm vl-exprlist-values-vl-exprlist-equiv-congruence-on-x (implies (vl-exprlist-equiv x x-equiv) (equal (vl-exprlist-values x) (vl-exprlist-values x-equiv))) :rule-classes :congruence)