Print an identifier.
The ident-aidentp guard ensures that the identifier contains an ACL2 string consisting of one or more characters satisfying grammar-character-p.
Function:
(defun print-ident (ident pstate) (declare (xargs :guard (and (identp ident) (pristatep pstate)))) (declare (xargs :guard (ident-aidentp ident (pristate->gcc pstate)))) (let ((__function__ 'print-ident)) (declare (ignorable __function__)) (b* ((string (ident->unwrap ident)) (chars (acl2::string=>nats string))) (print-chars chars pstate))))
Theorem:
(defthm pristatep-of-print-ident (b* ((new-pstate (print-ident ident pstate))) (pristatep new-pstate)) :rule-classes :rewrite)
Theorem:
(defthm pristate->gcc-of-print-ident (b* ((?new-pstate (print-ident ident pstate))) (equal (pristate->gcc new-pstate) (pristate->gcc pstate))))
Theorem:
(defthm print-ident-of-ident-fix-ident (equal (print-ident (ident-fix ident) pstate) (print-ident ident pstate)))
Theorem:
(defthm print-ident-ident-equiv-congruence-on-ident (implies (ident-equiv ident ident-equiv) (equal (print-ident ident pstate) (print-ident ident-equiv pstate))) :rule-classes :congruence)
Theorem:
(defthm print-ident-of-pristate-fix-pstate (equal (print-ident ident (pristate-fix pstate)) (print-ident ident pstate)))
Theorem:
(defthm print-ident-pristate-equiv-congruence-on-pstate (implies (pristate-equiv pstate pstate-equiv) (equal (print-ident ident pstate) (print-ident ident pstate-equiv))) :rule-classes :congruence)