| n < # ar, m < # ar, suffix-upper-bound(subarray(ar, 0, n), sum(ar, m, n - m)), m ≤ n + 1, 0 ≤ sum(ar, m, n - m) + ar[n], 0 ≤ sum(ar, m, n - m), m ≤ n ⊦ suffix-upper-bound(subarray(ar, 0, n + 1), sum(ar, m, n - m) + ar[n]) ∧ ar[n] = ar[m + (n - m)] |
n = n0 + m, m < # ar, n < # ar, suffix-upper-bound(subarray(ar, 0, n), sum(ar, m, n0)), m ≤ n, 0 ≤ sum(ar, m, n0), 0 ≤ sum(ar, m, n0) + ar[n], m ≤ n + 1 ⊦ suffix-upper-bound(subarray(ar, 0, n + 1), sum(ar, m, n0) + ar[n]) ∧ ar[n] = ar[m + n0]
Used simplifier rules: n ≤ m ⊦ n0 = m - n ↔ m = n0 + n; (elim) Used terms: m, n, n0