Total order on expression priorities: greater 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-<= prio1 prio2)))
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)