| 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) ⊦ 〈st; boolvar = i0 ≠ i2; 〉 〈st; if (boolvar) { if (a0[i0] <= a0[i2]) i0++; else i2--; } else { }〉 ( ( boolvar ∧ 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) ∧ (¬ (boolvar ∧ st[_mode] = noval) → 〈st; i = i0; 〉 (st[a -- i '] .intval = max(getintarray(a, st)) ∧ 0 ≤ i ∧ i < st[a -- _length] .intval))) |
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)))
[[CONCRETESIMPRULES : ()]]