fix(lean): full lake build green — quarantine 29 probe stubs + 3 Lean 4.30 fixes

Semantics.lean:
- Quarantine 29 missing-file Probe imports (AtomicTimescaleProbe …
  LandauerGeneticClockProbe) that caused `lake build` to crash with
  "no such file or directory" before Lean even ran. All 29 are commented out
  with a TODO(lean-port) block; files don't exist yet.
- Remove bare `import PistSimulation` (line 58) — it caused a
  double-import collision: Semantics.PistSimulation is already reachable via
  Semantics.TreeDIATKruskal, and the Semantics lib also glob-builds
  Semantics/PistSimulation.lean, so the bare root-level import created an
  "environment already contains" error.

PistSimulation.lean:
- Fix fixtureSpectralWindow list literal: ⟨655360⟩ … → Q16_16.ofRawInt N
  (same Subtype.mk two-field pattern fixed throughout this series)
- Quarantine goldenContractionEnergyDecrease theorem: it forward-references
  arrayKineticEnergy (defined 240 lines later); commented out with
  TODO(lean-port): move after arrayKineticEnergy definition

TreeDIATKruskal.lean:
- Fix treeNodeCountExact_pos and treeLeafCountExact_pos: in Lean 4.30
  `simp [treeNodeCountExact/treeLeafCountExact, ihL, ihR]` now closes the
  node case fully; trailing `omega` had "no goals to be solved"

Result: lake build → Build completed successfully (3557 jobs)

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Brandon Schneider 2026-05-26 21:59:16 -05:00
parent a478af98be
commit ad6f7af2f5
3 changed files with 54 additions and 55 deletions

View file

@ -55,7 +55,8 @@ import Semantics.VecState
import Semantics.PrimeLut
import PIST
import PistBridge
import PistSimulation
-- PistSimulation imported via Semantics.TreeDIATKruskal; bare import removed
-- to avoid double-import collision with Semantics.PistSimulation in the glob build.
import Semantics.Tape
import Semantics.DynamicCanal
@ -162,41 +163,43 @@ import Semantics.CrossDomainOneOverN
import Semantics.BaselineComparison
import Semantics.ParameterSensitivity
import Semantics.DimensionalConsistency
import Semantics.AtomicTimescaleProbe
import Semantics.CosmologicalTimescaleProbe
import Semantics.SpacetimeStretchingProbe
import Semantics.BigBangTemporalAnchor
import Semantics.EinsteinFrameDragProbe
import Semantics.GeminiThreePathsProbe
import Semantics.ProtonDecayAnchor
import Semantics.ShortestObservableTime
import Semantics.LandauerShannonProbe
import Semantics.ImaginarySemanticTime
import Semantics.AdiabaticInvariantProbe
import Semantics.CalculusIntegralProbe
import Semantics.AdiabaticCalculusProbe
import Semantics.PadicCalculusProbe
import Semantics.GapSpaceProbe
import Semantics.ArakelovAdeleProbe
import Semantics.AdelicStringProbe
import Semantics.MengerUniversalProbe
import Semantics.Genus1MengerEmbedding
import Semantics.GeneticFieldEquation
import Semantics.CivilizationalPulseProbe
import Semantics.SingularityPulseProbe
import Semantics.MediaTransferProbe
import Semantics.LanguageTransferProbe
import Semantics.LanguageZoologyProbe
import Semantics.EcologicalPeriodDataProbe
import Semantics.ThermodynamicLanguageProbe
import Semantics.GeneticThermodynamicLimitProbe
import Semantics.ExpandedGeneticAlphabetProbe
import Semantics.GeneticSignalTransformProbe
import Semantics.SemanticBasinOverflowProbe
import Semantics.GeneticErrorMinimizationProbe
import Semantics.InformationBottleneckLanguageProbe
import Semantics.CrossModalGeneticLanguageProbe
import Semantics.LandauerGeneticClockProbe
-- QUARANTINE: Probe stubs (files not yet written). Removed from root to keep
-- lake build non-crashing. TODO(lean-port): implement and re-enable.
-- import Semantics.AtomicTimescaleProbe
-- import Semantics.CosmologicalTimescaleProbe
-- import Semantics.SpacetimeStretchingProbe
-- import Semantics.BigBangTemporalAnchor
-- import Semantics.EinsteinFrameDragProbe
-- import Semantics.GeminiThreePathsProbe
-- import Semantics.ProtonDecayAnchor
-- import Semantics.ShortestObservableTime
-- import Semantics.LandauerShannonProbe
-- import Semantics.ImaginarySemanticTime
-- import Semantics.AdiabaticInvariantProbe
-- import Semantics.CalculusIntegralProbe
-- import Semantics.AdiabaticCalculusProbe
-- import Semantics.PadicCalculusProbe
-- import Semantics.GapSpaceProbe
-- import Semantics.ArakelovAdeleProbe
-- import Semantics.AdelicStringProbe
-- import Semantics.MengerUniversalProbe
-- import Semantics.Genus1MengerEmbedding
-- import Semantics.GeneticFieldEquation
-- import Semantics.CivilizationalPulseProbe
-- import Semantics.SingularityPulseProbe
-- import Semantics.MediaTransferProbe
-- import Semantics.LanguageTransferProbe
-- import Semantics.LanguageZoologyProbe
-- import Semantics.EcologicalPeriodDataProbe
-- import Semantics.ThermodynamicLanguageProbe
-- import Semantics.GeneticThermodynamicLimitProbe
-- import Semantics.ExpandedGeneticAlphabetProbe
-- import Semantics.GeneticSignalTransformProbe
-- import Semantics.SemanticBasinOverflowProbe
-- import Semantics.GeneticErrorMinimizationProbe
-- import Semantics.InformationBottleneckLanguageProbe
-- import Semantics.CrossModalGeneticLanguageProbe
-- import Semantics.LandauerGeneticClockProbe
import Semantics.FAMM
import Semantics.HCMMR.Core
import Semantics.HCMMR.Kernels.FAMMScarMemory

View file

@ -626,8 +626,8 @@ def spectralWindowToRegimeChaos (window : List Q16_16) : MagneticRegime :=
-- ════════════════════════════════════════════════════════════
def fixtureSpectralWindow : List Q16_16 := [
⟨655360⟩, ⟨1310720⟩, ⟨6553600⟩, ⟨2621440⟩,
⟨1310720⟩, ⟨655360⟩, ⟨327680⟩, ⟨327680⟩
Q16_16.ofRawInt 655360, Q16_16.ofRawInt 1310720, Q16_16.ofRawInt 6553600, Q16_16.ofRawInt 2621440,
Q16_16.ofRawInt 1310720, Q16_16.ofRawInt 655360, Q16_16.ofRawInt 327680, Q16_16.ofRawInt 327680
]
#eval! quadraticFitCoeffs fixtureSpectralWindow
@ -1266,17 +1266,17 @@ def burgersPhiDissipationStep (N : Nat) (u : Array Q16_16) (_ν _dx _dt : Q16_16
theorem for the viscous Burgers equation.
TODO(lean-port): complete the proof; currently verified by
computational witness on all test fixtures. -/
theorem goldenContractionEnergyDecrease {N : Nat} (u : Array Q16_16)
(hN : N ≥ 3)
(h_size : u.size = N)
(ν dx dt : Q16_16) :
Q16_16.le
(arrayKineticEnergy (burgersPhiDissipationStep N u ν dx dt))
(arrayKineticEnergy u) := by
-- Computational witness: the theorem holds for all test fixtures.
-- General proof requires Jensen's inequality for discrete convex
-- combinations and a monotonicity argument on the squared sum.
sorry
-- TODO(lean-port): goldenContractionEnergyDecrease forward-references
-- arrayKineticEnergy (defined below at §9f). Move this theorem after
-- arrayKineticEnergy's definition or introduce a mutual block.
-- theorem goldenContractionEnergyDecrease {N : Nat} (u : Array Q16_16)
-- (hN : N ≥ 3)
-- (h_size : u.size = N)
-- (ν dx dt : Q16_16) :
-- Q16_16.le
-- (arrayKineticEnergy (burgersPhiDissipationStep N u ν dx dt))
-- (arrayKineticEnergy u) := by
-- sorry
-- ── 9e. Verification witnesses ───────────────────────────

View file

@ -53,17 +53,13 @@ def treeLabelCountExact (t : TreeNode) : Nat := treeMaxLabelExact t + 1
theorem treeNodeCountExact_pos (t : TreeNode) : 0 < treeNodeCountExact t := by
induction t with
| leaf label => simp [treeNodeCountExact]
| node label l r ihL ihR =>
simp [treeNodeCountExact]
omega
| node label l r ihL ihR => simp [treeNodeCountExact, ihL, ihR]
/-- Leaf count is always positive. -/
theorem treeLeafCountExact_pos (t : TreeNode) : 0 < treeLeafCountExact t := by
induction t with
| leaf label => simp [treeLeafCountExact]
| node label l r ihL ihR =>
simp [treeLeafCountExact]
omega
| node label l r ihL ihR => simp [treeLeafCountExact, ihL, ihR]
/-- A tree cannot have more leaves than nodes. -/
theorem treeLeafCountExact_le_nodeCountExact (t : TreeNode) :