| st[a -- _length] .intval = i2 + 1, st[_mode] = noval, a0 = a, i0 = 0, a ≠ jvmref, getintarray(a, st) ≠ [], initdone(`swt.ArrayMax' .class, st), a ∈ st, init(st), okarray(a, int_type, st), ∀ i1. ¬ 0 ≤ i1 ∨ ¬ i1 ≤ i2 ∨ st[a -- i1 '] .intval ≠ max(getintarray(a, st)), getintarray(a, st) ≠ [] → max(getintarray(a, st)) ∈ getintarray(a, st) ∧ (∀ i. i ∈ getintarray(a, st) → i ≤ max(getintarray(a, st))) ⊦ 〈st; while (i0 != i2) { if (a0[i0] <= a0[i2]) i0++; else i2--; }〉 〈st; i = i0; 〉 (st[a -- i '] .intval = max(getintarray(a, st)) ∧ 0 ≤ i ∧ i < st[a -- _length] .intval) |
st[a -- _length] .intval = i2 + 1, st[_mode] = noval, a0 = a, i0 = 0, a ≠ jvmref, getintarray(a, st) ≠ [], initdone(`swt.ArrayMax' .class, st), a ∈ st, init(st), okarray(a, int_type, st), max(getintarray(a, st)) ∈ getintarray(a, st), ∀ i1. ¬ 0 ≤ i1 ∨ ¬ i1 ≤ i2 ∨ st[a -- i1 '] .intval ≠ max(getintarray(a, st)), ∀ i. i ∈ getintarray(a, st) → i ≤ max(getintarray(a, st)) ⊦ 〈st; while (i0 != i2) { if (a0[i0] <= a0[i2]) i0++; else i2--; }〉 〈st; i = i0; 〉 (st[a -- i '] .intval = max(getintarray(a, st)) ∧ 0 ≤ i ∧ i < st[a -- _length] .intval)
[[CONCRETESIMPRULES : ()]]