| ¬ (i < 0 ∨ n→i(# vals) + 1 ≤ i), is_reftype(ty) ⊦ r -- i ' ∈ addarray(r, ty, n→i(# vals) + 1, st) ∨ 0 < i ∧ i ≤ n→i(# vals) ↔ r -- i ' ∈ st ∨ ¬ i < 0 ∧ ¬ n→i(# vals) < i |
is_reftype(ty) ⊦ r -- 0 ' ∈ addarray(r, ty, n→i(# vals) + 1, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ 0 ≤ n→i(n)], [CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ i ≤ j → (j ≤ i ↔ i = j)], [CSIMPSEQ : ⊦ i ≤ j → (¬ ¬ j < i ↔ false)], [CSIMPSEQ : ⊦ i < j → (¬ ¬ j ≤ i ↔ false)], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + 1 ≤ j ↔ i < j], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i])]]