Pith. sign in

IndisputableMonolith.Cost.FunctionalEquationStrict

IndisputableMonolith/Cost/FunctionalEquationStrict.lean · 60 lines · 2 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import IndisputableMonolith.Cost.AczelProof
   2import IndisputableMonolith.Cost.FunctionalEquation
   3
   4/-!
   5# Strict Functional-Equation Variants
   6
   7This optional module tightens the T5 regularity surface without changing the
   8core theorem.  The theorem below replaces the explicit
   9`ContinuousOn F (Set.Ioi 0)` premise with limit-form log calibration.
  10
  11History, 2026-07-25. Until that date this theorem was **vacuous**. Limit-form
  12calibration was stated on the full neighbourhood filter, which Lean's total
  13division makes unsatisfiable at `κ = 1`, so the premise it traded continuity for
  14was false and the trade bought nothing. `HasLogCurvature` is now punctured and
  15carries a non-vacuity witness (`jcost_hasLogCurvature_one`), so the statement has
  16content. It is also no longer the sharpest form: reciprocity, normalization, and
  17the derivative calibration are all redundant here, and
  18`composition_logCurvature_forces_jcost` states the result on the two premises
  19that do the work. This wrapper is kept for its callers.
  20-/
  21
  22namespace IndisputableMonolith
  23namespace Cost
  24namespace FunctionalEquation
  25
  26open Real
  27
  28/-- Limit-form log calibration supplies the continuity needed by the Aczél
  29d'Alembert route, so the explicit `ContinuousOn F (Set.Ioi 0)` premise can be
  30removed from this T5 variant.
  31
  32Only `hComp` and `hLogCalib` are used: the other three premises are consequences
  33of that pair. They are retained so existing callers keep type-checking. -/
  34theorem law_of_logic_forces_jcost_of_log_calibration (F : ℝ → ℝ)
  35    [AczelSmoothnessPackage]
  36    (_hRecip : IsReciprocalCost F)
  37    (_hNorm : IsNormalized F)
  38    (hComp : SatisfiesCompositionLaw F)
  39    (_hCalib : IsCalibrated F)
  40    (hLogCalib : IsCalibratedLimit F) :
  41    ∀ x : ℝ, 0 < x → F x = Cost.Jcost x :=
  42  composition_logCurvature_forces_jcost F hComp hLogCalib
  43
  44/-- **The cost theorem on two premises, unconditionally.**
  45
  46`composition_logCurvature_forces_jcost` is stated in `FunctionalEquation`, which
  47does not import the module that builds the `AczelSmoothnessPackage` instance, so
  48there it carries the package as an instance argument. This module does import it,
  49so here the theorem stands with no instance argument and no hypotheses beyond the
  50composition law and unit log curvature. Cite this one. -/
  51theorem composition_logCurvature_forces_jcost_unconditional (F : ℝ → ℝ)
  52    (hComp : SatisfiesCompositionLaw F)
  53    (hκ : HasLogCurvature (H F) 1) :
  54    ∀ x : ℝ, 0 < x → F x = Cost.Jcost x :=
  55  composition_logCurvature_forces_jcost F hComp hκ
  56
  57end FunctionalEquation
  58end Cost
  59end IndisputableMonolith
  60

source mirrored from github.com/jonwashburn/shape-of-logic