| r ≠ r ∨ r = r ∧ is_fskey(sk) ∧ sk ≠ _length ∧ sk ≠ _type ∨ r = r ∧ is_indexkey(sk) ∧ (sk .index < 0 ∨ i ≤ sk .index), 0 ≤ i, is_fskey(sk) ∧ sk ≠ _length ∧ sk ≠ _type ∨ is_indexkey(sk) ∧ (sk .index < 0 ∨ i ≤ sk .index) ⊦ r -- sk ∈ st ↔ r -- sk ∈ addarray(r, ty, mklist(initial_value(ty), i→n(i)), st) |
⊦ rk ∈ st → rk ∈ addarray(r, ty, vals, st)
⊦ r ∈ addarray(r, ty0, vals, st)
r -- sk ∈ addarray(r, ty, mklist(initial_value(ty), i→n(i)), st), 0 ≤ i, is_fskey(sk) ∧ sk ≠ _length ∧ sk ≠ _type ∨ is_indexkey(sk) ∧ (sk .index < 0 ∨ i ≤ sk .index) ⊦ r -- sk ∈ st
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ r -- sk ∈ st → r ∈ st])]]