| n1 + 1 < # A, n0 < # A, n1 + 1 < m0, A[n1 + 1] < A[n1], n0 < m, n ≤ n1, m ≤ # A, m0 ≤ # A, n0 ≤ n1 ∧ n1 + 1 < m0 → ¬ A[n1 + 1] < A[n1], ∀ n1. n ≤ n1 ∧ n1 + 1 < m → ¬ A[n1 + 1] < A[n1], ∀ n1. n0 ≤ n1 ∧ n1 + 1 < m0 → ¬ A[n1 + 1] < A[n1] ⊦ |
n1 + 1 < m, n0 < m, A[n1 + 1] < A[n1], n1 + 1 < m0, n0 < # A, n1 + 1 < # A, n1 < n0, n < n0, n1 < m, n1 < # A, n < m, n < # A, n + 1 < m, n + 1 < # A, m0 ≤ # A, m ≤ # A, n ≤ n1, ∀ n1. n0 ≤ n1 ∧ n1 + 1 < m0 → ¬ A[n1 + 1] < A[n1], ∀ n1. n ≤ n1 ∧ n1 + 1 < m → ¬ A[n1 + 1] < A[n1] ⊦
Used simplifier rules: fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat% ⊦ m +1 = m + 1; (s)% ⊦ m < n → n ≠ 0; (s)%fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat%trans: ⊦ n < n0 ∧ n0 < n1 → n < n1; (forward) from specification nat-basic%lf: ⊦ m < n ∧ n < n0 → m +1 < n0; (forward) from specification nat-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m ≤ n ↔ ¬ n < m; (ss)