| st[r -- _type] .type = mkarraytype(ty), is_array(r, st) ⊦ addarray(r, ty, getarray(r, st), st) = st |
⊦ st1 = st2 ↔ (∀ rk. (rk ∈ st1 ↔ rk ∈ st2) ∧ st1[rk] = st2[rk])
st[r -- _type] .type = mkarraytype(ty), is_array(r, st) ⊦ ∀ rk. (rk ∈ addarray(r, ty, getarray(r, st), st) ↔ rk ∈ st) ∧ (addarray(r, ty, getarray(r, st), st)[rk]) = st[rk]
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, addarray(r, ty, getarray(r, st), st))]]