mathxlab.experiments.prime_suite

Prime Numbers experiment suite (E014–E046).

Quickstart

from mathxlab.experiments.prime_suite import run_e014, run_e015, CommonParams
Public API

Name

Kind

Summary

CommonParams

class

Shared parameters.

ParamsE014

class

Parameters for E014.

run_e014

function

E014: Primorial ± 1: “Euclid numbers are prime” fails quickly.

ParamsE015

class

Parameters for E015.

run_e015

function

E015: Wilson’s theorem is true, but the naive ‘test’ is unusable at scale.

ParamsE016

class

Parameters for E016.

run_e016

function

E016: Trial division collapses with size; MR stays fast (counterexample to ‘simple is fine’).

ParamsE017

class

Parameters for E017.

run_e017

function

E017: Full sieve memory vs segmented sieve (counterexample to ‘O(N) is fine’).

ParamsE018

class

Parameters for E018.

run_e018

function

E018: Strong pseudoprimes: too few MR bases yields false positives (counterexample).

ParamsE019

class

Parameters for E019.

run_e019

function

E019: Prime density: pi(x) vs x/log x and error curve.

ParamsE020

class

Parameters for E020.

run_e020

function

E020: li(x) is often a better approximation than x/log x (visual counterexample).

ParamsE021

class

Parameters for E021.

run_e021

function

E021: Explicit inequality sanity checks (conditions matter).

ParamsE022

class

Parameters for E022.

run_e022

function

E022: Prime race: pi(x;4,1) vs pi(x;4,3).

ParamsE023

class

Parameters for E023.

run_e023

function

E023: Distribution of primes across residue classes mod q (finite-range bias).

ParamsE024

class

Parameters for E024.

run_e024

function

E024: Ulam spiral: primes in a spiral show diagonal structure.

ParamsE025

class

Parameters for E025.

run_e025

function

E025: Prime gaps are not monotone (counterexample to naive ‘gaps always grow’).

ParamsE026

class

Parameters for E026.

run_e026

function

E026: Gap normalization: g/log p helps compare scales.

ParamsE027

class

Parameters for E027.

run_e027

function

E027: Record prime gaps vs log^2 heuristic (Cramér-style scaling).

ParamsE028

class

Parameters for E028.

run_e028

function

E028: Jumping champions: most frequent gap in sliding windows.

ParamsE029

class

Parameters for E029.

run_e029

function

E029: Twin prime counts vs simple Hardy–Littlewood-style heuristic.

ParamsE030

class

Parameters for E030.

run_e030

function

E030: Cousin and sexy primes: compare counts of prime pairs.

ParamsE031

class

Parameters for E031.

run_e031

function

E031: Prime k-tuple admissibility: mod obstructions are real counterexamples.

ParamsE032

class

Parameters for E032.

run_e032

function

E032: Count small prime constellations (triplets/quadruplets) up to N.

ParamsE033

class

Parameters for E033.

run_e033

function

E033: Small gaps exist often, but that doesn’t make them twins (data-only counterexample).

ParamsE034

class

Parameters for E034.

run_e034

function

E034: Twin prime counts vary strongly across windows (variance counterexample).

ParamsE035

class

Parameters for E035.

run_e035

function

E035: Primes in arithmetic progressions: empirical counts in reduced residues.

ParamsE036

class

Parameters for E036.

run_e036

function

E036: Small arithmetic progressions of primes (3-term and 4-term) in ranges.

ParamsE037

class

Parameters for E037.

run_e037

function

E037: Prime-free intervals exist: n!+2,…,n!+n are all composite.

ParamsE038

class

Parameters for E038.

run_e038

function

E038: Bertrand’s postulate: for n>1 there is a prime in (n, 2n).

ParamsE039

class

Parameters for E039.

run_e039

function

E039: Sophie Germain primes and safe primes (counts in range).

ParamsE040

class

Parameters for E040.

run_e040

function

E040: Palindromic primes: even-length palindromes are divisible by 11 (counterexample).

ParamsE041

class

Parameters for E041.

run_e041

function

E041: Fermat numbers: not all are prime (counterexample at F5).

ParamsE042

class

Parameters for E042.

run_e042

function

E042: Repunit primes: many k are forced composite (counterexamples).

ParamsE043

class

Parameters for E043.

run_e043

function

E043: Pollard rho runtime varies wildly (counterexample to ‘same size => same effort’).

ParamsE044

class

Parameters for E044.

run_e044

function

E044: Solovay–Strassen vs Miller–Rabin (liar rates on random composites).

ParamsE045

class

Parameters for E045.

run_e045

function

E045: Deterministic 64-bit MR: 12 bases vs small subsets (counterexample).

ParamsE046

class

Parameters for E046.

run_e124

class

Parameters for E124.

run_e124

function

E124: Klauber triangle: prime patterns on a triangular array.

ParamsE125

class

Parameters for E125.

run_e125

function

E125: Sacks spiral: primes on an Archimedean spiral (one square per turn).

ParamsE126

class

Parameters for E126.

run_e126

function

E126: Hexagonal number spiral: primes on a hexagonal lattice spiral.

Reference

Classes

class mathxlab.experiments.prime_suite.CommonParams(seed, n_max)[source]

Bases: object

Shared parameters.

Parameters:
  • seed – Random seed.

  • n_max – Upper bound for sieve-based experiments (inclusive).

class mathxlab.experiments.prime_suite.ParamsE014(k_max)[source]

Bases: object

Parameters for E014.

Parameters:

k_max – Number of primorial steps.

class mathxlab.experiments.prime_suite.ParamsE015(n_values)[source]

Bases: object

Parameters for E015.

Parameters:

n_values – Values of n to benchmark for Wilson-style factorial mod.

class mathxlab.experiments.prime_suite.ParamsE016(bit_sizes, samples_per_size)[source]

Bases: object

Parameters for E016.

Parameters:
  • bit_sizes – Bit sizes to benchmark.

  • samples_per_size – Samples per bit size.

class mathxlab.experiments.prime_suite.ParamsE017(n_values, segment_size)[source]

Bases: object

Parameters for E017.

Parameters:
  • n_values – N values to estimate sieve memory for.

  • segment_size – Segment size for segmented sieve.

class mathxlab.experiments.prime_suite.ParamsE018(n_max)[source]

Bases: object

Parameters for E018.

Parameters:

n_max – Search range for pseudoprimes.

class mathxlab.experiments.prime_suite.ParamsE019(n_max)[source]

Bases: object

Parameters for E019.

Parameters:

n_max – Max x for pi(x).

class mathxlab.experiments.prime_suite.ParamsE020(n_max, step)[source]

Bases: object

Parameters for E020.

Parameters:
  • n_max – Max x.

  • step – Step size for numerical integration.

class mathxlab.experiments.prime_suite.ParamsE021(n_max)[source]

Bases: object

Parameters for E021.

Parameters:

n_max – Upper bound.

class mathxlab.experiments.prime_suite.ParamsE022(n_max)[source]

Bases: object

Parameters for E022.

Parameters:

n_max – Upper bound.

class mathxlab.experiments.prime_suite.ParamsE023(n_max, q)[source]

Bases: object

Parameters for E023.

Parameters:
  • n_max – Upper bound.

  • q – Modulus.

class mathxlab.experiments.prime_suite.ParamsE024(size)[source]

Bases: object

Parameters for E024.

Parameters:

size – Odd grid size (size x size).

class mathxlab.experiments.prime_suite.ParamsE025(n_max)[source]

Bases: object

Parameters for E025.

Parameters:

n_max – Upper bound.

class mathxlab.experiments.prime_suite.ParamsE026(n_max, bins)[source]

Bases: object

Parameters for E026.

Parameters:
  • n_max – Upper bound.

  • bins – Histogram bins.

class mathxlab.experiments.prime_suite.ParamsE027(n_max)[source]

Bases: object

Parameters for E027.

Parameters:

n_max – Upper bound.

class mathxlab.experiments.prime_suite.ParamsE028(n_max, window, step)[source]

Bases: object

Parameters for E028.

Parameters:
  • n_max – Upper bound.

  • window – Number of consecutive gaps per window.

  • step – Window step.

class mathxlab.experiments.prime_suite.ParamsE029(n_max)[source]

Bases: object

Parameters for E029.

Parameters:

n_max – Upper bound.

class mathxlab.experiments.prime_suite.ParamsE030(n_max, d_values)[source]

Bases: object

Parameters for E030.

Parameters:
  • n_max – Upper bound.

  • d_values – Differences to count (e.g., 4 and 6).

class mathxlab.experiments.prime_suite.ParamsE031(max_mod)[source]

Bases: object

Parameters for E031.

Parameters:

max_mod – Check admissibility against primes up to this modulus.

class mathxlab.experiments.prime_suite.ParamsE032(n_max)[source]

Bases: object

Parameters for E032.

Parameters:

n_max – Upper bound.

class mathxlab.experiments.prime_suite.ParamsE033(n_max, threshold)[source]

Bases: object

Parameters for E033.

Parameters:
  • n_max – Upper bound.

  • threshold – Gap threshold.

class mathxlab.experiments.prime_suite.ParamsE034(n_max, window, step)[source]

Bases: object

Parameters for E034.

Parameters:
  • n_max – Upper bound.

  • window – Window length.

  • step – Step.

class mathxlab.experiments.prime_suite.ParamsE035(n_max, q)[source]

Bases: object

Parameters for E035.

Parameters:
  • n_max – Upper bound.

  • q – Modulus.

class mathxlab.experiments.prime_suite.ParamsE036(n_max, max_d)[source]

Bases: object

Parameters for E036.

Parameters:
  • n_max – Upper bound.

  • max_d – Max step d to search.

class mathxlab.experiments.prime_suite.ParamsE037(n_values)[source]

Bases: object

Parameters for E037.

Parameters:

n_values – Values of n to demonstrate prime-free runs of length n-1.

class mathxlab.experiments.prime_suite.ParamsE038(n_max)[source]

Bases: object

Parameters for E038.

Parameters:

n_max – Check Bertrand postulate for n up to n_max.

class mathxlab.experiments.prime_suite.ParamsE039(n_max)[source]

Bases: object

Parameters for E039.

Parameters:

n_max – Upper bound for p.

class mathxlab.experiments.prime_suite.ParamsE040(digits_max, limit)[source]

Bases: object

Parameters for E040.

Parameters:
  • digits_max – Max digits to scan palindromes.

  • limit – Stop scanning after this many palindromes.

class mathxlab.experiments.prime_suite.ParamsE041(m_max)[source]

Bases: object

Parameters for E041.

Parameters:

m_max – Max Fermat index m to test.

class mathxlab.experiments.prime_suite.ParamsE042(k_max)[source]

Bases: object

Parameters for E042.

Parameters:

k_max – Max repunit length k.

class mathxlab.experiments.prime_suite.ParamsE043(samples, bits)[source]

Bases: object

Parameters for E043.

Parameters:
  • samples – Number of semiprimes to factor.

  • bits – Bit-size for factors.

class mathxlab.experiments.prime_suite.ParamsE044(samples, bits, bases)[source]

Bases: object

Parameters for E044.

Parameters:
  • samples – Random odd integers to test.

  • bits – Bit size.

  • bases – Bases per test.

class mathxlab.experiments.prime_suite.ParamsE045(samples, bits)[source]

Bases: object

Parameters for E045.

Parameters:
  • samples – Random odd integers to test.

  • bits – Bit size.

class mathxlab.experiments.prime_suite.ParamsE046(n_max, mr_bases)[source]

Bases: object

Parameters for E046.

Parameters:
  • n_max – Range end.

  • mr_bases – Base set for fast MR stage.

class mathxlab.experiments.prime_suite.ParamsE124(size)[source]

Bases: object

Parameters for E124.

Parameters:

size – Grid size (odd). The triangle visualizes integers 1..size^2.

class mathxlab.experiments.prime_suite.ParamsE125(size)[source]

Bases: object

Parameters for E125.

Parameters:

size – Scale parameter (odd). The experiment visualizes integers 1..size^2.

class mathxlab.experiments.prime_suite.ParamsE126(size)[source]

Bases: object

Parameters for E126.

Parameters:

size – Scale parameter (odd). The experiment visualizes integers 1..size^2.

Functions

mathxlab.experiments.prime_suite.run_e014(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E014: Primorial ± 1: “Euclid numbers are prime” fails quickly.

mathxlab.experiments.prime_suite.run_e015(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E015: Wilson’s theorem is true, but the naive ‘test’ is unusable at scale.

mathxlab.experiments.prime_suite.run_e016(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E016: Trial division collapses with size; MR stays fast (counterexample to ‘simple is fine’).

mathxlab.experiments.prime_suite.run_e017(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E017: Full sieve memory vs segmented sieve (counterexample to ‘O(N) is fine’).

mathxlab.experiments.prime_suite.run_e018(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E018: Strong pseudoprimes: too few MR bases yields false positives (counterexample).

mathxlab.experiments.prime_suite.run_e019(*, out_dir, seed, figures_dir, report_path, params_path, n_max=2000000)[source]

E019: Prime density: pi(x) vs x/log x and error curve.

mathxlab.experiments.prime_suite.run_e020(*, out_dir, seed, figures_dir, report_path, params_path, n_max=3000000)[source]

E020: li(x) is often a better approximation than x/log x (visual counterexample).

mathxlab.experiments.prime_suite.run_e021(*, out_dir, seed, figures_dir, report_path, params_path, n_max=2000000)[source]

E021: Explicit inequality sanity checks (conditions matter).

mathxlab.experiments.prime_suite.run_e022(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E022: Prime race: pi(x;4,1) vs pi(x;4,3).

mathxlab.experiments.prime_suite.run_e023(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E023: Distribution of primes across residue classes mod q (finite-range bias).

mathxlab.experiments.prime_suite.run_e024(*, out_dir, seed, figures_dir, report_path, params_path, size=301)[source]

E024: Ulam spiral: primes in a spiral show diagonal structure.

mathxlab.experiments.prime_suite.run_e025(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E025: Prime gaps are not monotone (counterexample to naive ‘gaps always grow’).

mathxlab.experiments.prime_suite.run_e026(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E026: Gap normalization: g/log p helps compare scales.

mathxlab.experiments.prime_suite.run_e027(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E027: Record prime gaps vs log^2 heuristic (Cramér-style scaling).

mathxlab.experiments.prime_suite.run_e028(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E028: Jumping champions: most frequent gap in sliding windows.

mathxlab.experiments.prime_suite.run_e029(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E029: Twin prime counts vs simple Hardy–Littlewood-style heuristic.

mathxlab.experiments.prime_suite.run_e030(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E030: Cousin and sexy primes: compare counts of prime pairs.

mathxlab.experiments.prime_suite.run_e031(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E031: Prime k-tuple admissibility: mod obstructions are real counterexamples.

mathxlab.experiments.prime_suite.run_e032(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E032: Count small prime constellations (triplets/quadruplets) up to N.

mathxlab.experiments.prime_suite.run_e033(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E033: Small gaps exist often, but that doesn’t make them twins (data-only counterexample).

mathxlab.experiments.prime_suite.run_e034(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E034: Twin prime counts vary strongly across windows (variance counterexample).

mathxlab.experiments.prime_suite.run_e035(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E035: Primes in arithmetic progressions: empirical counts in reduced residues.

mathxlab.experiments.prime_suite.run_e036(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E036: Small arithmetic progressions of primes (3-term and 4-term) in ranges.

mathxlab.experiments.prime_suite.run_e037(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E037: Prime-free intervals exist: n!+2,…,n!+n are all composite.

mathxlab.experiments.prime_suite.run_e038(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E038: Bertrand’s postulate: for n>1 there is a prime in (n, 2n).

mathxlab.experiments.prime_suite.run_e039(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E039: Sophie Germain primes and safe primes (counts in range).

mathxlab.experiments.prime_suite.run_e040(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E040: Palindromic primes: even-length palindromes are divisible by 11 (counterexample).

mathxlab.experiments.prime_suite.run_e041(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E041: Fermat numbers: not all are prime (counterexample at F5).

mathxlab.experiments.prime_suite.run_e042(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E042: Repunit primes: many k are forced composite (counterexamples).

mathxlab.experiments.prime_suite.run_e043(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E043: Pollard rho runtime varies wildly (counterexample to ‘same size => same effort’).

mathxlab.experiments.prime_suite.run_e044(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E044: Solovay–Strassen vs Miller–Rabin (liar rates on random composites).

mathxlab.experiments.prime_suite.run_e045(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E045: Deterministic 64-bit MR: 12 bases vs small subsets (counterexample).

mathxlab.experiments.prime_suite.run_e046(*, out_dir, seed, figures_dir, report_path, params_path)[source]

E046: A practical prime-testing pipeline (and how it can fail if tuned badly).

mathxlab.experiments.prime_suite.run_e124(*, out_dir, seed, figures_dir, report_path, params_path, size=301)[source]

E124: Klauber triangle: prime patterns on a triangular array.

Notes

The Klauber triangle (1932) places row n as the consecutive integers (n-1)^2+1 .. n^2 (so each row has length 2n-1). When primes are highlighted, lines rich in primes become visible (often associated with quadratic polynomials), similar in spirit to the Ulam spiral.

This experiment is deterministic; seed is accepted for framework consistency but does not affect the output.

mathxlab.experiments.prime_suite.run_e125(*, out_dir, seed, figures_dir, report_path, params_path, size=301)[source]

E125: Sacks spiral: primes on an Archimedean spiral (one square per turn).

Notes

In the Sacks spiral, integer n is placed at polar coordinates:

r = sqrt(n), θ = 2π r

so perfect squares lie on the positive x-axis (θ is a multiple of 2π). Primes are highlighted to reveal curve-like prime concentrations.

This experiment is deterministic; seed is accepted for framework consistency but does not affect the output.

mathxlab.experiments.prime_suite.run_e126(*, out_dir, seed, figures_dir, report_path, params_path, size=301)[source]

E126: Hexagonal number spiral: primes on a hexagonal lattice spiral.

Notes

This is a hex-grid analogue of the Ulam spiral: integers are placed in a spiral on a hexagonal tiling and primes are highlighted.

The parameter size controls the max integer via n_max = size^2 so the prime counts are comparable to square-grid experiments.

This experiment is deterministic; seed is accepted for framework consistency but does not affect the output.