Print a constant.
Function:
(defun print-const (const pstate) (declare (xargs :guard (and (constp const) (pristatep pstate)))) (declare (xargs :guard (const-aidentp const (pristate->gcc pstate)))) (let ((__function__ 'print-const)) (declare (ignorable __function__)) (const-case const :int (print-iconst const.iconst pstate) :float (print-fconst const.fconst pstate) :enum (print-ident const.ident pstate) :char (print-cconst const.cconst pstate))))
Theorem:
(defthm pristatep-of-print-const (b* ((new-pstate (print-const const pstate))) (pristatep new-pstate)) :rule-classes :rewrite)
Theorem:
(defthm pristate->gcc-of-print-const (b* ((?new-pstate (print-const const pstate))) (equal (pristate->gcc new-pstate) (pristate->gcc pstate))))
Theorem:
(defthm print-const-of-const-fix-const (equal (print-const (const-fix const) pstate) (print-const const pstate)))
Theorem:
(defthm print-const-const-equiv-congruence-on-const (implies (const-equiv const const-equiv) (equal (print-const const pstate) (print-const const-equiv pstate))) :rule-classes :congruence)
Theorem:
(defthm print-const-of-pristate-fix-pstate (equal (print-const const (pristate-fix pstate)) (print-const const pstate)))
Theorem:
(defthm print-const-pristate-equiv-congruence-on-pstate (implies (pristate-equiv pstate pstate-equiv) (equal (print-const const pstate) (print-const const pstate-equiv))) :rule-classes :congruence)