| rkvs .last = rk0 × val0, rk ∈ rkvs, ∀ val, st, rk, rkvs0. # rkvs0 < # rkvs → (rk ∈ rkvs0 → (st[rk, val][rkvs0]) = st[rkvs0]) ⊦ rkvs = [], (st[rk, val][rkvs .butlast][rk0, val0]) = st[rkvs] |
rkvs = rkvs1 + rkv ', rkv = rk0 × val0, rk ∈ rkvs, ∀ val, st, rk, rkvs0. # rkvs0 < # rkvs → (rk ∈ rkvs0 → (st[rk, val][rkvs0]) = st[rkvs0]) ⊦ rkvs = [], (st[rk, val][rkvs1][rk0, val0]) = st[rkvs]
[[CONCRETESIMPRULES : ([CSIMPELIM : rkvs ≠ [] ⊦ rkv = rkvs .last ∧ rkvs0 = rkvs .butlast ↔ rkvs = rkvs0 + rkv '])], [EXTRATERMS : (rkvs, rkv, rkvs1)]]