algs-exchange-lincomb-removeat-insertat-1
- Kind
- kernel-term
- Status
- checked
Supports: Four AlgS.Exchange theorems admit with empty footprints, asserted only AFTER Environment::get. Each is declared on its OWN in dependency order by each_result_is_admitted_on_its_own, because one bad declaration poisons a shared build and a bundled expect cannot say which declaration a rejection came from -- that harness is what located this lemma's one rejection, a symm applied at the wrong pair. The rendered type is read from the kernel and asserted to mention linComb, removeAt at BOTH carriers, the AlgS.Index.le bound and AlgS.Module.IsModule, so a version that had lost the bound or cut only the coefficient family would fail. op_swap_last is separately asserted NOT to mention AlgS.Module: it is a pure CommGroup fact. One negative control must be REFUSED: op_swap_last's middle step with comm at the wrong pair, comm a c where comm b c belongs.
out=$(cargo test -p axeyum-lean-kernel --lib --release -- --test-threads=4 nat_prelude::vector_space_exchange nat_prelude::vector_space_steinitz 2>&1) && test "$(printf "%s\n" "$out" | grep -cE 'test result: ok\. 18 passed; 0 failed')" -ge 1 Evidence notes
The pinned count is 18. Mutation, RUN 2026-09-06 against a 25-test baseline (filter nat_prelude::vector_space): reversing this lemma's order bound from le i n to le n i killed 7 of 25. The kill is confined to AlgS.Exchange because the reversed bound is rejected by the kernel exactly where the split hands its hypothesis to linComb_insertAt, and nothing in AlgS.Index depends on it.