| 1 + # x1 = 3 + n0, H[r].nxt = r0, path(r0 ' + x1, H), reachable-1(H, r0, r2), reachable-1(H, r2, r3), reachable-1(H, r4, r5), reachable-1(H, r0, r4), reachable-n(H, n0, r3, x1.last), reachable-n(H, n0, r5, x1.last), r ∈ H, r0 ∈ H ⊦ r = null, r0 = null, x1 = [], r ∈ H ∧ r ≠ null ∧ H[r].nxt = r0 ∧ 2 + # x1 = 4 + n0 |
Used simplifier rules: reachable-1-def: ⊦ reachable-1(H, r, r0) ↔ r ≠ null ∧ r0 ≠ null ∧ r ∈ H ∧ r0 ∈ H ∧ H[r].nxt = r0;%c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%n < n0 ⊦ m + (* n) = m0 + (* n0) ↔ m = m0 + (n0 - n); (s)