algorithm-splay-tree-tests
The groupant beside algorithms/src/splay_tree/tests.rs in the Mova repository: what the code computes, what it never does, how to go back from its outputs, its invariants, cost and checks.
Facts
Implementation material. A Mova code model describes this code at one source revision: partial models, finite checks and their stated scope. It is not a reviewed general exposition, and its labels are shown as written, never raised.
Components
| component | label | where |
|---|---|---|
| approximant | partial | Forward |
| ast | partial | syntax.json |
| cost | conditional | Cost |
| descriptant | present | descriptant |
| invariant | partial | Invariant |
| tests | bounded executed | evidence |
Obernants
The typed relations around the forward model: the behaviour complement (what the code never does), the reverse reconstruction (every input compatible with an output) and specialised views.
| id | type | label | where |
|---|---|---|---|
behavior_complement | behavior_complement | partial relational specification | behavior_complement |
reverse_reconstruction | reverse_reconstruction | partial relational specification | reverse_reconstruction |
oracle_independence | oracle_independence | partial relational specification | oracle_independence |
mutation_sensitivity | mutation_sensitivity | partial relational specification | mutation_sensitivity |
finite_schedule | finite_schedule | partial relational specification | finite_schedule |
Model text
descriptant
Stateful iterative splay search tree tests
Original std-only Rust implementation and fixtures. Reference: Sleator and Tarjan, Self-Adjusting Binary Search Trees, JACM 32(3), 1985.
Prospective epoch, 2026-10-30
Domain, recurrence, invariants, costs and validation plan were saved before implementation in $MOVA_DATA/runs/octopus-wave26-indexes-2026-10-30/prospective.md. No runtime gain was predicted or measured.
Executed epoch, 2026-10-30
Three tests: exhaustive_stateful_oracle, zig_zig_zag_and_missing_access, capacity_and_full_width.
All46656 six-step insert/access schedules over three keys versus BTreeSet; hit roots and independently traversed pre-call last-visited roots checked after every operation. Independent BST bound/parent/reachability checks, targeted alternating deep accesses, empty/miss,4096-key cap and full-width keys.
Limits
Exact bounded APIs only. No generic 1/2/5/10% accuracy surrogate is supported. Finite tests do not prove universal correctness or runtime gains. Standard Vec/Box/BTreeMap allocation failure may abort or panic; allocator refusal is not injected. No callbacks, I/O or concurrency effects. Partial Rust syntax is source-bound; macro expansion, semantic AST proof and whole-Mova quality remain gaps.
model
Mathematical model
Forward
Execute deterministic fixtures, compare exact API values and state against independent finite oracles, then report success iff all assertions hold. All46656 six-step insert/access schedules over three keys versus BTreeSet; hit roots and independently traversed pre-call last-visited roots checked after every operation. Independent BST bound/parent/reachability checks, targeted alternating deep accesses, empty/miss,4096-key cap and full-width keys.
Invariant
Fixtures are deterministic, production and oracle observations are compared exactly; state checks inspect parent edges and order where relevant. Assertions fail on disagreement; no benchmark thresholds enter correctness.
Cost
Bounded finite enumeration plus production/oracle work; exhaustive here means the documented small fixture universe only. Runs use ordinary allocator behavior; resource failure is not injected.
behavior_complement
For terminating finite harness executions, reports that disagree with the conjunction of assertions are excluded. Passing a candidate with any fixture mismatch is absent from the specified relation. Abort/nontermination are outside the observation universe; this relation is not a universal production correctness proof.
reverse_reconstruction
A pass admits every implementation agreeing on these finite observations, including implementations differing arbitrarily outside the fixtures. A failure admits production defects or oracle defects; the report alone does not uniquely reconstruct the cause.
oracle_independence
All46656 six-step insert/access schedules over three keys versus BTreeSet; hit roots and independently traversed pre-call last-visited roots checked after every operation. Independent BST bound/parent/reachability checks, targeted alternating deep accesses, empty/miss,4096-key cap and full-width keys.
mutation_sensitivity
Negate access membership boolean after splaying; exhaustive_stateful_oracle must fail. Source bytes are restored before the successful positive rerun. These controls establish sensitivity only to the chosen defects.
finite_schedule
Three tests: exhaustive_stateful_oracle, zig_zig_zag_and_missing_access, capacity_and_full_width. Counts and repeat receipts are retained externally; neither repeatability nor test count guarantees unseen behavior.
Gaps
Exact bounded APIs only. No generic 1/2/5/10% accuracy surrogate is supported. Finite tests do not prove universal correctness or runtime gains. Standard Vec/Box/BTreeMap allocation failure may abort or panic; allocator refusal is not injected. No callbacks, I/O or concurrency effects.
evidence
Evidence, 2026-10-30
Four identical normalized runs: 706 tests; 14 new tests. kd_tree: compiled production mutant exit Some(101), named assertion exhaustive_grid_oracle; exact restoration and positive rerun exit Some(0). bk_tree: compiled production mutant exit Some(101), named assertion exhaustive_metric_oracle; exact restoration and positive rerun exit Some(0). interval_tree: compiled production mutant exit Some(101), named assertion exhaustive_closed_overlap_oracle; exact restoration and positive rerun exit Some(0). treap: compiled production mutant exit Some(101), named assertion exhaustive_operation_oracle; exact restoration and positive rerun exit Some(0). splay_tree: compiled production mutant exit Some(101), named assertion exhaustive_stateful_oracle; exact restoration and positive rerun exit Some(0).
Strict mova-algorithms all-target Clippy passed; focused rustfmt passed. Receipts: $MOVA_DATA/runs/octopus-wave26-indexes-2026-10-30. Two freshly generated syntax projections must compare identical before syntax.json installation. No benchmark or training/quality measurement is claimed.
For this module: Three tests: exhaustive_stateful_oracle, zig_zig_zag_and_missing_access, capacity_and_full_width.
This page in Markdown โ https://md.groupants.elamur.ai/free/en/mova/algorithms/src/splay_tree/tests.rs.groupant/