| ∀ r, fs, st, val, str, ty. r -- fs ' ∈ st ∧ okval(st[r -- fs '], fs .type) ∧ okval(val, fs .type) ∧ r ∈ st → (junkrefs(str, acc + r ', ty, st[r -- fs ', val]) ↔ junkrefs(str, acc + r ', ty, st)) ∨ fs ' = _type ∨ fs ' = _length ∨ r ∈ acc, r -- fs ' ∈ st, okval(st[r -- fs '], fs .type), okval(val, fs .type), r ∈ st ⊦ junkrefs(str, (r0 + acc) + r ', ty, st[r -- fs ', val]) ↔ junkrefs(str, (r0 + acc) + r ', ty, st), fs ' = _type, fs ' = _length, r ∈ r0 + acc |
r -- fs ' ∈ st, okval(st[r -- fs '], fs .type), okval(val, fs .type), r ∈ st, ∀ r, fs, st, val, str, ty. r -- fs ' ∈ st ∧ okval(st[r -- fs '], fs .type) ∧ okval(val, fs .type) ∧ r ∈ st → (junkrefs(str, acc + r ', ty, st[r -- fs ', val]) ↔ junkrefs(str, acc + r ', ty, st)) ∨ fs ' = _type ∨ fs ' = _length ∨ r ∈ acc ⊦ fs ' = _type, fs ' = _length, junkrefs(str, (r0 ' + acc) + r ', ty, st[r -- fs ', val]) ↔ junkrefs(str, (r0 ' + acc) + r ', ty, st), r = r0, r ∈ acc
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (refs + refs0) + refs1 = refs + refs0 + refs1], [CSIMPSEQ : ⊦ ¬ r ∈ r0 ' + refs ↔ r ≠ r0 ∧ ¬ r ∈ refs], [CSIMPSEQ : ⊦ r + refs = r ' + refs])]]