| n1 + m1 +1 = n + 1, sum(ar, n0, m) < sum(ar, n1, m1 +1), ar[n] < 0, n0 + m < # ar, n < # ar, n0 + m ≤ n, n0 + m ≤ n + 1, ∀ n2, m1. n2 + m1 ≤ n → sum(ar, n2, m1) ≤ sum(ar, n0, m), ∀ n1, n, ar, n0, m. n1 + m1 = n + 1 ∧ n < # ar ∧ n0 + m < # ar ∧ ar[n] < 0 ∧ sum(ar, n0, m) < sum(ar, n1, m1) ∧ n0 + m ≤ n + 1 ∧ n0 + m ≤ n ∧ (∀ n2, m1. n2 + m1 ≤ n → sum(ar, n2, m1) ≤ sum(ar, n0, m)) → m1 = 0 ⊦ m1 +1 = 0 |
n0 + m < # ar, ar[n1 + m1] < 0, sum(ar, n0, m) < sum(ar, n1, m1) + ar[n1 + m1], n1 + m1 < # ar, n0 + m ≤ (n1 + m1) + 1, n0 + m ≤ n1 + m1, (∃ n1, n, ar, n0, m. n1 + m1 = n + 1 ∧ n < # ar ∧ n0 + m < # ar ∧ ar[n] < 0 ∧ sum(ar, n0, m) < sum(ar, n1, m1) ∧ n0 + m ≤ n + 1 ∧ n0 + m ≤ n ∧ (∀ n2, m1. n2 + m1 ≤ n → sum(ar, n2, m1) ≤ sum(ar, n0, m))) → m1 = 0, ∀ n2, m0. n2 + m0 ≤ n1 + m1 → sum(ar, n2, m0) ≤ sum(ar, n0, m) ⊦
Used simplifier rules: sum-succ: n + m < # ar ⊦ sum(ar, n, m + 1) = sum(ar, n, m) + ar[n + m];% ⊦ i < 0 ∧ 0 ≤ j → i < j; (s)%forward-le-02: ⊦ j < i ∧ i ≤ 0 → j < 0; (forward) from specification int-abs%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic% ⊦ m < n → (n ≤ m ↔ false); (s)% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ m + 1 ≠ 0; (s)%c: ⊦ m + n = n + m; from specification nat-basic% ⊦ m + n = m + n0 ↔ n = n0; (s)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic% ⊦ m +1 = m + 1; (s)