| # x = # rx, r ≠ head, r ≠ tail, r ∈ rx, ((dls(head, prev, x, rx, next, tail) * P))(H) ⊦ ⟪remove(r; H)⟫ ⟪insert(r; H)⟫ ((dls(head, prev, x, rx, next, tail) * P))(H) |
r ∈ rx, r ≠ head, r ≠ tail, ((dls(head, prev, x, rx, next, tail) * P))(H) ⊦ ⟪remove(r; H)⟫ ∃ x0, rx0, x1, rx1, a. x0 ≠ [] ∧ x1 ≠ [] ∧ # x0 = # rx0 ∧ x = x0 + a ' + x1 ∧ rx = rx0 + r ' + rx1 ∧ ((r => mkcell(rx0.last, rx1.first, a) * dls(head, prev, x0 + x1, rx0 + rx1, next, tail) * P))(H)
[Concretesimprules(())]