| H[r1] = a × r, ((ll-trav(r0, r1, x) * P))(H) ⊦ r1 = null, ((ll-trav(r0, r, x) * P))(H) |
H[r1] = a × r, ((lls(r0, r1, x0) * lls(r1, null, x1) * P))(H) ⊦ r1 = null, ∃ x2, x3. x0 + x1 = x2 + x3 ∧ ((lls(r0, r, x2) * lls(r, null, x3) * P))(H)
Used simplifier rules: ll-trav1-def: ⊦ ((ll-trav(r0, r1, x) * P))(H) ↔ (∃ x0, x1. x = x0 + x1 ∧ ((lls(r0, r1, x0) * lls(r1, null, x1) * P))(H));%sep-com: ⊦ P0 * P1 = P1 * P0; from specification heap-sep%sep-ass: ⊦ (P0 * P1) * P2 = P0 * P1 * P2; from specification heap-sep