kernel-Nat.totient_eq_zero
- Kind
- kernel-term
- Status
- checked
Supports: n.totient = 0 iff n = 0
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- totient_eq_zero 2>/dev/null | grep -Ec '^Nat\.totient_eq_zero[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits this theorem through the trusted `Kernel::add_declaration` gate, which re-checks the constructed proof term against the stated type. Case-split on `n`: `n = 0` holds by the `countRange` base case directly (`Eq.refl`); `n = succ k` uses the top index `k` of the range `[0,n)` as the witness -- `Nat.coprime_succ_self k` (new, unregistered as its own fact: `gcd k (succ k) = 1` for every `k`) promotes the predicate at `k` to `true`, so `countRange`'s succ-case defining equation makes `totient (succ k)` defeq `succ (countRange f k)`, never `0` (`succ_ne_zero`), matching `succ k` itself never being `0` -- both `Iff` legs are then `ex_falso` from that contradiction. `nat_theorem_inventory` exits non-zero for a name that does not exist, and the `grep -c` requires the admitted declaration to be printed.