MMPF 1.0.0rc1

MMPF 1.0 RC1

Two modes. Same number. Different route.

MMPF picks a factorization route before it knows how long that route will take, then has to justify the pick afterwards. Performance mode takes the lowest predicted cost. Assurance mode takes the lowest certifiable upper bound, and is usually slower on purpose.

case train_balanced_14
selects no_tree_ecm_light

Performance takes the route with the lowest machine-adjusted predicted cost.

measured cost
regret vs oracle
best in hindsight

Four real rows from results_v1/mode_comparison.csv. Across all 30 cases the two modes pick different routes 24 times, and the assurance bound held in 28 — the two that breached it are both shown here rather than left out.

Status

Version
1.0.0rc1 — a release candidate, not a stable 1.0
Licence
Apache-2.0
Python
3.11+
Modes
performance, assurance, batch
Ledgers
4, replaying under official MMLC Runtime 1.0.0
Series
the fourth 3M project, after MMR-Bench, MMLC and MLF
verified

902 transactions across four MMLF ledgers PASS under the official MMLC Runtime, verified on and again in CI on Python 3.11, 3.12 and 3.13.

What it measures

Thirty cases, five routes, one machine profile. Every figure below is measured rather than modelled.

MeasurePerformanceAssurance
Total benchmark cost99.995 ms188.089 ms
Median regret1.0001.435
p90 regret1.2883.854
CVaR90 regret2.0925.300
Max regret4.2106.745

Assurance costs roughly 1.9× more in total and carries higher regret at every quantile. That is not a defect being reported reluctantly — it is what buying a bound costs, and the bound is the product.

not covered

Assurance selected-cost coverage: 93.333%. In 2 of the 30 cases the measured cost exceeded the bound the mode had declared.

Batch mode

For a large candidate registry and a large batch, individual GCD is replaced by a shared remainder tree. The engine is chosen by calibration, and on this machine the calibration agreed with the measurement.

MeasureValue
Batch size128
Candidate bound10,000
Calibrated engineremainder_tree
Measured best engineremainder_tree
Individual GCD1.666 ms
Remainder tree0.663 ms
Speed-up2.513×
Calibration matched measurementyes

Run it

bash
python -m pip install -e .

mmpf calibrate --output machine/my_machine.json

Factor a number under each mode, and verify the certificate that comes back.

bash
mmpf factor 1000036000099 \
  --mode performance \
  --machine-profile machine/current_machine.json \
  --output performance-cert.json

mmpf factor 1000036000099 \
  --mode assurance \
  --machine-profile machine/current_machine.json \
  --output assurance-cert.json

mmpf verify performance-cert.json

On the sample integer both modes agree — 1000036000099 is 1000003 × 1000033, and both pick tree_1000_rho. Agreement is not the normal case: across the benchmark the two modes diverge 24 times in 30.

Where it sits in 3M

MMPF is the first of the set that has to make a decision rather than record one. The other three give it the vocabulary to justify the decision afterwards.

MLF
Factor profiles, MMLF ledgers, schemas and fingerprints.
MMLC
Executable semantic transactions, conformance and replay.
MMR
Route comparisons, mode benchmarks and machine sensitivity.