| path(r ' + y, H), path(r ' + [], 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;% ⊦ x0 + r ' + x1 ≠ []; (s)% ⊦ [] + x0 = x0; (s)%a: ⊦ (x0 + x1) + x2 = x0 + x1 + x2; from specification list[reflist]% ⊦ x0 + [] = x0; (s)