algs-poly-mul-assoc-1
- Kind
- kernel-term
- Status
- checked
Supports: AlgS.Poly.mulAssoc admits through the trusted Kernel::add_declaration gate with an empty Kernel::axiom_footprint, together with the two lemmas it rests on (AlgS.Poly.mul_succ and AlgS.Poly.antidiagFrom_mul_right), and is one of the twenty-three fields Kernel::add_declaration re-checked when admitting AlgS.Poly.commRing. The suite asserts the two association orders are NOT definitionally equal at n = 1, 2 and 3 -- if they were, this theorem would be refl and carry no content -- and pins the left side at n = 1 to ((p1*q0 + p0*q1) * s0) + ((p0*q0) * s1) with a negative twin that pairs the inner sums with the other s index. The negative control reuses the admitted proof term against the conclusion with the two right-hand factors swapped (p * (s * q) for p * (q * s)) and requires a refusal, with the honest restatement admitted in the same test as the positive twin. A source mutation of the join step's R.mulAssoc instantiation was measured to make the trusted gate return TypeMismatch.
out=$(RUST_MIN_STACK=1073741824 cargo test -p axeyum-lean-kernel --lib --release poly_setoid_tests -- --test-threads=4 2>&1) && test "$(printf "%s\n" "$out" | grep -cE 'test result: ok\. 17 passed; 0 failed')" -ge 1 Evidence notes
The pinned count is 17. A dropped or renamed test changes the count and fails the command. Five of the seventeen are rejection controls, each carrying a POSITIVE TWIN in the same test: a record-field or proof-term mutation poisons the whole prelude build (measured: mutating mulAssoc's join step made all 17 die on the fixture's expect), so a refusal is only evidence about the field once the honest reconstruction is shown to admit beside it. Each of the five controls was itself mutated to the honest statement and exactly those five died, the other twelve passing.