| bst(t1), bst(t2), b < t1 .leftmost, t1 .leftmost ∈ t1, ∀ a0. a0 ∈ t1 → a0 < a, ∀ a0. a0 ∈ t2 → a < a0, ∀ a0. ¬ a0 ∈ t1 ∨ ¬ a0 ∈ t2, ∀ a, c. a ∈ t1 ∧ c ∈ t2 → a < c, ∀ t0, b. # t0 < # branch(t1, a, t2) → (bst(t0) ∧ b ∈ t0 ∧ b < t0 .leftmost → b = t0 .leftmost ∨ t0 = leaf) ⊦ ¬ b ∈ t2, b = t1 .leftmost, t1 = leaf |
t1 .leftmost ∈ t1, b < t1 .leftmost, bst(t2), bst(t1), b ∈ t2, ∀ a, c. a ∈ t1 ∧ c ∈ t2 → a < c, ∀ a0. ¬ a0 ∈ t1 ∨ ¬ a0 ∈ t2, ∀ a0. a0 ∈ t2 → a < a0, ∀ a0. a0 ∈ t1 → a0 < a, ∀ t0, b. # t0 < # branch(t1, a, t2) → (bst(t0) ∧ b ∈ t0 ∧ b < t0 .leftmost → b = t0 .leftmost ∨ t0 = leaf) ⊦ t1 = leaf, b = t1 .leftmost
[[CONCRETESIMPRULES : ()]]