| x = r0 + x1 ∧ x ≠ [], # x = 3 + n0, reachable-1(H, r0, r4), reachable-1(H, r4, r5), reachable-n(H, n0, r5, x.last), path(x, H), reachable-1(H, r, r0), reachable-1(H, r0, r2), reachable-1(H, r2, r3), reachable-n(H, n0, r3, x.last) ⊦ ∃ x0. path(x0, H) ∧ hd x0 = r ∧ x0.last = x.last ∧ # x0 = 4 + n0 |
1 + # x1 = 3 + n0, reachable-1(H, r0, r4), reachable-1(H, r4, r5), reachable-n(H, n0, r5, (r0 ' + x1).last), path(r0 ' + x1, H), reachable-1(H, r, r0), reachable-1(H, r0, r2), reachable-1(H, r2, r3), reachable-n(H, n0, r3, (r0 ' + x1).last) ⊦ ∃ x. path(x, H) ∧ hd x = r ∧ x.last = (r0 ' + x1).last ∧ # x = 4 + n0
Used simplifier rules: e-01: ⊦ r ' + x0 ≠ []; from specification list[reflist]%a: ⊦ (x0 + x1) + x2 = x0 + x1 + x2; from specification list[reflist]%len-02: ⊦ # r ' = 0 +1; from specification list[reflist]%len: ⊦ #(x0 + x1) = # x0 + # x1; from specification list[reflist]%c: ⊦ r + x0 = r ' + x0; from specification list[reflist]