| 〈build_rec#(0; x, to)〉 (x = x1 ∧ to = to1), x2 = x, x ≠ [], 0 ≤ max(x), x0 = x, to1 ≠ fail → x0 = depths(to1 .t, 0) + x1 ⊦ 〈to0 := to1, x0 := x1〉 〈if x0 ≠ [] then to0 := fail〉 (to0 = fail → (∀ t. x2 ≠ depths(t, 0))) |
〈build_rec#(0; x, to)〉 (x = x1 ∧ to = to1), x2 = x, x ≠ [], 0 ≤ max(x), x0 = x, to1 ≠ fail → x0 = depths(to1 .t, 0) + x1, to2 = to1 ∧ x3 = x1 ⊦ 〈if x3 ≠ [] then to2 := fail〉 (to2 = fail → (∀ t. x2 ≠ depths(t, 0)))
[[CONCRETESIMPRULES : ()]]