{"id":"lupine-refinement-sprint-announcement","title":"Lupine Refinement Sprint Announcement","subtitle":"Five theorems, one benchmark, zero sorry — PR-ready summary of the latest formalization sprint.","category":"validation","tags":["announcement","formalization","press","mlip","benchmark"],"source":"articles/docs/ANNOUNCEMENT-lupine-refinement-sprint-2026-06-27.md","lang":"en","words":812,"readMinutes":4,"toc":[{"depth":2,"text":"TL;DR — what we shipped","id":"tl-dr-what-we-shipped"},{"depth":2,"text":"Why this matters","id":"why-this-matters"},{"depth":2,"text":"The 3×3×3 Layer 2 benchmark campaign","id":"the-3-3-3-layer-2-benchmark-campaign"},{"depth":2,"text":"For the press","id":"for-the-press"},{"depth":3,"text":"One-paragraph summary","id":"one-paragraph-summary"},{"depth":3,"text":"Key talking points","id":"key-talking-points"},{"depth":2,"text":"Social media thread (ready to post)","id":"social-media-thread-ready-to-post"},{"depth":2,"text":"What changed in the repos","id":"what-changed-in-the-repos"},{"depth":2,"text":"Contact / how to follow","id":"contact-how-to-follow"}],"html":"<h1 id=\"lupine-refinement-sprint-five-theorems-one-benchmark-zero-sorry\">Lupine Refinement Sprint: Five Theorems, One Benchmark, Zero <code>sorry</code></h1><p><strong>Date:</strong> 2026-06-27<br><strong>Announcement type:</strong> public / press / investor update<br><strong>Canonical links:</strong></p>\n<ul>\n<li>Public library: <a href=\"https://library.lupine.science\">https://library.lupine.science</a></li>\n<li>Lupine source: <a href=\"https://github.com/alexwelcing/lupine\">https://github.com/alexwelcing/lupine</a></li>\n<li>Rhizo mirror: <a href=\"https://github.com/alexwelcing/lupine-rhizo\">https://github.com/alexwelcing/lupine-rhizo</a></li>\n<li>Ledger site source: <a href=\"https://github.com/alexwelcing/lupine-ledger\">https://github.com/alexwelcing/lupine-ledger</a></li>\n</ul>\n<hr>\n<h2 id=\"tl-dr-what-we-shipped\">TL;DR — what we shipped</h2><ol>\n<li><strong>No-harm guarantee for the 1-D shared-error correction.</strong> We proved in Lean that when the shared error lies on a 1-D manifold, the projected correction never increases the residual norm, then aligned the Rust <code>mlip_correct</code> coefficient exactly with the Lean <code>alpha</code>.</li>\n<li><strong>Rank-k transferability bound for real alloys.</strong> We extended the 1-D sine-of-principal-angle bound to rank-k subspaces and locked the Mg-Li / Al-Cu-style LOOCV reasoning behind a build-locked theorem.</li>\n<li><strong>Active sampling acquisition contract.</strong> We formalized the greedy residual-max rule and proved both a one-step optimality theorem and a rank-k sample-complexity bound.</li>\n<li><strong>Composition optimizer hardening.</strong> <code>mlip_optimize</code> now carries elastic-stability guards, moduli-consistency checks, R² refusal, jackknife RMSE, and an optimality-gap estimate.</li>\n<li><strong>Epistemic provenance tags.</strong> Every benchmark entry is now tagged <code>synthetic</code>, <code>nistIpr</code>, or <code>experiment</code>; the validation report warns when synthetic fixtures are present so they cannot be mistaken for empirical evidence.</li>\n</ol>\n<p>All five areas compile: <code>lake build OpenDistillationFactory</code> is green and <code>cargo test</code> / <code>cargo clippy --all-targets -- -D warnings</code> pass.</p>\n<hr>\n<h2 id=\"why-this-matters\">Why this matters</h2><p>Machine-learned interatomic potentials (MLIPs) are being asked to predict elastic constants, defect energies, and phase stability for real alloys. Before we trust them for high-stakes materials decisions, three questions need rigorous answers:</p>\n<ul>\n<li><strong>Will a correction make any potential worse?</strong> The 1-D no-harm theorem answers “no” for the shared-error case.</li>\n<li><strong>How much can we trust a correction trained on one alloy class when applied to another?</strong> The rank-k transfer bound answers with <code>sin θ_k · ‖target‖</code>.</li>\n<li><strong>Which expensive simulation should we run next?</strong> The active-sampling contract justifies the greedy residual-max heuristic with a proven bound.</li>\n<li><strong>Are recommended compositions physically sane?</strong> The hardened optimizer refuses Born-unstable or statistically unsupported fits.</li>\n<li><strong>Are we calling synthetic tests empirical?</strong> Provenance tags enforce honesty at the data-entry level, with Lean-backed checks for NIST-backed claims.</li>\n</ul>\n<hr>\n<h2 id=\"the-3-3-3-layer-2-benchmark-campaign\">The 3×3×3 Layer 2 benchmark campaign</h2><p>We are now running the 56 element/model tasks of the Layer 2 3×3×3 16-element cubic-metal elastic-constant grid concurrently in isolated GCP runs (14 elements × 4 universal MLIPs: M3GNet, CHGNet, TensorNet, QET, each at PBE and r2SCAN). The 4×4×4 supercell comparison is postponed; the 3×3×3 grid gives the precision/cost ratio we need for the public preprint.</p>\n<p>The benchmark artifacts are already in the public library:</p>\n<ul>\n<li><a href=\"https://library.lupine.science/articles/mlip-elastic-benchmark/mlip-elastic-benchmark-preprint-2026-06-27.html\">MLIP Elastic Benchmark Preprint</a></li>\n<li><a href=\"https://library.lupine.science/articles/mlip-elastic-benchmark/mlip-elastic-benchmark-protocol-2026-06-27.html\">MLIP Elastic Benchmark Protocol</a></li>\n<li><a href=\"https://library.lupine.science/articles/mlip-elastic-benchmark/operator-failure-diagnosis-2026-06-27.html\">Operator Failure Diagnosis</a></li>\n</ul>\n<hr>\n<h2 id=\"for-the-press\">For the press</h2><h3 id=\"one-paragraph-summary\">One-paragraph summary</h3><p>Lupine, the open MLIP-distillation research platform, has completed a five-front formalization sprint that turns heuristic correction and sampling rules into machine-checked theorems, hardens the composition optimizer against physically impossible recommendations, and tags every benchmark entry with its epistemic source. The work is published in the project’s public library as the team launches a 56-run concurrent GCP benchmark of universal MLIPs across 14 cubic metals.</p>\n<h3 id=\"key-talking-points\">Key talking points</h3><ul>\n<li><strong>Formal methods meet materials ML:</strong> Lean 4 theorems now guard the core correction, transfer, and active-sampling logic.</li>\n<li><strong>Honest benchmarking:</strong> Synthetic fixtures are explicitly labeled and cannot be cited as empirical evidence.</li>\n<li><strong>Open by default:</strong> Source, specifications, and the public library are all version-controlled and linked.</li>\n<li><strong>Scale:</strong> 56 isolated GCP runs are feeding the next public preprint and the Layer 2 research paper.</li>\n</ul>\n<hr>\n<h2 id=\"social-media-thread-ready-to-post\">Social media thread (ready to post)</h2><pre><code class=\"language-text\">1/ We just shipped the Lupine refinement sprint: five formalization wins that make MLIP correction, transfer, sampling, optimization, and benchmarking more honest and rigorous.\n\n2/ Theorem 1: a 1-D shared-error correction is *no-harm*. We proved in Lean that the corrected residual norm never exceeds the uncorrected one, then matched the Rust implementation to the proof.\n\n3/ Theorem 2: rank-k alloy transferability. Projecting a target residual onto a source subspace leaves at most sin(θ_k)·‖target‖. Real-alloy LOOCV is now build-locked.\n\n4/ Theorem 3: active sampling has a contract. Greedy residual-max selection is one-step optimal, and the number of informative observations is bounded by the residual subspace rank.\n\n5/ Optimizer hardening: `mlip_optimize` now rejects Born-unstable fits, checks moduli consistency, refuses low R² surfaces, and reports a jackknife RMSE + optimality gap.\n\n6/ Provenance tags: every benchmark entry is now synthetic / nistIpr / experiment, and the validation report warns if synthetic data is present. No more “synthetic fixture reported as empirical.”\n\n7/ We are now running 56 concurrent GCP jobs for the 3×3×3 16-element universal-MLIP elastic-constant benchmark (M3GNet, CHGNet, TensorNet, QET × 14 metals).\n\n8/ All theorems compile with zero `sorry`, and the Rust code passes `cargo test` + `cargo clippy -D warnings`.\n\n9/ Read the public library: https://library.lupine.science\n   Source: https://github.com/alexwelcing/lupine\n\n10/ If you care about trustworthy materials ML, this is the kind of first-principles engineering that has to happen before high-stakes decisions. Thread. 🧵\n</code></pre>\n<hr>\n<h2 id=\"what-changed-in-the-repos\">What changed in the repos</h2><ul>\n<li><code>lean-spec/OpenDistillationFactory/Materials/Distillation/DirectionalCorrectionScheme.lean</code></li>\n<li><code>lean-spec/OpenDistillationFactory/Materials/Distillation/SubspaceCorrectionScheme.lean</code></li>\n<li><code>lean-spec/OpenDistillationFactory/Materials/Theory/AlloyResidualTransfer.lean</code></li>\n<li><code>lean-spec/OpenDistillationFactory/Materials/Theory/ActiveSampling.lean</code></li>\n<li><code>atlas-distill/src/commands/mlip_correct.rs</code></li>\n<li><code>atlas-distill/src/commands/mlip_optimize.rs</code></li>\n<li><code>atlas-distill/src/active_sampling.rs</code></li>\n<li><code>atlas-distill/src/manifold.rs</code></li>\n<li><code>atlas-distill/src/validation.rs</code></li>\n</ul>\n<p>All changes are live in <code>main</code> and mirrored to <code>lupine-rhizo</code> and <code>lupine-ledger</code>.</p>\n<hr>\n<h2 id=\"contact-how-to-follow\">Contact / how to follow</h2><ul>\n<li>Public library: <a href=\"https://library.lupine.science\">https://library.lupine.science</a></li>\n<li>Source: <a href=\"https://github.com/alexwelcing/lupine\">https://github.com/alexwelcing/lupine</a></li>\n<li>This announcement: <a href=\"https://library.lupine.science/articles/announcements/lupine-refinement-sprint-2026-06-27.html\">https://library.lupine.science/articles/announcements/lupine-refinement-sprint-2026-06-27.html</a></li>\n</ul>\n"}