| # x0 = # rx0, # x1 = 1 + # rx1, x0 ≠ [], x1 ≠ [], ((r => mkcell(rx0.last, r0, a) * dls(head, prev, x0 + x1, rx0 + r0 ' + rx1, next, tail) * P))(H) ⊦ ⟪insert(r; H)⟫ ((dls(head, prev, x0 + a ' + x1, rx0 + r ' + r0 ' + rx1, next, tail) * P))(H) |
# x0 = # rx0, x0 ≠ [], x1 ≠ [], ((r => mkcell(rx0.last, rx1.first, a) * dls(head, prev, x0 + x1, rx0 + rx1, next, tail) * P))(H) ⊦ ⟪insert(r; H)⟫ ((dls(head, prev, x0 + a ' + x1, rx0 + r ' + rx1, next, tail) * P))(H)
[Concretesimprules((Csimpnamedseq(list,reflist,c-08, ⊦ (r ' + rx).first = r) Csimpnamedseq(list,reflist,a, ⊦ (rx + rx0) + rx1 = rx + rx0 + rx1) Csimpnamedseq(list,,a, ⊦ (x + y) + z = x + y + z) Csimpnamedseq(heap-sep,cell-heap,sep-ass, ⊦ (P0 * P1) * P2 = P0 * P1 * P2) Csimpnamedseq(heap-sep,cell-heap,sep-com, ⊦ P0 * P1 = P1 * P0)))]