| x1 = 1 ' + 3 ' + 2 ' + 2 ', to3 = fail, x0 = x1 ∧ d0 = 1, h0 = head(x0) ⊦ 〈to3 := some(Leaf), x1 := pop(x0)〉 〈if to3 = fail then to0 := fail else { to := fail ; build_rec#(1; x1, to) ; if to = fail then to0 := fail else to0 := some(Node(to3 .t, to .t)) }〉 〈to1 := to0 ; if x1 ≠ [] then to1 := fail〉 to1 = fail |
x1 = 1 ' + 3 ' + 2 ' + 2 ', to3 = fail, x0 = x1 ∧ d0 = 1, h0 = head(x0), to2 = some(Leaf) ∧ x = pop(x0) ⊦ 〈if to2 = fail then to0 := fail else { to := fail ; build_rec#(1; x, to) ; if to = fail then to0 := fail else to0 := some(Node(to2 .t, to .t)) }〉 〈to1 := to0 ; if x ≠ [] then to1 := fail〉 to1 = fail
[[CONCRETESIMPRULES : ()]]