(vl-pp-paramdecl x &key (ps 'ps)) → ps
Function:
(defun vl-pp-paramdecl-fn (x ps) (declare (xargs :stobjs (ps))) (declare (xargs :guard (vl-paramdecl-p x))) (let ((__function__ 'vl-pp-paramdecl)) (declare (ignorable __function__)) (b* (((vl-paramdecl x) x)) (vl-ps-seq (vl-progindent) (if x.atts (vl-ps-seq (vl-pp-atts x.atts) (vl-print " ")) ps) (vl-ps-span "vl_key" (if x.localp (vl-print "localparam ") (vl-print "parameter "))) (vl-paramtype-case x.type (:vl-implicitvalueparam (vl-ps-seq (case x.type.sign (:vl-signed (vl-ps-span "vl_key" (vl-print "signed "))) (:vl-unsigned (vl-ps-span "vl_key" (vl-print "unsigned "))) (otherwise ps)) (if x.type.range (vl-ps-seq (vl-pp-range x.type.range) (vl-print " ")) ps) (vl-print-wirename x.name) (if x.type.default (vl-ps-seq (vl-print " = ") (vl-pp-expr x.type.default)) ps))) (:vl-explicitvalueparam (vl-ps-seq (vl-pp-datatype x.type.type) (vl-print " ") (vl-print-wirename x.name) (let ((udims (vl-datatype->udims x.type.type))) (if (consp udims) (vl-ps-seq (vl-print " ") (vl-pp-dimensionlist udims)) ps)) (if x.type.default (vl-ps-seq (vl-print " = ") (vl-pp-expr x.type.default)) ps))) (:vl-typeparam (vl-ps-seq (vl-ps-span "vl_key" (vl-print "type ")) (vl-print-wirename x.name) (if x.type.default (vl-ps-seq (vl-print " ") (vl-pp-datatype x.type.default)) ps)))) (vl-println ";")))))
Theorem:
(defthm vl-pp-paramdecl-fn-of-vl-paramdecl-fix-x (equal (vl-pp-paramdecl-fn (vl-paramdecl-fix x) ps) (vl-pp-paramdecl-fn x ps)))
Theorem:
(defthm vl-pp-paramdecl-fn-vl-paramdecl-equiv-congruence-on-x (implies (vl-paramdecl-equiv x x-equiv) (equal (vl-pp-paramdecl-fn x ps) (vl-pp-paramdecl-fn x-equiv ps))) :rule-classes :congruence)