This section introduces a compact mathematical B-tree surface for the first
Chapter 18 pass. It records key membership, a minimum-degree validity predicate,
search correctness, and the CLRS minimum-key lower-bound expression used by the
height theorem.
Main results:
Theorem BTree.search_correct: Boolean search is equivalent to key
membership.
Theorems BTree.search_true_iff, BTree.search_true_of_mem,
BTree.mem_of_search_true, BTree.search_false_iff,
BTree.search_false_of_not_mem, and
BTree.not_mem_of_search_false: direct success and failure wrappers for
the Boolean search specification.
Theorem BTree.minKeys_zero: the CLRS minimum-key expression is one at
height zero.
Theorems BTree.minKeys_pos and BTree.one_le_minKeys: for a
positive minimum degree, the expression is positive and at least one.
Theorem BTree.minKeys_lower_bound: the first-pass minimum-key function
exposes the CLRS lower-bound expression 2 * t^h - 1.
Theorem BTree.minKeys_succ: the CLRS lower-bound expression satisfies
the height-step recurrence used by the B-tree height analysis.
Theorems BTree.minKeys_le_succ and
BTree.minKeys_monotone_height: the CLRS lower-bound expression is
monotone as height increases.
Current gaps:
Node occupancy, separator ordering, and same-depth leaf invariants are
represented by the abstract validity predicate only. They are strengthening
targets for the full B-tree implementation proof.
namespaceCLRSnamespaceChapter18
A first-pass B-tree node stores a list of keys and a list of child trees.
First-pass validity predicate. It keeps the CLRS minimum-degree side condition
visible while later refinements add occupancy, separator, and leaf-depth fields.