Pretty-print a variable declaration.
Function:
(defun pprint-vardecl (decl level) (declare (xargs :guard (and (vardeclp decl) (natp level)))) (let ((__function__ 'pprint-vardecl)) (declare (ignorable __function__)) (b* (((vardecl decl) decl)) (pprint-line (msg "let ~@0: ~@1 = ~@2;" (pprint-identifier decl.name) (pprint-type decl.type) (pprint-expression decl.init (expr-grade-top))) level))))
Theorem:
(defthm msgp-of-pprint-vardecl (b* ((line (pprint-vardecl decl level))) (msgp line)) :rule-classes :rewrite)
Theorem:
(defthm pprint-vardecl-of-vardecl-fix-decl (equal (pprint-vardecl (vardecl-fix decl) level) (pprint-vardecl decl level)))
Theorem:
(defthm pprint-vardecl-vardecl-equiv-congruence-on-decl (implies (vardecl-equiv decl decl-equiv) (equal (pprint-vardecl decl level) (pprint-vardecl decl-equiv level))) :rule-classes :congruence)
Theorem:
(defthm pprint-vardecl-of-nfix-level (equal (pprint-vardecl decl (nfix level)) (pprint-vardecl decl level)))
Theorem:
(defthm pprint-vardecl-nat-equiv-congruence-on-level (implies (acl2::nat-equiv level level-equiv) (equal (pprint-vardecl decl level) (pprint-vardecl decl level-equiv))) :rule-classes :congruence)