lake build has never compiled the IcarusLowerable proof development. Not "fails on it" — never targets it.
The measurement
proofs/lean4/Trinity.lean is the library root. It imports nine modules:
Trinity.CorePhi Trinity.TernaryMac
Trinity.ExactIdentities Trinity.TernaryGemm
Trinity.H4Derivations Trinity.TernaryInference
Trinity.NeutrinoMasses Trinity.TernaryFPGABoot
Trinity.H4Lagrangian
Trinity.IcarusLowerable.* is not among them, and nothing else in the root imports it. The eleven files under IcarusLowerable/ import each other — a closed subtree with no edge from the root — so lean_lib «Trinity» never reaches any of it.
|
lines |
theorems |
in the build graph (Trinity/*.lean) |
7 447 |
— |
outside it (Trinity/IcarusLowerable/*.lean) |
15 447 |
647 |
67% of the Lean development has never been compiled by anything.
Including Completeness.lean: 4 986 lines, 250 native_decide theorems.
How this was established
Dispatched lean-proofs.yml at master (it is read-only: checkout plus lean-action, zero write commands) and read the log of the previous run. The word Icarus appears zero times in 481 lines of build output. The modules it names are exactly the nine the root imports.
The two most recent runs before this one both failed, on Trinity/H4Lagrangian.lean:73 and :108 — unsolved goals. That is a real failure in the built part, and it is not why Completeness is unchecked: fixing H4Lagrangian would not add a single IcarusLowerable file to the graph.
What this explains
The repair is one line, and that is the uncomfortable part
Adding import Trinity.IcarusLowerable.Completeness to Trinity.lean puts 647 theorems into the build. It will almost certainly go red — #2893 predicts at least one theorem that cannot hold — and that redness is the point.
I am not making that change here. It converts a green build into a red one on evidence I cannot evaluate locally (lean, lake and elan are not installed on this machine), and the right sequencing — how loud the first run should be, whether to land it behind a separate job — is a decision rather than a measurement.
Refs #2747
lake buildhas never compiled theIcarusLowerableproof development. Not "fails on it" — never targets it.The measurement
proofs/lean4/Trinity.leanis the library root. It imports nine modules:Trinity.IcarusLowerable.*is not among them, and nothing else in the root imports it. The eleven files underIcarusLowerable/import each other — a closed subtree with no edge from the root — solean_lib «Trinity»never reaches any of it.Trinity/*.lean)Trinity/IcarusLowerable/*.lean)67% of the Lean development has never been compiled by anything.
Including
Completeness.lean: 4 986 lines, 250native_decidetheorems.How this was established
Dispatched
lean-proofs.ymlat master (it is read-only: checkout pluslean-action, zero write commands) and read the log of the previous run. The wordIcarusappears zero times in 481 lines of build output. The modules it names are exactly the nine the root imports.The two most recent runs before this one both failed, on
Trinity/H4Lagrangian.lean:73and:108— unsolved goals. That is a real failure in the built part, and it is not whyCompletenessis unchecked: fixing H4Lagrangian would not add a singleIcarusLowerablefile to the graph.What this explains
std.mem.Allocatorinto three parameters and invents a struct to make its theorem provable. Nothing ever type-checked it.functions := []. Nothing ever asked whether the other 136 elaborate.lean-proofs.ymlalready says everyby native_decidein the tree is a claim no instrument has checked. This is the mechanism: the claim is not merely unchecked by CI, it is unreachable from the build root.The repair is one line, and that is the uncomfortable part
Adding
import Trinity.IcarusLowerable.CompletenesstoTrinity.leanputs 647 theorems into the build. It will almost certainly go red — #2893 predicts at least one theorem that cannot hold — and that redness is the point.I am not making that change here. It converts a green build into a red one on evidence I cannot evaluate locally (
lean,lakeandelanare not installed on this machine), and the right sequencing — how loud the first run should be, whether to land it behind a separate job — is a decision rather than a measurement.Refs #2747