Documentation

Frourio.Analysis.DoobTransform

P5: Doob transform skeleton (API only)

We provide a lightweight Diffusion structure and a Doob transform shell. Heavy analysis (Leibniz, Hessian calculus) is deferred. Key identities are stated as Prop so CI remains light.

Doob transform effect on curvature-dimension parameter. The BE degradation: λ ↦ λ - 2ε(h) where h > 0 is the Doob function. In BE theory, ε(h) measures the curvature degradation:

  • ε(h) = sup_φ {∫ Γ₂(log h, φ) dμ / ‖φ‖²}
  • ε(h) = 0 iff h is log-harmonic (∇²(log h) = 0) The transformed measure is dμ_h = h²dμ.
  • ε :

    The degradation amount ε(h) from the Doob function h

  • ε_nonneg : 0 self.ε

    Non-negativity (always true in BE theory)

  • degraded_lambda :

    The degraded parameter after Doob transform

Instances For
    structure Frourio.Diffusion (X : Type u_1) :
    Type u_1
    Instances For
      def Frourio.HasCD {X : Type u_1} (D : Diffusion X) (lam : ) :

      Curvature-dimension predicate (pointwise Γ₂ bound). HasCD D λ encodes a Bakry–Émery type lower bound in the CD(λ, ∞) form: for all test functions f and points x, one has Γ₂(f)(x) ≥ λ · Γ(f)(x). This concrete predicate keeps the API light while allowing downstream theorems to reference an actual inequality.

      Equations
      Instances For
        noncomputable def Frourio.gammaPair {X : Type u_1} (D : Diffusion X) (f g : X) :
        X

        Symmetric bilinear form associated to Gamma by polarization. This provides a concrete Γ(f,g) using the unary Γ available in Diffusion.

        Equations
        Instances For
          def Frourio.HasLeibnizL {X : Type u_1} (D : Diffusion X) :

          Minimal Leibniz rule for the generator L using gammaPair for the cross term. This is a concrete predicate, not a placeholder.

          Equations
          Instances For

            Product rule for Γ in a minimal concrete form via gammaPair.

            Equations
            Instances For
              noncomputable def Frourio.doobL {X : Type u_1} (D : Diffusion X) (h : X) :
              (X)X
              Equations
              Instances For
                noncomputable def Frourio.Doob {X : Type u_1} (h : X) (D : Diffusion X) :
                Equations
                Instances For
                  structure Frourio.DoobAssumptions {X : Type u_1} (h : X) (D : Diffusion X) :
                  • h_pos (x : X) : 0 < h x

                    Strict positivity of h ensuring the Doob transform is well-defined.

                  • leibniz_L : HasLeibnizL D

                    Concrete Leibniz rule for the generator.

                  • leibniz_Gamma : HasLeibnizGamma D

                    Concrete product rule for Γ.

                  • gamma_eq : (Doob h D).Gamma = D.Gamma
                  • gamma2_eq (f : X) : (Doob h D).Gamma2 f = D.Gamma2 f
                  • cd_shift (lam : ) : HasCD D lam∃ (lam' : ), HasCD (Doob h D) lam' lam' lam

                    Curvature-dimension shift: for any CD parameter lam of D, there exists a possibly degraded parameter lam' for Doob h D with lam' ≤ lam. Later phases will refine this to an explicit formula using ∇² log h.

                  • BE_degradation :

                    BE degradation for meta-variational principle: λ_eff ≥ λ - 2ε(h). This field provides the degradation amount ε(h) ≥ 0 from the Hessian of log h.

                  • BE_degradation_nonneg : 0 self.BE_degradation

                    Non-negativity of degradation

                  • cd_shift_explicit (lam : ) : HasCD D lamHasCD (Doob h D) (lam - 2 * self.BE_degradation)

                    The cd_shift explicitly uses BE_degradation: Doob h D satisfies CD(λ - 2*BE_degradation)

                  Instances For
                    def Frourio.BochnerMinimal {X : Type u_1} (h : X) (D : Diffusion X) (eps : ) :

                    Minimal Bochner-style correction statement needed to realize the explicit CD parameter shift under a Doob transform. Parameterized by eps from the Hessian bound on log h.

                    Equations
                    Instances For
                      theorem Frourio.doob_gamma_eq {X : Type u_1} (h : X) (D : Diffusion X) (H : DoobAssumptions h D) :
                      (Doob h D).Gamma = D.Gamma

                      Γ identity under Doob transform (theoremized via assumptions).

                      theorem Frourio.doob_gamma2_eq {X : Type u_1} (h : X) (D : Diffusion X) (f : X) (H : DoobAssumptions h D) :
                      (Doob h D).Gamma2 f = D.Gamma2 f

                      Γ₂ identity under Doob transform (theoremized via assumptions). Later phases will relax the equality to the corrected identity under minimal Bochner assumptions.

                      theorem Frourio.doob_gamma2_eq_all {X : Type u_1} (h : X) (D : Diffusion X) (H : DoobAssumptions h D) (f : X) :
                      (Doob h D).Gamma2 f = D.Gamma2 f

                      Γ₂ identity for all test functions (quantified version).

                      theorem Frourio.doobL_pointwise {X : Type u_1} (D : Diffusion X) (h : X) (H : DoobAssumptions h D) (f : X) (x : X) :
                      doobL D h f x = 1 / h x * D.L (fun (y : X) => h y * f y) x

                      Under strict positivity of h, the Doob generator evaluates without the if guard. This provides a convenient pointwise formula.

                      theorem Frourio.gammaPair_doob_eq {X : Type u_1} (h : X) (D : Diffusion X) (H : DoobAssumptions h D) (f g : X) :
                      gammaPair (Doob h D) f g = gammaPair D f g

                      Pairwise carré-du-champ agrees under the Doob transform when Γ agrees.

                      theorem Frourio.hasLeibnizGamma_doob_of_base {X : Type u_1} (h : X) (D : Diffusion X) (H : DoobAssumptions h D) (HG : HasLeibnizGamma D) :

                      If Γ satisfies the product rule for D, then it also does for Doob h D when the Γ fields agree (operator-level compatibility).

                      theorem Frourio.cd_parameter_shift {X : Type u_1} (h : X) (D : Diffusion X) (H : DoobAssumptions h D) {lam : } (hCD : HasCD D lam) :
                      ∃ (lam' : ), HasCD (Doob h D) lam' lam' lam
                      def Frourio.lambdaBE (lam eps : ) :
                      Equations
                      Instances For
                        theorem Frourio.lambdaBE_le_base {lam eps : } ( : 0 eps) :
                        lambdaBE lam eps lam
                        theorem Frourio.hasCD_doob_of_bochnerMinimal {X : Type u_1} (h : X) (D : Diffusion X) {eps lam : } (HB : BochnerMinimal h D eps) (hCD : HasCD D lam) :
                        HasCD (Doob h D) (lambdaBE lam eps)
                        theorem Frourio.lambdaBE_from_doobAssumptions {X : Type u_1} (h : X) (D : Diffusion X) (_H : DoobAssumptions h D) (lam eps : ) (hCD : HasCD D lam) (hBochner : BochnerMinimal h D eps) :
                        HasCD (Doob h D) (lambdaBE lam eps)

                        API: Extract the effective curvature parameter λ_BE from DoobAssumptions when we know the Hessian bound parameter ε.

                        theorem Frourio.lambdaBE_bound_from_doobAssumptions {X : Type u_1} (h : X) (D : Diffusion X) (_H : DoobAssumptions h D) (lam eps : ) (heps : 0 eps) :
                        lambdaBE lam eps lam

                        API: The Doob-shifted parameter λ_BE satisfies the expected inequality λ_BE = λ - 2ε ≤ λ when ε ≥ 0.

                        theorem Frourio.doob_cd_with_lambdaBE {X : Type u_1} (h : X) (D : Diffusion X) (H : DoobAssumptions h D) (lam eps : ) (heps : 0 eps) (hCD : HasCD D lam) (hBochner : BochnerMinimal h D eps) :
                        HasCD (Doob h D) (lambdaBE lam eps) lambdaBE lam eps lam

                        Combined API: Given DoobAssumptions and BochnerMinimal, we get both the CD property with λ_BE and the bound λ_BE ≤ λ.

                        structure Frourio.DoobQuantitative {X : Type u_1} (h : X) (D : Diffusion X) :

                        Quantitative Doob transform pack: stores an ε ≥ 0 for which the minimal Bochner correction holds. This yields an explicit CD parameter shift λ' = λ − 2ε together with λ' ≤ λ.

                        Instances For
                          theorem Frourio.cd_parameter_shift_explicit {X : Type u_1} (h : X) (D : Diffusion X) (HQ : DoobQuantitative h D) {lam : } (hCD : HasCD D lam) :
                          ∃ (lam' : ), lam' = lambdaBE lam HQ.eps HasCD (Doob h D) lam' lam' lam

                          Explicit CD-parameter shift under the quantitative Doob pack.

                          theorem Frourio.cd_parameter_shift_explicit_value {X : Type u_1} (h : X) (D : Diffusion X) (HQ : DoobQuantitative h D) {lam : } (hCD : HasCD D lam) :
                          HasCD (Doob h D) (lambdaBE lam HQ.eps) lambdaBE lam HQ.eps lam

                          Pointwise form: from DoobQuantitative, directly obtain the transformed CD bound at the explicit value λ_BE = λ − 2ε along with the monotonicity .

                          Instances For
                            Equations
                            Instances For
                              theorem Frourio.doob_lambda_eff_formula {X : Type u_1} (h : X) (D : Diffusion X) (H : DoobAssumptions h D) (lam : ) (hCD : HasCD D lam) :
                              ∃ (lam_eff : ), lam_eff = lam - 2 * H.BE_degradation HasCD (Doob h D) lam_eff lam_eff lam

                              Extended API for meta-variational principle: Connect BE_degradation field to the explicit λ_eff formula.

                              def Frourio.doob_lambda_eff {X : Type u_1} (h : X) (D : Diffusion X) (H : DoobAssumptions h D) (lam : ) :

                              Convenience: extract effective λ for meta-variational principle

                              Equations
                              Instances For
                                theorem Frourio.doob_lambda_eff_le {X : Type u_1} (h : X) (D : Diffusion X) (H : DoobAssumptions h D) (lam : ) :
                                doob_lambda_eff h D H lam lam

                                The effective λ satisfies the expected bound