| init(st), st[_mode] = noval, a0 = a, okarray(a, int_type, st), getintarray(a, st) ≠ [], ∃ i. 0 ≤ i0 ∧ i0 ≤ i ∧ i ≤ i2 ∧ i2 < st[a0 -- _length] .intval ∧ st[a -- i '] .intval = max(getintarray(a, st)), m = i→n(i2 - i0), boolvar0 ↔ i0 ≠ i2 ⊦ 〈st; if (boolvar0) { if (a0[i0] <= a0[i2]) i0++; else i2--; } else { }〉 ( ( boolvar0 ∧ st[_mode] = noval → init(st) ∧ st[_mode] = noval ∧ a0 = a ∧ okarray(a, int_type, st) ∧ getintarray(a, st) ≠ [] ∧ (∃ i. 0 ≤ i0 ∧ i0 ≤ i ∧ i ≤ i2 ∧ i2 < st[a0 -- _length] .intval ∧ st[a -- i '] .intval = max(getintarray(a, st))) ∧ i→n(i2 - i0) < m) ∧ (¬ (boolvar0 ∧ st[_mode] = noval) → 〈st; i = i0; 〉 (st[a -- i '] .intval = max(getintarray(a, st)) ∧ 0 ≤ i ∧ i < st[a -- _length] .intval))) |
a0 = a, st[_mode] = noval, st[a -- i1 '] .intval = max(getintarray(a, st)), m = i→n(i2 - i0), boolvar0 ↔ i0 ≠ i2, getintarray(a, st) ≠ [], is_integervalue(st[a -- i1 ']), i0 < st[a -- _length] .intval, 0 ≤ i2, 0 < st[a -- _length] .intval, init(st), okarray(a, int_type, st), i0 ≤ i1, i1 ≤ i2, i2 < st[a -- _length] .intval, 0 ≤ i0, 0 ≤ i1, i0 ≤ i2, i1 < st[a -- _length] .intval, is_integervalue(st[a -- i0 ']), is_integervalue(st[a -- 0 ']), is_integervalue(st[a -- i2 ']) ⊦ 〈st; if (boolvar0) { if (a0[i0] <= a0[i2]) i0++; else i2--; } else { }〉 ( ( boolvar0 ∧ st[_mode] = noval → init(st) ∧ okarray(a, int_type, st) ∧ getintarray(a, st) ≠ [] ∧ 0 ≤ i0 ∧ (∃ i. i0 ≤ i ∧ i ≤ i2 ∧ i2 < st[a0 -- _length] .intval ∧ st[a -- i '] .intval = max(getintarray(a, st))) ∧ i→n(i2 - i0) < m) ∧ (¬ boolvar0 ∨ st[_mode] ≠ noval → 〈st; i = i0; 〉 (st[a -- i '] .intval = max(getintarray(a, st)) ∧ 0 ≤ i ∧ i < st[a -- _length] .intval)))
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ okarray(r, int_type, st) ∧ i < st[r -- _length] .intval ∧ 0 ≤ i → is_integervalue(st[r -- i '])], [CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPFORWARD : ⊦ j ≤ j0 ∧ j0 ≤ j1 → j ≤ j1], [CSIMPFORWARD : ⊦ i ≤ j ∧ j < j0 → i < j0])]]