| ⊦ reachable-n(H, n, r, r0) ↔ (∃ x. path(x, H) ∧ hd x = r ∧ x.last = r0 ∧ # x = n + 1), n = 0 |
∀ H, r, r0. (reachable-n(H, n0, r, r0) ↔ (∃ x. path(x, H) ∧ hd x = r ∧ x.last = r0 ∧ # x = n0 + 1)) ∨ n0 = 0 ⊦ n0 +1 = 0, reachable-n(H, n0 +1, r, r0) ↔ (∃ x. path(x, H) ∧ hd x = r ∧ x.last = r0 ∧ # x = n0 +1 + 1)
Used simplifier rules: nat freely generated by 0, +1;;