| ⊦ okarrays(r, fis, st) ↔ (∀ sk, val. sk × val ∈ fis → is_integervalue(val) ∧ is_fskey(sk) ∧ is_arraytype(sk .fs .type) ∧ okarray(st[r -- sk], sk .fs .type .type, val .intval, st)) |
⊦ okarrays(r, [], st)
∀ r, st. okarrays(r, fis0, st) ↔ (∀ sk, val. sk × val ∈ fis0 → is_integervalue(val) ∧ is_fskey(sk) ∧ is_arraytype(sk .fs .type) ∧ okarray(st[r -- sk], sk .fs .type .type, val .intval, st)) ⊦ okarrays(r, fv + fis0, st) ↔ (∀ sk, val. sk × val ∈ fv + fis0 → is_integervalue(val) ∧ is_fskey(sk) ∧ is_arraytype(sk .fs .type) ∧ okarray(st[r -- sk], sk .fs .type .type, val .intval, st))
[[CONCRETESIMPRULES : ([CSIMPGEN : fieldinits generated by [], +;], [CSIMPSEQ : ⊦ ¬ fv ∈ []])]]