kernel-Nat.primeCounting'_unbounded
- Kind
- kernel-term
- Status
- checked
Supports: pi' takes arbitrarily large values
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- 'Nat.primeCounting'_unbounded' 2>/dev/null | grep -xFc 'Nat.primeCounting'_unbounded 1 ((x0 : AxNat) -> Exists.{1} AxNat (fun (x1 : AxNat) => AxNat.le x0 (AxNat.primeCounting' x1)))')" -ge 1 Evidence notes
Induction on k. The base takes the witness 0 and `Nat.zero_le`. The step eliminates the hypothesis' witness n, takes a prime p > n from `Nat.exists_prime_gt`, and uses the witness succ p: pi'(succ p) = succ (pi'(p)) >= succ (pi'(n)) >= succ k. The first equality is `countRange_succ_of_true`, which needs `Eq Bool (isPrime p) true` -- and that is exactly where `F:nat-is-prime-eq-true-of-prime` is spent. Without it the two halves do not meet and this statement is not reachable from anything else in the prelude.