| ⊦ st1 .refs ∩ st .refs = ∅ ∧ r ∈ st1 ∧ is_array(str, r, st1) → is_array(str, r, st1 ∪ st) |
⊦ is_array(str, r, st) ↔ ¬ ¬ ( type∃(str, st[r -- _type] .type) ∧ st[r -- _type] .type .jtelemtype ≠ void_type ∧ st[r -- _type] .type .jtelemtype ≠ abstract_type ∧ is_array(r, st))
⊦ st1 .refs ∩ st .refs = ∅ ∧ r ∈ st1 ∧ is_array(r, st1) → is_array(r, st1 ∪ st)
st1 .refs ∩ st .refs = ∅, r ∈ st1, type∃(str, st1[r -- _type] .type), is_array(r, st1), ¬ type∃(str, (st1 ∪ st)[r -- _type] .type) ∨ (st1 ∪ st)[r -- _type] .type .jtelemtype = void_type ∨ (st1 ∪ st)[r -- _type] .type .jtelemtype = abstract_type ⊦ st1[r -- _type] .type .jtelemtype = void_type, st1[r -- _type] .type .jtelemtype = abstract_type
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ rset ∩ rset0 = rset0 ∩ rset], [CSIMPSEQ : ⊦ (rset ∩ rset0) ∩ rset1 = rset ∩ rset0 ∩ rset1])]]