| y1 = x0 + r0 ' + x, 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 ' + x0 + r0 ' + x, H), path(H[r].nxt ' + x0, 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, ∃ r1, x1. r0 ' + x = r1 ' + x1
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)