| ∀ str, st, st1, ty. unchanged(str, refs0 .first, st, st1) ∧ ¬ junkrefs(str, refs0, ty, st) → ¬ junkrefs(str, refs0, ty, st1) ⊦ unchanged(str, (r + refs0) .first, st, st1) ∧ ¬ junkrefs(str, r + refs0, ty, st) → ¬ junkrefs(str, r + refs0, ty, st1) |
junkrefs(str, r ' + refs0, ty, st1), unchanged(str, r, st, st1), ∀ str, st, st1, ty. unchanged(str, refs0 .first, st, st1) ∧ ¬ junkrefs(str, refs0, ty, st) → ¬ junkrefs(str, refs0, ty, st1) ⊦ junkrefs(str, r ' + refs0, ty, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (refs + refs0) + refs1 = refs + refs0 + refs1], [CSIMPSEQ : ⊦ (r ' + refs) .first = r], [CSIMPSEQ : ⊦ r + refs = r ' + refs])]]