E015: Wilson test infeasibility

Preview figure for E015

Tags: number-theory, quantitative-exploration, visualization See: Valid Tags.

Highlights

  • This is a thin wrapper that follows the standard experiment template and delegates the actual computation to :mod:mathxlab.experiments.prime_suite.

  • Writes reproducible artifacts (params.json, report.md, and figures).

  • Designed to surface patterns and “looks-true-until-it-breaks” behavior.

Goal

This is a thin wrapper that follows the standard experiment template and delegates the actual computation to :mod:mathxlab.experiments.prime_suite.

Background (quick refresher)

Research question

Which prime-related claim, heuristic, or algorithm breaks first under a clean, controlled computational sweep, and what does the smallest or clearest counterexample (or deviation) look like?

Why this qualifies as a mathematical experiment

  • Finite procedure: run a bounded search / sweep with recorded parameters.

  • Observable(s): counts, gaps, residues, runtime scaling, or first counterexample witnesses.

  • Parameter space: vary bounds (and sometimes algorithmic choices).

  • Outcome: plots/tables + “witness objects” for failures.

  • Reproducibility: outputs saved to out/e015/ with a parameter snapshot.

Experiment design

  • Computation: bounded enumeration / sampling with explicit limits.

  • Outputs: figures and a short report.md summarizing what was found.

  • Artifacts written:

  • figures/fig_*.png

  • params.json

  • report.md

How to run

make run EXP=e015

or:

uv run python -m mathxlab.experiments.e015

Notes / pitfalls

  • “No counterexample found” only means “none found within the configured bounds”.

  • For probabilistic tests (when used), treat outcomes as evidence, not proof.

Extensions

  • Increase bounds and rerun (recording runtime and memory).

  • Compare alternative heuristics or algorithms on the same parameter grid.

  • Turn found deviations into new, tighter conjectures.

Published run snapshot

If this experiment is included in the docs gallery, include the published snapshot (report + params).

Reproduce:

make run EXP=e015

Parameters

  • n_values: [200, 400, 800, 1200, 1600, 2000, 2400]

Notes

  • Wilson’s theorem says (n-1)! ≡ -1 (mod n) iff n is prime.

  • This is a beautiful characterization, but computing (n-1)! mod n is linear-time in n and becomes impractical fast.

Outputs

  • figures/fig_01_wilson_runtime.png

  • params.json

  • report.md

params.json (snapshot)
{
  "n_values": [
    200,
    400,
    800,
    1200,
    1600,
    2000,
    2400
  ]
}

References

See References.