| max(m, n) < n0, n0 ≤ m, n0 ≤ n, n ≤ m ⊦ m = max(max(m, n), n0) |
max(m, n) + 1 < m, max(m, n) < n, max(m, n) < n0, n0 < m, max(m, n) < m, n ≤ m, n0 ≤ n ⊦ m = n0
Used simplifier rules: Max-left: ⊦ m < n → max(m, n) = n;% ⊦ m +1 = m + 1; (s)% ⊦ m < n → n ≠ 0; (s)%trans: ⊦ n < n0 ∧ n0 < n1 → n < n1; (forward) from specification nat-basic%trans-01: ⊦ n < n0 ∧ n0 < n1 → n +1 < n1; (forward) from specification nat-basic%fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m ≠ n → (m ≤ n ↔ m < n); (s)