Elamur GroupantsโŒ•
โ˜ฐ

algorithm-kmp-tests

The groupant beside algorithms/src/kmp/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

componentlabelwhere
approximantpartialapproximant
astpartialsyntax.json
descriptantpresentdescriptant
invariantpartialapproximant
testsexisting checks referencedchecks

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.

idtypelabelwhere
behavior_complementbehavior_complementpartial source derived modelbehavior_complement
reverse_reconstructionreverse_reconstructionpartial source derived modelreverse_reconstruction
independent_oracleindependent_oraclepartial source derived modelindependent_oracle
property_assumptionsproperty_assumptionspartial source derived modelproperty_assumptions
bounded_coverage_costbounded_coverage_costpartial source derived modelbounded_coverage_cost

Model text

descriptant

kmp test groupant

Epoch 2026-10-29: prospective expectations were saved outside the repository before extraction. Existing inline tests were moved; two new tests extend coverage. Production source prefix remained byte-identical. The new fixtures passed twice and a specifically filtered NEW test rejected a compiled semantic source mutant. Exact domains, assumptions and limitations are in models.md.

Combiner: source identity plus oracle construction plus assertion wiring form a conditional finite-check model. Typed models answer separate questions; no additive inverse identity is assumed. Syntax is partial, macros opaque. A passing test does not establish parent wiring or full-domain correctness.

approximant

Forward, invariant and cost

Generate deterministic fixtures, compute the independently structured oracle, compare production output, and fail on disagreement. Property loops hold their listed assumptions fixed while changing order, padding, or a third sequence. Invariant: each checked fixture has its reference computed without consulting the output being tested; seeds advance by explicit wrapping arithmetic. The models.md bounded_coverage_cost section gives algorithm-specific costs. Assertion execution supplies bounded evidence; it does not prove the production recurrence, all inputs, or source correctness from sidecar validity.

models

KMP test models

Subject: tests.rs at manifest SHA; observation: one test invocation. Domain is the deterministic fixture family in this source and normal allocation. All models are partial source-derived relations with executed bounded evidence.

behavior_complement

Universe U=(fixture, candidate result, test verdict). Given naive window result W, verdict Pass with candidate != W is absent from the oracle-assertion graph. This is an exact complement slice for this assertion, not a proof that all wrong algorithms fail the whole finite suite. Overlap, order, boundary and byte equality errors are observable. Lost-overlap fallback mutant is rejected by the new wide-byte test; no universal implementation rejection is claimed.

reverse_reconstruction

Given a failing equality (actual A, expected W), compatible implementations are every function f with f(text,pattern)=A and A!=W at that fixture. All other fixture outputs remain unconstrained unless observed separately. A passing run's preimage includes every implementation agreeing on the tested finite domain, including overfit implementations. No unique source recovery. Evidence: compiled mutant provides one member of a failure fiber.

independent_oracle

The naive relation scans each valid start using slice equality; it does not reuse prefix tables or fallback states. Empty patterns enumerate boundaries. Agreement is checked on 3,937 old binary pairs and 2,564 new cases: 256 texts times ten sampled patterns, three periodic cases and one long fallback case. Matching implementations can still share specification misunderstandings.

property_assumptions

For nonempty binary p and t, padding t by k sentinel bytes 254 on the left and two on the right gives W(padded,p)={i+k|i in W(t,p)}. Sentinel exclusion and nonempty p prevent extra boundary matches; removing either guard invalidates the rule. The test checks 127 texts x14 patterns x3 paddings=5,334 relations. The expected offsets come from the naive oracle, not the production algorithm.

bounded_coverage_cost

The source fixes all seed arithmetic with wrapping u64 operations. New generated texts have 64 bytes over {0,1,127,128,255}, sampled patterns lengths 0..9; periodic and fallback fixtures add adversarial structure. Naive time per pair is O(n*m), KMP O(n+m+z), memory O(n+m+z). Finite bounded tests cannot establish all byte strings, all lengths, allocation behavior or amortized complexity.

checks

Evidence, 2026-10-29

Cargo crate library suite passed twice, single-threaded: 36 tests at this branch. This file adds two tests to its preserved old suite. Strict Clippy on all crate targets and cargo fmt --check passed. External scratch compiled a changed production source with this exact test file; a filtered new test failed with exit 101. KMP reset overlap fallback, Levenshtein doubled substitution cost, and knapsack used ascending capacities. Only the respective mutant applies to each file. No mutated code is committed. See models.md for exact coverage.

Repeated output comparison excludes Cargo build lines and elapsed-time footer. Wall time is not an algorithm benchmark. New checks remain deterministic and bounded, and no full input-space proof or allocation-failure coverage is claimed.

This page in Markdown โ†’ https://md.groupants.elamur.ai/free/en/mova/algorithms/src/kmp/tests.rs.groupant/