| 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 |
x1 = 1 ' + 3 ' + 2 ' + 2 ', to3 = fail, x0 = x1 ∧ d0 = 1, h0 = head(x0), to2 = some(Leaf) ∧ x = pop(x0) ⊦ 〈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 : ([CSIMPSEQ : ⊦ fail ≠ some(t)])]]