| path(r ' + [], H), path(r ' + y, H) ⊦ [] = y, ∃ r0, y0. [] = y + r0 ' + y0, ∃ r0, x0. y = [] + r0 ' + x0 |
path(r ' + y, H), r ∈ H ⊦ [] = y, r = null, ∃ r0, x. y = r0 ' + x
Used simplifier rules: path-one: ⊦ path(r ', H) ↔ ¬ ¬(r ∈ H ∧ r ≠ null);%Nil: ⊦ [] + x0 = x0; from specification list[reflist]%e-03: ⊦ x0 + r ' + x1 ≠ []; from specification list[reflist]%a: ⊦ (x0 + x1) + x2 = x0 + x1 + x2; from specification list[reflist]%app: ⊦ x0 + [] = x0; from specification list[reflist]