| max_ending_here0 = 0, max_so_far0 = 0, n1 = 0, size = # a, maximum-sum(subarray(a, 0, n), max_so_far), 0 ≤ max_ending_here, max_ending_here ≤ max_so_far, n ≤ size, ∃ m. maximum-suffix-sum(subarray(a, 0, n), m, max_ending_here) ⊦ ⟪res := max_so_far⟫ maximum-sum(a, res), n < size |
Used simplifier rules: ⊦ m ≠ n → (m ≤ n ↔ m < n); (s)% ⊦ m ≠ n → (m < n ↔ ¬ n < m); (ss)% ⊦ m < n → ¬ n < m; (s)%# ar0 = n ⊦ subarray(ar0, 0, n) = ar0; (s)% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ m ≤ n → (n ≤ m ↔ m = n); (s)