Get the kind (tag) of a unop structure.
(unop-kind x) → kind
Function:
(defun unop-kind$inline (x) (declare (xargs :guard (unopp x))) (let ((__function__ 'unop-kind)) (declare (ignorable __function__)) (mbe :logic (cond ((or (atom x) (eq (car x) :address)) :address) ((eq (car x) :indir) :indir) ((eq (car x) :plus) :plus) ((eq (car x) :minus) :minus) ((eq (car x) :bitnot) :bitnot) (t :lognot)) :exec (car x))))
Theorem:
(defthm unop-kind-possibilities (or (equal (unop-kind x) :address) (equal (unop-kind x) :indir) (equal (unop-kind x) :plus) (equal (unop-kind x) :minus) (equal (unop-kind x) :bitnot) (equal (unop-kind x) :lognot)) :rule-classes ((:forward-chaining :trigger-terms ((unop-kind x)))))