kernel-Nat.pow_prime_modeq_self
- Kind
- kernel-term
- Status
- checked
Supports: `Nat.pow_prime_modeq_self` is admitted by the kernel with exactly the type in formal.statement, and `Nat.add_pow_modeq_prime` -- the Frobenius identity (a+b)^p = a^p + b^p mod p that Fermat's induction rests on -- is admitted alongside it. Both are pinned by the same test, so the identity Fermat depends on cannot drift while Fermat's own statement stays fixed.
test "$(scripts/cargo-serialized.sh test -p axeyum-lean-kernel --lib fermat_and_frobenius_are_stated_over_primes_not_merely_positive_moduli 2>&1 | grep -Ec 'test result: ok\. 1 passed; 0 failed')" -ge 1 Evidence notes
A footprint check cannot carry this claim: a theorem stating something weaker -- primality replaced by 0 < p, or the vacuous a = a -- has exactly the same empty footprint. Mutation-verified rather than assumed: transposing the exponent in the pinned string (AxNat.pow x1 x0 -> AxNat.pow x0 x1) makes cargo report `43 passed; 1 failed`, naming this test and no other; restored, 44/44 green. The test re-derives from source on every run, rebuilding the whole Nat prelude through add_declaration. Anchored on the exact `1 passed; 0 failed` count, so an unmatched filter -- which prints `running 0 tests ... ok` and exits 0 -- cannot read as success.