This file introduces merge sort as the Chapter 2 divide-and-conquer example.
For this first complete chapter pass, we use Lean's verified List.mergeSort
implementation and expose CLRS-facing theorem names. This keeps the chapter
workflow focused on the algorithmic contract:
merge sort returns a sorted list;
merge sort preserves the input elements.
It also records the exact solution of the textbook recurrence on powers of two:
T(1) = 1 and T(2^(k+1)) = 2 * T(2^k) + 2^(k+1).
A later strengthening can inline the merge routine and prove the split/merge
lemmas locally if we want a from-scratch artifact.
namespaceCLRSnamespaceChapter02
Merge sort over natural numbers, using the standard nondecreasing order.