InformationTheory

InformationTheory.Shannon.EPI.L3Integration

source

Entropy power inequality — final integration #

This file integrates the building blocks from EntropyPowerInequality, StamEPIBridge, and FisherInfo to assemble IsEPIL3IntegratedPipeline and derive the entropy power inequality.

Main definitions #

Main statements #

Implementation notes #

The Stam-to-EPI bridge (Cover–Thomas, Csiszár-style coupling) enters as follows:

  • The Stam inequality is received as an IsStamInequalityHyp X Y P argument.
  • de Bruijn integration uses IsDeBruijnIntegrationHyp and FisherInfo.deBruijn_identity_v2_gaussian for the Gaussian case.
  • The Stam-to-EPI coupling is not a field of the pipeline: consumers supply IsStamToEPIBridgeHyp separately (epi_via_stam). The Gaussian saturation case needs no bridge at all (entropy_power_inequality_gaussian).

Integrated pipeline predicate #

structure

InformationTheory.Shannon.EPIL3Integration.IsEPIL3IntegratedPipeline

source
{Ω : Type u_1} [MeasurableSpace Ω] (X Y : Ω) (P : MeasureTheory.Measure Ω) :

The integrated pipeline predicate.

Carries the Stam inequality (Cover–Thomas signature) as its single field. The Stam-to-EPI bridge (Cover–Thomas coupling) is deliberately not a field: consumers that need the entropy power inequality supply IsStamToEPIBridgeHyp separately (epi_via_stam) rather than threading a bridge : IsStamToEPIBridgeHyp predicate hypothesis through the pipeline.

Instances For
    Used by

      Gaussian pipeline witness #

      theorem

      InformationTheory.Shannon.EPIL3Integration.isEPIL3IntegratedPipeline_of_gaussian

      source
      {Ω : Type u_1} { : MeasurableSpace Ω} (P : MeasureTheory.Measure Ω) [MeasureTheory.IsProbabilityMeasure P] (X Y : Ω) (hX : Measurable X) (hY : Measurable Y) (hXY : ProbabilityTheory.IndepFun X Y P) (m₁ m₂ : ) (v₁ v₂ : NNReal) (hv₁ : v₁ 0) (hv₂ : v₂ 0) (hLawX : MeasureTheory.Measure.map X P = ProbabilityTheory.gaussianReal m₁ v₁) (hLawY : MeasureTheory.Measure.map Y P = ProbabilityTheory.gaussianReal m₂ v₂) (h_stam : StamEPIBridge.IsStamInequalityHyp X Y P) :

      A Gaussian pipeline witness from a Stam hypothesis.

      For independent Gaussians X, Y with non-zero variance, the Stam field is supplied as an IsStamInequalityHyp X Y P argument, not discharged. The hypothesis-free Gaussian EPI (no Stam claim at all) is entropy_power_inequality_gaussian.

      Used by

        Pipeline predicate manipulation #

        theorem

        InformationTheory.Shannon.EPIL3Integration.isEPIL3IntegratedPipeline_symm

        source
        {Ω : Type u_1} [MeasurableSpace Ω] {X Y : Ω} {P : MeasureTheory.Measure Ω} (h : IsEPIL3IntegratedPipeline X Y P) :
        Used by
          theorem

          InformationTheory.Shannon.EPIL3Integration.isEPIL3IntegratedPipeline_of_stam

          source
          {Ω : Type u_1} [MeasurableSpace Ω] {X Y : Ω} {P : MeasureTheory.Measure Ω} (h_stam : StamEPIBridge.IsStamInequalityHyp X Y P) :

          A pipeline built directly from a Stam hypothesis.

          The Stam inequality is the pipeline's only field; the Stam-to-EPI bridge is not part of it and is supplied separately by consumers (epi_via_stam).

          Used by

            Concrete Gaussian EPI via saturation #

            The Gaussian EPI is entropy_power_inequality_gaussian below (direct from entropyPower_gaussian_additivity); the integrated-pipeline form takes a real IsStamInequalityHyp argument.

            theorem

            InformationTheory.Shannon.EPIL3Integration.entropy_power_inequality_gaussian

            source

            The Gaussian entropy power inequality, combining the Gaussian saturation case directly (no Stam predicate needed for the inequality itself; the predicate is only needed for the integrated pipeline form).

            Used by

              Final sanity-check theorems #

              theorem

              InformationTheory.Shannon.EPIL3Integration.integrated_pipeline_roundtrip

              source
              {Ω : Type u_1} [MeasurableSpace Ω] {X Y : Ω} {P : MeasureTheory.Measure Ω} (h_stam : StamEPIBridge.IsStamInequalityHyp X Y P) :
              have h := ; = h_stam

              Building a pipeline from the Stam hypothesis and then extracting it yields the original.

              Used by

                Family-level de Bruijn lift and bounded-T FTC application #

                This section provides the family-level de Bruijn lift and the bounded-T Gaussian FTC application. The HasDerivAt content is available through FisherInfo.deBruijn_identity_v2_gaussian; a non-Gaussian extension routes through the de Bruijn lemma debruijnIdentityV2_holds_assembled.

                The pipeline wrappers above take only the single-field Stam bundle; the Stam-to-EPI bridge is not among their hypotheses and is supplied separately by consumers (epi_via_stam). The de Bruijn integration identity here is the input to Csiszár scaling.

                De Bruijn tail externalization #

                Externalizes the T → ∞ tail-analysis of the heat-flow differential entropy as data, with an EReal lift for the divergent Gaussian limit and a Z_law field that closes the Z := 0 vacuous-bypass channel.

                • Z_law : P.map Z = gaussianReal 0 1 closes the Z = 0 bypass channel.
                • h_inf : EReal accommodates the +∞ Gaussian limit; the convergence Tendsto (Real.toEReal ∘ ·) atTop (𝓝 ⊤) ↔ Tendsto · atTop atTop (EReal.tendsto_coe_nhds_top_iff) bridges to the real-valued divergence statement.

                The Gaussian instance isDeBruijnTailHyp_of_gaussian uses h_inf := ⊤ and routes the closed form differentialEntropy_gaussianConvolution_of_gaussian through Real.tendsto_log_atTop and the standard atTop-shift / atTop-scaling chain.

                structure

                InformationTheory.Shannon.EPIL3Integration.IsDeBruijnTailHyp

                source

                The de Bruijn tail-analysis hypothesis IsDeBruijnTailHyp X Z P.

                Externalizes the T → ∞ tail-analysis of the heat-flow differential entropy T ↦ h(P.map (X + √T · Z)) as a load-bearing hypothesis with EReal lift h_inf : EReal (Gaussian case h_inf = ⊤) and a Z_law field structurally closing the Z := 0 vacuous-bypass channel.

                Each field is a regularity precondition: Z_law rules out the vacuous Z := 0 bypass, h_inf : EReal lifts the divergent Gaussian case, and tail_limit carries the Tendsto content. The Gaussian instance constructor isDeBruijnTailHyp_of_gaussian exhibits a substantive multi-step Tendsto discharge via Real.tendsto_log_atTop + EReal.tendsto_coe_nhds_top_iff. @audit:ok

                Instances For
                  Used by

                    gaussianConvolution boundary helpers #

                    theorem

                    InformationTheory.Shannon.EPIL3Integration.gaussianConvolution_at_zero

                    source
                    {Ω : Type u_1} (X Z : Ω) :

                    gaussianConvolution X Z 0 = X pointwise (uses Real.sqrt 0 = 0).

                    Used by
                      theorem

                      InformationTheory.Shannon.EPIL3Integration.map_gaussianConvolution_at_zero

                      source

                      P.map (gaussianConvolution X Z 0) = P.map X.

                      Used by
                        theorem

                        InformationTheory.Shannon.EPIL3Integration.differentialEntropy_gaussianConvolution_at_zero

                        source

                        differentialEntropy (P.map (gaussianConvolution X Z 0)) = differentialEntropy (P.map X).

                        Used by

                          Gaussian per-time-point V2 family lift #

                          noncomputable def

                          InformationTheory.Shannon.EPIL3Integration.isRegularDeBruijnHypV2_family_of_gaussian

                          source

                          The Gaussian per-time-point V2 family lift (Gaussian restricted, hypothesis-free).

                          For independent Gaussian X ∼ 𝒩(m, v) (with v ≠ 0) and standard normal Z ∼ 𝒩(0, 1), the V2 de Bruijn regularity IsRegularDeBruijnHypV2 X Z P t holds for every t > 0, with explicit density witness gaussianPDFReal m (v + ⟨t, ht.le⟩).

                          The witness is constructed by routing FisherInfo.deBruijn_identity_v2_gaussian (which gives the HasDerivAt directly) into the structure constructor.

                          (Returns Type, not Prop, because IsRegularDeBruijnHypV2 carries a density witness as data; declared noncomputable def accordingly.) @audit:ok

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            Used by

                              Gaussian closed-form entropy at the heat-flow boundary #

                              theorem

                              InformationTheory.Shannon.EPIL3Integration.differentialEntropy_gaussianConvolution_of_gaussian

                              source

                              The Gaussian heat-flow entropy boundary value at T, for T ≥ 0.

                              Used by

                                Gaussian discharge of IsDeBruijnTailHyp #

                                The Gaussian instance constructor for IsDeBruijnTailHyp, discharged with h_inf := ⊤ via the closed-form differentialEntropy_gaussianConvolution_of_gaussian combined with Real.tendsto_log_atTop and the standard atTop-shift / atTop-scaling chain, lifted to EReal by EReal.tendsto_coe_nhds_top_iff.

                                noncomputable def

                                InformationTheory.Shannon.EPIL3Integration.isDeBruijnTailHyp_of_gaussian

                                source

                                The Gaussian instance of IsDeBruijnTailHyp.

                                When P.map X = gaussianReal m v with v ≠ 0, P.map Z = gaussianReal 0 1, and X ⊥ Z, the heat-flow entropy diverges to +∞ (Gaussian sub-entropy lower bound (1/2) log (2π e (v + T)) → +∞), so h_inf := ⊤.

                                Discharge route (differentialEntropy_gaussianConvolution_of_gaussian above already gives the closed form (1/2) log (2π e (v + T))):

                                • shift T ↦ (v : ℝ) + T via tendsto_atTop_add_const_left;
                                • scale by 2 π e > 0 via Tendsto.const_mul_atTop;
                                • apply Real.tendsto_log_atTop;
                                • scale by (1/2) > 0 via Tendsto.const_mul_atTop;
                                • congr with the closed-form identity on [0, ∞) via Tendsto.congr';
                                • lift to EReal via EReal.tendsto_coe_nhds_top_iff.mpr.
                                Equations
                                Instances For
                                  Used by

                                    Bounded-T FTC application (Gaussian case) #

                                    The de Bruijn integration identity holds for Gaussian X on (0, T) as a direct consequence of Mathlib's bounded FTC and the family lift above. Stated as a standalone identity (not via IsDeBruijnIntegrationHyp, which carries the ∃ fPath shape).

                                    theorem

                                    InformationTheory.Shannon.EPIL3Integration.hasDerivAt_differentialEntropy_heat_flow_gaussian

                                    source
                                    {Ω : Type u_1} { : MeasurableSpace Ω} {P : MeasureTheory.Measure Ω} [MeasureTheory.IsProbabilityMeasure P] {X Z : Ω} (hX : Measurable X) (hZ : Measurable Z) (hXZ : ProbabilityTheory.IndepFun X Z P) {m : } {v : NNReal} (hv : v 0) (hX_law : MeasureTheory.Measure.map X P = ProbabilityTheory.gaussianReal m v) (hZ_law : MeasureTheory.Measure.map Z P = ProbabilityTheory.gaussianReal 0 1) {s : } (hs : 0 < s) :

                                    The heat-flow entropy derivative (Gaussian, on an s > 0 neighborhood).

                                    For Gaussian X and s > 0, the derivative of s' ↦ differentialEntropy(P.map (X + √s' · Z)) at s equals 1/(2(v+s)). This is the per-point statement from deBruijn_identity_v2_gaussian rewritten with the Gaussian closed-form Fisher information value 1/(v+t).

                                    Used by
                                      theorem

                                      InformationTheory.Shannon.EPIL3Integration.continuousOn_one_div_two_times_v_plus

                                      source
                                      {v : NNReal} (hv : v 0) (T : ) :
                                      ContinuousOn (fun (t : ) => 1 / (2 * (v + t))) (Set.Icc 0 T)

                                      Continuity of 1/(2(v+t)) on [0, T], for v > 0, T ≥ 0.

                                      Used by
                                        theorem

                                        InformationTheory.Shannon.EPIL3Integration.continuousOn_differentialEntropy_heat_flow_gaussian

                                        source

                                        For Gaussian X ∼ 𝒩(m, v) with v ≠ 0 and standard normal Z independent of X, the heat-flow entropy s' ↦ differentialEntropy (P.map (X + √s' · Z)) is continuous on [0, T], since it agrees there with the closed form (1/2)·log (2π e (v + s')).

                                        Used by
                                          theorem

                                          InformationTheory.Shannon.EPIL3Integration.bounded_T_ftc_gaussian

                                          source

                                          The bounded-T FTC application (Gaussian case).

                                          For Gaussian X ∼ 𝒩(m, v) with v ≠ 0, the heat-flow entropy gap over the bounded interval (0, T) equals the path integral of 1/(2(v+t)):

                                          h(N(m, v+T)) - h(N(m, v)) = ∫_(0, T) 1/(2(v+t)) dt,

                                          stated as a direct equality (bypassing the IsDeBruijnIntegrationHyp X Z P T predicate). The integration uses Mathlib intervalIntegral and is converted to Set.Ioo-form for downstream consumption. @audit:ok

                                          Used by

                                            1-source Csiszár log-ratio gap #

                                            The ratio object csiszarLogRatioGap (and its t = 0 / t = 1 endpoints) is consumed in EPI/Stam/ToBridge.lean (csiszarLogRatioGap_hasDerivAtcsiszarLogRatioGap_deriv_le_zerocsiszarLogRatioGap_antitoneOn_Ici_zero).

                                            noncomputable def

                                            InformationTheory.Shannon.EPIL3Integration.csiszarLogRatioGap

                                            source
                                            {Ω : Type u_1} [MeasurableSpace Ω] (X Y Z_X Z_Y : Ω) (P : MeasureTheory.Measure Ω) (t : ) :

                                            The 1-source Csiszár log-ratio gap (a monotone object).

                                            r(t) = log (N_sum t) − log (N_X t + N_Y t) where N_sum = entropyPower (P.map (X+Y+√t·(Z_X+Z_Y))), N_X = entropyPower (P.map (X+√t·Z_X)), N_Y = entropyPower (P.map (Y+√t·Z_Y)).

                                            The log-ratio derivative r'(t) = J_sum − (N_X·J_X + N_Y·J_Y)/(N_X+N_Y) ≤ 0 is closable from plain harmonic Stam. Both log arguments are strictly positive (entropyPower_pos, add_pos), so the gap is well-defined.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              Used by
                                                theorem

                                                InformationTheory.Shannon.EPIL3Integration.csiszarLogRatioGap_at_zero

                                                source

                                                At the endpoint t = 0 the log-ratio gap reduces to log (eP(X+Y)) − log (eP X + eP Y), the form bridging to EPI (r(0) ≥ 0 ⟺ entropyPower (X+Y) ≥ entropyPower X + entropyPower Y).

                                                Used by
                                                  theorem

                                                  InformationTheory.Shannon.EPIL3Integration.csiszarLogRatioGap_at_one_eq_zero

                                                  source
                                                  {Ω : Type u_1} { : MeasurableSpace Ω} {X Y Z_X Z_Y : Ω} (P : MeasureTheory.Measure Ω) [MeasureTheory.IsProbabilityMeasure P] (hXZX : Measurable fun (ω : Ω) => X ω + Z_X ω) (hYZY : Measurable fun (ω : Ω) => Y ω + Z_Y ω) (hIndep : ProbabilityTheory.IndepFun (fun (ω : Ω) => X ω + Z_X ω) (fun (ω : Ω) => Y ω + Z_Y ω) P) (m₁ m₂ : ) (v₁ v₂ : NNReal) (hv₁ : v₁ 0) (hv₂ : v₂ 0) (hLawX : MeasureTheory.Measure.map (fun (ω : Ω) => X ω + Z_X ω) P = ProbabilityTheory.gaussianReal m₁ v₁) (hLawY : MeasureTheory.Measure.map (fun (ω : Ω) => Y ω + Z_Y ω) P = ProbabilityTheory.gaussianReal m₂ v₂) :
                                                  csiszarLogRatioGap X Y Z_X Z_Y P 1 = 0

                                                  At the endpoint t = 1 the log-ratio gap is zero (Gaussian saturation).

                                                  At t = 1 the 1-source heat-flow paths are X + Z_X, Y + Z_Y, and their sum X + Y + (Z_X + Z_Y) = (X + Z_X) + (Y + Z_Y). When the convolved endpoints X + Z_X and Y + Z_Y are independent Gaussians of nonzero variance, EPI saturates: N_sum(1) = N_X(1) + N_Y(1) by entropyPower_gaussian_additivity. Hence r(1) = log N_sum(1) − log (N_X(1) + N_Y(1)) = log A − log A = 0 (sub_self).

                                                  This is the endpoint of the monotone log-ratio object: together with r'(t) ≤ 0 on [0, ∞) and r(1) = 0, monotonicity gives r(0) ≥ 0, i.e. EPI. The Gaussian-pair hypotheses are preconditions (laws + independence of the convolved endpoints), not load-bearing bundling.

                                                  Used by