E044: Solovay–Strassen vs. Miller–Rabin (liars)

Preview figure for E044

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/e044/ 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=e044

or:

uv run python -m mathxlab.experiments.e044

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=e044

Parameters

  • samples: 4000

  • bits: 32

  • bases: [2, 3, 5, 7, 11]

Notes

  • Both tests are probabilistic; liar rates depend on bases and on the composite distribution.

  • In practice, Miller–Rabin with strong base sets is often preferred.

params.json (snapshot)
{
  "bases": [
    2,
    3,
    5,
    7,
    11
  ],
  "bits": 32,
  "samples": 4000
}

References

See References.