Get the pos field from a address+pos.
(address+pos->pos x) → pos
This is an ordinary field accessor created by fty::defprod.
Function:
(defun address+pos->pos$inline (x) (declare (xargs :guard (address+pos-p x))) (declare (xargs :guard t)) (let ((__function__ 'address+pos->pos)) (declare (ignorable __function__)) (mbe :logic (b* ((x (and t x))) (pos-fix (cdr (std::da-nth 1 x)))) :exec (cdr (std::da-nth 1 x)))))
Theorem:
(defthm posp-of-address+pos->pos (b* ((pos (address+pos->pos$inline x))) (posp pos)) :rule-classes :rewrite)
Theorem:
(defthm address+pos->pos$inline-of-address+pos-fix-x (equal (address+pos->pos$inline (address+pos-fix x)) (address+pos->pos$inline x)))
Theorem:
(defthm address+pos->pos$inline-address+pos-equiv-congruence-on-x (implies (address+pos-equiv x x-equiv) (equal (address+pos->pos$inline x) (address+pos->pos$inline x-equiv))) :rule-classes :congruence)