kernel-Nat.eq_or_eq_of_totient_eq_totient
- Kind
- kernel-term
- Status
- checked
Supports: a | b -> totient a = totient b -> a = b \/ 2*a = b, with the whole rendered type pinned.
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- eq_or_eq_of_totient_eq_totient 2>/dev/null | tr '\t' ' ' | grep -Fc 'Nat.eq_or_eq_of_totient_eq_totient 4 ((x0 : AxNat) -> ((x1 : AxNat) -> ((x2 : AxNat.dvd x0 x1) -> ((x3 : Eq.{1} AxNat (AxNat.totient x0) (AxNat.totient x1)) -> Or (Eq.{1} AxNat x0 x1) (Eq.{1} AxNat (AxNat.mul (AxNat.succ (AxNat.succ AxNat.zero)) x0) x1)))))')" -ge 1 Evidence notes
The grep pins the WHOLE rendered type. Verified both directions with /usr/bin/grep -Fc explicitly (not the interactive-shell ugrep): the real name gives count 1; a fabricated name (`eq_or_eq_of_totient_eq_totient_nonexistent_xyz`) gives count 0 (the tool prints nothing and exits nonzero for an absent name), so `test ... -ge 1` fails as required. Exactly one name is passed, since `nat_theorem_inventory` silently keeps only the LAST of several name arguments (measured 2026-08-30).