| 0 ≤ j, j + i1 + 1 < st[r -- _length] .intval, validrefnotnull(str, r, mkarraytype(ty), st), is_reftype(ty), 0 ≤ i1, ∀ j, st, r, str, ty, i0. i→n(i0) < i→n(i1 + 1) → ( is_reftype(ty) ∧ validrefnotnull(str, r, mkarraytype(ty), st) ∧ j + i0 < st[r -- _length] .intval ∧ 0 ≤ i0 ∧ 0 ≤ j → r = jvmref ∨ validreflist(str, getarray(r, j, i0, st), ty, st)) ⊦ r = jvmref, is_referencevalue(st[r -- j ']) ∧ validref(str, st[r -- j '] .refval, ty, st) ∧ validreflist(str, getarray(r, j + 1, i1, st), ty, st) |
r = jvmref ∨ validreflist(str, getarray(r, j + 1, i1, st), ty, st), 0 ≤ j, j + i1 + 1 < st[r -- _length] .intval, validrefnotnull(str, r, mkarraytype(ty), st), is_reftype(ty), 0 ≤ i1, ∀ j, st, r, str, ty, i0. i→n(i0) < i→n(i1 + 1) → ( is_reftype(ty) ∧ validrefnotnull(str, r, mkarraytype(ty), st) ∧ j + i0 < st[r -- _length] .intval ∧ 0 ≤ i0 ∧ 0 ≤ j → r = jvmref ∨ validreflist(str, getarray(r, j, i0, st), ty, st)) ⊦ r = jvmref, is_referencevalue(st[r -- j ']) ∧ validref(str, st[r -- j '] .refval, ty, st) ∧ validreflist(str, getarray(r, j + 1, i1, st), ty, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : i0 ≠ 0, i0 ≤ i ⊦ ((* i)) ≤ j → ((* i0)) ≤ j], [CSIMPSEQ : ⊦ ((* j)) ≤ i0 + ((* j0)) ↔ j - j0 ≤ i0], [CSIMPSEQ : ⊦ i ≤ j → (¬ ¬ j < i ↔ false)], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ i < j → (¬ ¬ j ≤ i ↔ false)], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ 0 ≤ i → i→n(i + 1) = i→n(i) + 1], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ m < n + 1 ↔ ¬ n < m], [CSIMPSEQ : ⊦ i→n(i) < i→n(j) ↔ abs(i) < abs(j)], [CSIMPSEQ : ⊦ 0 ≤ i → abs(i) = i], [CSIMPSEQ : ⊦ ¬ i < i], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ m + n = n + m])], [EXTRATERMS : (st, ty, r, str, j + 1, i1)]]