| 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[_mode] = noval, boolvar0 ⊦ 〈st; i3 = a0[i0]; 〉 〈st; i4 = a0[i2]; 〉 〈st; boolvar = i3 ≤ i4; 〉 〈st; if (boolvar) i0++; else i2--; 〉 ( ( 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))) |
st[a -- i1 '] .intval = max(getintarray(a, st)), m = i→n(i2 - i0), st[_mode] = noval, i0 ≠ i2, getintarray(a, st) ≠ [], 0 < st[a -- _length] .intval, 1 < st[a -- _length] .intval, i1 < st[a -- _length] .intval, is_integervalue(st[a -- i0 ']), is_integervalue(st[a -- 0 ']), is_integervalue(st[a -- i2 ']), is_integervalue(st[a -- i1 ']), i0 < st[a -- _length] .intval, 0 ≤ i2, init(st), okarray(a, int_type, st), i0 ≤ i1, i1 ≤ i2, i2 < st[a -- _length] .intval, 0 ≤ i0, 0 ≤ i1, i0 < i2, 0 < i2, is_integervalue(st[a -- 1 ']) ⊦ 〈st; i3 = a[i0]; 〉 〈st; i4 = a[i2]; 〉 〈st; boolvar = i3 ≤ i4; 〉 〈st; if (boolvar) i0++; else i2--; 〉 ( ( st[_mode] = noval → init(st) ∧ okarray(a, int_type, st) ∧ getintarray(a, st) ≠ [] ∧ 0 ≤ i0 ∧ (∃ i. i0 ≤ i ∧ i ≤ i2 ∧ i2 < st[a -- _length] .intval ∧ st[a -- i '] .intval = max(getintarray(a, st))) ∧ i→n(i2 - i0) < m) ∧ (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 ∧ 1 < j], [CSIMPFORWARD : ⊦ i < j ∧ 0 ≤ i → 0 < j], [CSIMPSEQ : ⊦ i ≠ j → (i ≤ j ↔ i < j)])]]