| max_ending_here = max_ending_here1 + a[n], max_ending_here0 = 0, max_so_far0 = 0, n = n0, n1 = 0, size = # a, n < # a, n < size, maximum-sum(subarray(a, 0, n), max_so_far), 0 ≤ max_ending_here1, max_ending_here1 ≤ max_so_far, n ≤ size, ∃ m. maximum-suffix-sum(subarray(a, 0, n), m, max_ending_here1) ⊦ ⟪n := n + 1⟫ ( ( 0 ≤ max_ending_here ∧ max_ending_here ≤ max_so_far ∧ n ≤ size ∧ maximum-sum(subarray(a, 0, n), max_so_far) ∧ (∃ m. maximum-suffix-sum(subarray(a, 0, n), m, max_ending_here))) ∧ size - n < size - n0), max_so_far < max_ending_here, max_ending_here < 0 |
max_ending_here = max_ending_here1 + a[n], max_ending_here0 = 0, max_so_far0 = 0, n = n0, n1 = 0, size = # a, n < size, n < # a, maximum-sum(subarray(a, 0, n), max_so_far), n ≤ size, max_ending_here1 ≤ max_so_far, 0 ≤ max_ending_here1, ∃ m. maximum-suffix-sum(subarray(a, 0, n), m, max_ending_here1) ⊦ max_ending_here < 0, max_so_far < max_ending_here, ( 0 ≤ max_ending_here ∧ max_ending_here ≤ max_so_far ∧ n + 1 ≤ size ∧ maximum-sum(subarray(a, 0, n + 1), max_so_far) ∧ (∃ m. maximum-suffix-sum(subarray(a, 0, n + 1), m, max_ending_here))) ∧ size - n + 1 < size - n0