| y = [], b ∈ succ((a ' + y) .last), reach(a, (a ' + y) .last, # y), path(a ' + y) ⊦ succ((a ' + y) .last) = ∅, # succ((a ' + y) .last) = 0, ∃ x0. path(x0) ∧ # x0 = 2 + # y ∧ x0 .first = a ∧ x0 .last = b |
⊦ reach(a, b, 0) ↔ a = b
⊦ path(a ')
b ∈ succ(a) ⊦ succ(a) = ∅, # succ(a) = 0, ∃ x. path(x) ∧ # x = 2 ∧ x .first = a ∧ x .last = b
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ s ≠ ∅ → # s ≠ 0], [CSIMPFORWARD : ⊦ a ∈ s → s ≠ ∅], [CSIMPSEQ : ⊦ # [] = 0], [CSIMPSEQ : ⊦ a ' .last = a], [CSIMPSEQ : ⊦ (x + y) + z = x + y + z], [CSIMPSEQ : ⊦ x + [] = x])]]