Access the |AIGNET|::|TRUTH| field of a cutinfo bit structure.
(cutinfo->truth x) → truth
Function:
(defun cutinfo->truth (x) (declare (xargs :guard (cutinfo-p x))) (mbe :logic (let ((x (cutinfo-fix x))) (part-select x :low 0 :width 16)) :exec (the (unsigned-byte 16) (logand (the (unsigned-byte 16) 65535) (the (unsigned-byte 32) x)))))
Theorem:
(defthm truth4-p-of-cutinfo->truth (b* ((truth (cutinfo->truth x))) (truth::truth4-p truth)) :rule-classes :rewrite)
Theorem:
(defthm cutinfo->truth-of-cutinfo-fix-x (equal (cutinfo->truth (cutinfo-fix x)) (cutinfo->truth x)))
Theorem:
(defthm cutinfo->truth-cutinfo-equiv-congruence-on-x (implies (cutinfo-equiv x x-equiv) (equal (cutinfo->truth x) (cutinfo->truth x-equiv))) :rule-classes :congruence)
Theorem:
(defthm cutinfo->truth-of-cutinfo (equal (cutinfo->truth (cutinfo truth size valid score)) (truth::truth4-fix$ truth)))
Theorem:
(defthm cutinfo->truth-of-write-with-mask (implies (and (fty::bitstruct-read-over-write-hyps x cutinfo-equiv-under-mask) (cutinfo-equiv-under-mask x acl2::y fty::mask) (equal (logand (lognot fty::mask) 65535) 0)) (equal (cutinfo->truth x) (cutinfo->truth acl2::y))))