# Conjectures for Distribution of Primes

Nico did another test run of his program for number theory conjectures–for upper bounds for prime_pi(n)=pi(n), the number of primes less than or equal to n. He started with a few objects (numbers), ran conjectures, and then added objects as they proved to be counterexamples to existing conjectures. Here’s the invariants input to the program:

sage: invariants = [(‘prime_pi’,prime_pi), (‘euler_phi’, euler_phi), number, digits10, digits2, (‘sigma’, sigma), count_divisors, next_prime, previous_prime, count_quadratic_residues]

Here’s what he got:

prime_pi(x) <= previous_prime(x),
prime_pi(x) <= (number(x) – 1)/digits10(x),
prime_pi(x) <= 1/2*sigma(x),
prime_pi(x) <= digits10(x) + euler_phi(x),
prime_pi(x) <= maximum(count_quadratic_residues(x), euler_phi(x) + 1),
prime_pi(x) <= maximum(euler_phi(x), 1/2*number(x)),
prime_pi(x) <= digits2(x)^2 + digits10(x),
prime_pi(x) <= count_quadratic_residues(x) + 1/2*euler_phi(x) – 1,
prime_pi(x) <= (next_prime(x) + number(x) – 1)/digits2(x),
prime_pi(x) <= 2*sigma(x)/digits2(x),
prime_pi(x) <= maximum(euler_phi(x), 2*count_divisors(x)),
prime_pi(x) <= (previous_prime(x) + euler_phi(x))/log(number(x)),
prime_pi(x) <= (digits10(x)^2 + 1)^2,
prime_pi(x) <= maximum(1/2*previous_prime(x), digits10(x) + digits2(x)),
prime_pi(x) <= next_prime(x)/(log(number(x)) – 1),
prime_pi(x) <= sigma(x)*count_divisors(x)/digits2(x),
prime_pi(x) <= 2*(number(x) + 1)/digits2(x),
prime_pi(x) <= 1/2*digits2(x) + 1/4*next_prime(x),
prime_pi(x) <= maximum(digits2(x)^2, euler_phi(x) – count_divisors(x)),
prime_pi(x) <= maximum(euler_phi(x) – 1, 2*count_divisors(x)),
prime_pi(x) <= 2*(next_prime(x) – 1)/digits2(x),
prime_pi(x) <= log(10)*previous_prime(x)/(log(digits10(x))*digits2(x)),
prime_pi(x) <= 2*count_quadratic_residues(x) + digits10(x) + 2,
prime_pi(x) <= sigma(x)/(log(number(x)) – 1),
prime_pi(x) <= sqrt(1/count_divisors(x))*next_prime(x),
prime_pi(x) <= next_prime(x)/(digits10(x) + 1) + 1,
prime_pi(x) <= 4*sqrt(previous_prime(x)) + 1,
prime_pi(x) <= (euler_phi(x) + number(x))/log(next_prime(x)),
prime_pi(x) <= (sigma(x) + digits2(x))/(digits10(x) + 1),
prime_pi(x) <= -previous_prime(x) + 1/2*count_quadratic_residues(x) + sigma(x),
prime_pi(x) <= sigma(x)*count_divisors(x)/digits2(x),
prime_pi(x) <= 1/2*count_quadratic_residues(x) – euler_phi(x) + next_prime(x),
prime_pi(x) <= digits2(x)^2 – previous_prime(x) + next_prime(x),
prime_pi(x) <= (previous_prime(x) + digits2(x))/sqrt(count_divisors(x)),
prime_pi(x) <= maximum(2*digits2(x), previous_prime(x) – count_quadratic_residues(x)),
prime_pi(x) <= maximum(euler_phi(x) – 1, count_quadratic_residues(x) + digits2(x)),