Top object designator of an object designator.
(objdesign-top objdes) → top-objdes
An element or member object designator
denotes a portion of an object
designated the
Function:
(defun objdesign-top (objdes) (declare (xargs :guard (objdesignp objdes))) (objdesign-case objdes :static (objdesign-fix objdes) :auto (objdesign-fix objdes) :alloc (objdesign-fix objdes) :element (objdesign-top objdes.super) :member (objdesign-top objdes.super)))
Theorem:
(defthm objdesignp-of-objdesign-top (b* ((top-objdes (objdesign-top objdes))) (objdesignp top-objdes)) :rule-classes :rewrite)
Theorem:
(defthm objdesign-kind-of-objdesign-top (b* ((?top-objdes (objdesign-top objdes))) (member-equal (objdesign-kind top-objdes) '(:static :auto :alloc))))
Theorem:
(defthm objdesign-top-of-objdesign-fix-objdes (equal (objdesign-top (objdesign-fix objdes)) (objdesign-top objdes)))
Theorem:
(defthm objdesign-top-objdesign-equiv-congruence-on-objdes (implies (objdesign-equiv objdes objdes-equiv) (equal (objdesign-top objdes) (objdesign-top objdes-equiv))) :rule-classes :congruence)