Documentation

EValues.Utility

Utility Functions #

This file defines utility functions for use in probability theory and e-value theory.

Main definitions #

Main statements #

A utility function is a concave, monotone and differentiable function from ℝ≥0∞ to EReal, which is finite on (0, ∞).

Instances For
    theorem ProbabilityTheory.Utility.eq_coe (U : Utility) {x : ENNReal} (hx0 : x 0) (hx_top : x ) :

    The real-valued representation of a utility function.

    Equations
    Instances For
      theorem ProbabilityTheory.Utility.coe_real_toReal' (U : Utility) {x : ENNReal} (hx0 : U.toFun x ) (hx_top : x ) :
      (U.real x.toReal) = U.toFun x
      theorem ProbabilityTheory.Utility.coe_real_toReal (U : Utility) {x : ENNReal} (hx0 : x 0) (hx_top : x ) :
      (U.real x.toReal) = U.toFun x

      The utility function is concave on (0, ∞) when viewed as a real-valued function.

      The utility function is concave on [0, ∞) when viewed as a real-valued function.

      noncomputable def ProbabilityTheory.Utility.deriv (U : Utility) (x : ENNReal) :

      The derivative of a utility function. At x ∈ (0, ∞), this is the derivative of the real-valued representation. At 0 or , this is defined as a limit.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem ProbabilityTheory.Utility.deriv_eq_coe (U : Utility) {x : ENNReal} (hx0 : x 0) (hx_top : x ) :
        U.deriv x = (deriv U.real x.toReal)
        theorem ProbabilityTheory.Utility.le_add_deriv_mul (U : Utility) {x y : ENNReal} (hx_top : x ) (hy_zero : y 0) (hy_top : y ) :
        U.toFun x U.toFun y + U.deriv y * (x - y)

        The derivative of a utility function is antitone on all of ℝ≥0∞, including at 0 and at .

        theorem ProbabilityTheory.Utility.tendsto_deriv (U : Utility) {α : ENNReal} (hα_top : α ) {ι : Type u_1} {l : Filter ι} {z : ιENNReal} (hz : Filter.Tendsto z l (nhds α)) :
        Filter.Tendsto (fun (n : ι) => U.deriv (z n)) l (nhds (U.deriv α))

        The derivative of a utility function is continuous at every α ≠ ∞: this is a continuity statement on (0, ∞) and a monotone limit statement at 0. See Utility.tendsto_deriv_top for the case α = ∞ and Utility.continuous_deriv for the combination of the two.

        theorem ProbabilityTheory.Utility.tendsto_deriv_top (U : Utility) {ι : Type u_1} {l : Filter ι} {z : ιENNReal} (hz : Filter.Tendsto z l (nhds )) :
        Filter.Tendsto (fun (n : ι) => U.deriv (z n)) l (nhds (U.deriv ))

        The derivative of a utility function is continuous at .

        The derivative of a utility function is continuous on ℝ≥0∞, including at 0 and at .

        theorem ProbabilityTheory.Utility.deriv_top_eq_zero (U : Utility) {b : } (hU_le : ∀ (x : ENNReal), U.toFun x b) :
        U.deriv = 0
        theorem ProbabilityTheory.Utility.deriv_mul_sub_le (U : Utility) {α Z : ENNReal} (hα_top : α ) (hZ0 : Z 0) (hZ_top : Z ) :
        U.deriv Z * (Z - α) U.toFun Z - U.toFun α

        The first-order Taylor inequality, in the form of a lower bound on the increment of U.

        theorem ProbabilityTheory.Utility.sub_le_inv_mul_sub (U : Utility) {α β : ENNReal} (hβ0 : β 0) {t : } (ht0 : 0 < t) (ht1 : t 1) :
        U.toFun β - U.toFun α (↑t)⁻¹ * (U.toFun (ENNReal.ofReal t * β + ENNReal.ofReal (1 - t) * α) - U.toFun α)

        A convex combination inequality: the difference quotient of U along the segment from α to β is bounded below by U β - U α.

        theorem ProbabilityTheory.Utility.sub_le_deriv_mul_sub (U : Utility) {b : } (hU_le : ∀ (x : ENNReal), U.toFun x b) {α β : ENNReal} (hα0 : α 0) (hαβ : α β ) :
        U.toFun β - U.toFun α U.deriv α * (β - α)

        The increment of U is dominated by its first order Taylor approximation.

        theorem ProbabilityTheory.Utility.deriv_mul_sub_convex (U : Utility) {b : } (hU_le : ∀ (x : ENNReal), U.toFun x b) {α β : ENNReal} (hαβ : α β ) {δ : } (hδ0 : 0 < δ) (hδ1 : δ < 1) :
        U.deriv α * (↑(ENNReal.ofReal δ * 1 + ENNReal.ofReal (1 - δ) * β) - α) = ↑(1 - δ) * (U.deriv α * (β - α)) + δ * (U.deriv α * (1 - α))

        The map y ↦ U.deriv α * (y - α) is affine: it turns a convex combination of 1 and β into the corresponding convex combination of its values.

        theorem ProbabilityTheory.Utility.deriv_mul_sub_le_liminf (U : Utility) {b : } (hU_le : ∀ (x : ENNReal), U.toFun x b) {α β : ENNReal} (hβ0 : β 0) (hαβ : α β ) {t : } (ht0 : ∀ (n : ), 0 < t n) (ht1 : ∀ (n : ), t n < 1) (ht : Filter.Tendsto t Filter.atTop (nhds 0)) :
        U.deriv α * (β - α) Filter.liminf (fun (n : ) => (↑(t n))⁻¹ * (U.toFun (ENNReal.ofReal (t n) * β + ENNReal.ofReal (1 - t n) * α) - U.toFun α)) Filter.atTop

        The key pointwise estimate for the first order optimality condition: along a sequence t n → 0, the difference quotients of U between α and β are eventually at least the directional derivative U.deriv α * (β - α).

        theorem ProbabilityTheory.Utility.eintegral_le_map {α : Type u_1} { : MeasurableSpace α} {μ : MeasureTheory.Measure α} [MeasureTheory.IsProbabilityMeasure μ] (U : Utility) {X : αENNReal} (hX_meas : AEMeasurable X μ) :
        ∫ᵉ (x : α), U.toFun (X x) μ U.toFun (∫⁻ (x : α), X x μ)

        Jensen's inequality.

        The logarithmic utility function.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]

          Bounded approximations of the logarithmic utility #

          We introduce the bounded approximations x ↦ log (n x / (n + x)) of the logarithm, obtained by composing the logarithm with the harmonic truncation harmonicTrunc n x = (x⁻¹ + n⁻¹)⁻¹.

          The harmonic truncation harmonicTrunc n x = n x / (n + x), written in a form that behaves well at 0 and . It is concave, increasing, bounded above by n, and converges to x as n → ∞.

          Equations
          Instances For
            theorem ProbabilityTheory.harmonicTrunc_ne_zero {n x : ENNReal} (hn0 : n 0) (hx0 : x 0) :

            The harmonic truncation of a real number, computed in .

            theorem ProbabilityTheory.harmonicTrunc_le_sq_add {n : ENNReal} (hn0 : n 0) (hn_top : n ) (w : ENNReal) {s t : ENNReal} (hst : s + t = 1) :
            harmonicTrunc n w s ^ 2 * w + t ^ 2 * n

            harmonicTrunc n is the pointwise infimum of the affine maps w ↦ s ^ 2 * w + t ^ 2 * n over s + t = 1: this is one half of that statement.

            theorem ProbabilityTheory.exists_sq_add_le_harmonicTrunc {n : ENNReal} (hn0 : n 0) (hn_top : n ) (z : ENNReal) :
            ∃ (s : ENNReal) (t : ENNReal), s + t = 1 s ^ 2 * z + t ^ 2 * n harmonicTrunc n z

            The infimum in harmonicTrunc_le_sq_add is attained.

            noncomputable def ProbabilityTheory.boundedLogUtility {N : } (hN : 0 < N) :

            Bounded approximation of the logarithmic utility at level N: boundedLogUtility hN x = log (N x / (N + x)).

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              theorem ProbabilityTheory.boundedLogUtility_real {N : } (hN : 0 < N) {x : } (hx : 0 < x) :
              theorem ProbabilityTheory.deriv_boundedLogUtility_real {N : } (hN : 0 < N) {x : } (hx : 0 < x) :
              noncomputable def ProbabilityTheory.harmonicDeriv (N : ) (y : ENNReal) :

              The derivative of boundedLogUtility hN, as an ℝ≥0∞-valued function.

              Equations
              Instances For
                theorem ProbabilityTheory.toReal_harmonicDeriv {N : } (hN : 0 < N) {y : ENNReal} (hy0 : y 0) (hy_top : y ) :

                The derivative of the bounded logarithmic utility, in ℝ≥0∞ form.

                theorem ProbabilityTheory.harmonicDeriv_ne_zero {N : } (hN : 0 < N) {y : ENNReal} (hy : y ) :