| ∀ 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 ∨ sk × val ∈ fis0 → is_integervalue(val) ∧ ¬ is_indexkey(sk) ∧ is_arraytype(sk .fs .type) ∧ okarray(st[r -- sk], sk .fs .type .type, val .intval, 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 ∨ sk × val ∈ fis0 → is_integervalue(val) ∧ ¬ is_indexkey(sk) ∧ is_arraytype(sk .fs .type) ∧ okarray(st[r -- sk], sk .fs .type .type, val .intval, st))
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (r, st)]]