| x2 = x ⊦ 〈build_rec#(0; x, to)〉 〈to0 := to, x0 := x ; if x0 ≠ [] then to0 := fail〉 (to0 ≠ fail → x2 = depths(to0 .t, 0)) |
x ≠ [], x = x0, i ≤ j, max(x) ≤ j ⊦ 〈build_rec#(i; x, to)〉 (to ≠ fail → x0 = depths(to .t, i) + x)
x2 = x, x = [] ∨ x ≠ x ∨ ¬ 0 ≤ max(x) ∨ ¬ max(x) ≤ max(x) ⊦ 〈build_rec#(0; x, to)〉 〈to0 := to, x0 := x ; if x0 ≠ [] then to0 := fail〉 (to0 ≠ fail → x2 = depths(to0 .t, 0))
〈x1 := x〉 〈build_rec#(0; x, to)〉 (to ≠ fail → x1 = depths(to .t, 0) + x), x2 = x ⊦ 〈build_rec#(0; x, to)〉 〈to0 := to, x0 := x ; if x0 ≠ [] then to0 := fail〉 (to0 ≠ fail → x2 = depths(to0 .t, 0))
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (x, x, 0, max(x), to)]]