Get the kind (tag) of a outcome structure.
(outcome-kind x) → kind
Function:
(defun outcome-kind$inline (x) (declare (xargs :guard (outcomep x))) (let ((__function__ 'outcome-kind)) (declare (ignorable __function__)) (mbe :logic (cond ((or (atom x) (eq (car x) :function-success)) :function-success) ((eq (car x) :type-success) :type-success) ((eq (car x) :specification-success) :specification-success) ((eq (car x) :theorem-success) :theorem-success) ((eq (car x) :transformation-success) :transformation-success) ((eq (car x) :proof-obligation-failure) :proof-obligation-failure) ((eq (car x) :theorem-failure) :theorem-failure) ((eq (car x) :transformation-failure) :transformation-failure) (t :unexpected-failure)) :exec (car x))))
Theorem:
(defthm outcome-kind-possibilities (or (equal (outcome-kind x) :function-success) (equal (outcome-kind x) :type-success) (equal (outcome-kind x) :specification-success) (equal (outcome-kind x) :theorem-success) (equal (outcome-kind x) :transformation-success) (equal (outcome-kind x) :proof-obligation-failure) (equal (outcome-kind x) :theorem-failure) (equal (outcome-kind x) :transformation-failure) (equal (outcome-kind x) :unexpected-failure)) :rule-classes ((:forward-chaining :trigger-terms ((outcome-kind x)))))