| 〈build_rec#(0; x, to)〉 (x = x1 ∧ to = to1), x ≠ [], 0 ≤ max(x), to1 ≠ fail → x = depths(to1 .t, 0) + x1, to1 = fail → (∀ t, x1. x ≠ depths(t, 0) + x1), x1 ≠ [], ¬ (fail = fail → (∀ t. x ≠ depths(t, 0))) ⊦ |
〈build_rec#(0; x, to)〉 (x = x1 ∧ to = fail), x = depths(t, 0), depths(t, 0) ≠ depths(fail .t, 0) + x1, x1 ≠ [], 0 ≤ max(depths(t, 0)), ∀ t0, x1. depths(t, 0) ≠ depths(t0, 0) + x1 ⊦
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPSEQ : ⊦ (x + y) + z = x + y + z], [CSIMPSEQ : ⊦ depths(t0, i) = depths(t1, i) + y ↔ y = [] ∧ t0 = t1], [CSIMPSEQ : ⊦ depths(t, i) ≠ []])]]