| newref_list(m, st[newref(st) -- 0 ', noval][newref(st[newref(st) -- 0 ', noval]) -- 0 ', noval]) = [], ∀ st0. ¬ (newref(st0) ' + newref_list(m, st0[newref(st0) -- 0 ', noval])) .last ∈ newref_list(m, st0) ⊦ ¬ (newref(st[newref(st) -- 0 ', noval]) ' + newref_list(m, st[newref(st) -- 0 ', noval][newref(st[newref(st) -- 0 ', noval]) -- 0 ', noval])) .last ∈ newref_list(m, st[newref(st) -- 0 ', noval]) ∧ (newref(st[newref(st) -- 0 ', noval]) ' + newref_list(m, st[newref(st) -- 0 ', noval][newref(st[newref(st) -- 0 ', noval]) -- 0 ', noval])) .last ≠ newref(st) |
⊦ newref_list(n, st) = [] ↔ n = 0
⊦ newref_list(0, st) = []
newref(st[newref(st) -- 0 ', noval]) = newref(st) ⊦
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ r ∈ []], [CSIMPSEQ : ⊦ r ' .last = r], [CSIMPSEQ : ⊦ (refs + refs0) + refs1 = refs + refs0 + refs1], [CSIMPSEQ : ⊦ refs + [] = refs])]]