| x0 = y1 + r1 ' + y, path(H[r].nxt ' + x0, H), path(H[r].nxt ' + y1, H), r ∈ H, ∀ r, H, y. path(r ' + x0, H) ∧ path(r ' + y, H) → x0 = y ∨ (∃ r0, x1. y = x0 + r0 ' + x1) ∨ (∃ r0, y0. x0 = y + r0 ' + y0) ⊦ r = null, x0 = y1, ∃ r0, y. x0 = y1 + r0 ' + y, ∃ r0, x. y1 = x0 + r0 ' + x |
path(H[r].nxt ' + y1, H), path(H[r].nxt ' + y1 + r1 ' + y, H), r ∈ H, ∀ r, H, y0. path(r ' + y1 + r1 ' + y, H) ∧ path(r ' + y0, H) → y1 + r1 ' + y = y0 ∨ (∃ r0, x1. y0 = (y1 + r1 ' + y) + r0 ' + x1) ∨ (∃ r0, y2. y1 + r1 ' + y = y0 + r0 ' + y2) ⊦ r = null, ∃ r0, y0. r1 ' + y = r0 ' + y0
Used simplifier rules: ⊦ x0 + x1 = x0 + x2 ↔ x1 = x2; (s)%a: ⊦ (x0 + x1) + x2 = x0 + x1 + x2; from specification list[reflist]% ⊦ r ' + x0 ≠ []; (s)% ⊦ x0 = x0 + x1 ↔ x1 = []; (s)