Total order on expression priorities: less than.
(expr-priority-< prio1 prio2) → yes/no
Function:
(defun expr-priority-< (prio1 prio2) (declare (xargs :guard (and (expr-priorityp prio1) (expr-priorityp prio2)))) (not (expr-priority-<= prio2 prio1)))
Theorem:
(defthm booleanp-of-expr-priority-< (b* ((yes/no (expr-priority-< prio1 prio2))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm expr-priority-<-of-expr-priority-fix-prio1 (equal (expr-priority-< (expr-priority-fix prio1) prio2) (expr-priority-< prio1 prio2)))
Theorem:
(defthm expr-priority-<-expr-priority-equiv-congruence-on-prio1 (implies (expr-priority-equiv prio1 prio1-equiv) (equal (expr-priority-< prio1 prio2) (expr-priority-< prio1-equiv prio2))) :rule-classes :congruence)
Theorem:
(defthm expr-priority-<-of-expr-priority-fix-prio2 (equal (expr-priority-< prio1 (expr-priority-fix prio2)) (expr-priority-< prio1 prio2)))
Theorem:
(defthm expr-priority-<-expr-priority-equiv-congruence-on-prio2 (implies (expr-priority-equiv prio2 prio2-equiv) (equal (expr-priority-< prio1 prio2) (expr-priority-< prio1 prio2-equiv))) :rule-classes :congruence)