kernel-Nat.choose_two_mul_succ_le_four_pow
- Kind
- kernel-term
- Status
- checked
Supports: Nat.choose_two_mul_succ_le_four_pow is admitted by the trusted kernel gate with the type recorded in formal.statement.
test "$(cargo run -q --release -p axeyum-lean-kernel --example nat_theorem_inventory -- choose_two_mul_succ_le_four_pow 2>/dev/null | grep -Fc 'Nat.choose_two_mul_succ_le_four_pow 1 ((x0 : AxNat) -> AxNat.le (AxNat.choose (AxNat.succ (AxNat.add x0 x0)) x0) (AxNat.pow (AxNat.succ (AxNat.succ (AxNat.succ (AxNat.succ AxNat.zero)))) x0))')" -ge 1 Evidence notes
`build_nat_prelude` admits this only through the trusted `Kernel::add_declaration` gate, which re-derives the type from the proof term. The check matches the FULL RENDERED TYPE rather than the name: a name-only checker survives a weakened statement, and the weakening that matters here is exactly the one this theorem exists to rule out -- `pow 2 (add m m)` replaced by `pow 2 (succ (add m m))`, which is `choose_le_two_pow` and was already available.