| 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) |