Get the kind (tag) of a expr-priority structure.
(expr-priority-kind x) → kind
Function:
(defun expr-priority-kind$inline (x) (declare (xargs :guard (expr-priorityp x))) (let ((__function__ 'expr-priority-kind)) (declare (ignorable __function__)) (mbe :logic (cond ((or (atom x) (eq (car x) :primary)) :primary) ((eq (car x) :postfix) :postfix) ((eq (car x) :unary) :unary) ((eq (car x) :cast) :cast) ((eq (car x) :mul) :mul) ((eq (car x) :add) :add) ((eq (car x) :sh) :sh) ((eq (car x) :rel) :rel) ((eq (car x) :eq) :eq) ((eq (car x) :and) :and) ((eq (car x) :xor) :xor) ((eq (car x) :ior) :ior) ((eq (car x) :logand) :logand) ((eq (car x) :logor) :logor) ((eq (car x) :cond) :cond) ((eq (car x) :asg) :asg) (t :expr)) :exec (car x))))
Theorem:
(defthm expr-priority-kind-possibilities (or (equal (expr-priority-kind x) :primary) (equal (expr-priority-kind x) :postfix) (equal (expr-priority-kind x) :unary) (equal (expr-priority-kind x) :cast) (equal (expr-priority-kind x) :mul) (equal (expr-priority-kind x) :add) (equal (expr-priority-kind x) :sh) (equal (expr-priority-kind x) :rel) (equal (expr-priority-kind x) :eq) (equal (expr-priority-kind x) :and) (equal (expr-priority-kind x) :xor) (equal (expr-priority-kind x) :ior) (equal (expr-priority-kind x) :logand) (equal (expr-priority-kind x) :logor) (equal (expr-priority-kind x) :cond) (equal (expr-priority-kind x) :asg) (equal (expr-priority-kind x) :expr)) :rule-classes ((:forward-chaining :trigger-terms ((expr-priority-kind x)))))