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