Documentation

LeanPool.AiyagariEquilibrium.Models.ConsumptionSavingsUnbounded

Consumption and savings with period utility unbounded below #

Period utility may fall to -∞ at zero consumption, which covers σ ≥ 1 in the CES family and log utility. Assets are capped.

This file used to use a floor #

It replaced u by max floor u to keep the reward real-valued and bounded, and then had to prove the floor never binds: bounds on the value function above and below, then floor_lt_rewardFn_optimal, then cFloor_le_consumption_optimal. Four structure fields (floor, cFloor, u_cFloor_le_floor, floor_lt) and about a hundred and fifty lines of proof existed only to establish that a device introduced for technical reasons was invisible in the answer.

With LeanEconomics.DynamicProgramming.Extended the reward is simply -∞ there. All of that machinery is gone. What replaces it is a single hypothesis, tendsto_atBot_u, saying utility falls to -∞ at zero consumption -- which is not an extra assumption at all, since it is precisely the situation that forced the floor.

Positive consumption at the optimum now comes for free. It used to be the conclusion of the floor argument. Now it follows from the value function being real: if the optimal action left zero consumption the reward would be -∞, so the value would be -∞, and it is not. That is exists_optimal_saving, which returns 0 < consumption as part of its conclusion rather than requiring a separate development.

What is unchanged #

Consumption is still clamped above, and assets are still capped. Neither has anything to do with -∞; both are the ordinary requirement that the reward be bounded above, which the weighted theory addresses separately.

Cash on hand is now computed from max 0 a rather than a. With a floor, a state with negative cash on hand received the floor value; without one it would receive -∞, which the framework does not allow. Reading assets as nonnegative keeps the value finite everywhere, and changes nothing on [0, assetCap], which is where the results are stated.

c ↦ -1/c, that is CES utility at σ = 2, is strictly concave on the positives. Mathlib has no convexity lemma for x⁻¹, and its rpow convexity results cover only exponents ≥ 1, so this is proved by hand: the difference of the two sides is a * b * (x - y)² / (x * y * (a * x + b * y)).

A consumption-savings problem whose period utility is unbounded below.

  • income : ℝ

    Constant labour income.

  • interest : ℝ

    The interest rate on assets.

  • assetCap : ℝ

    The upper bound imposed on asset holdings.

  • discount : NNReal

    The discount factor.

  • u : ℝ → ℝ

    Period utility, required to behave only on positive consumption.

  • income_pos : 0 < self.income
  • interest_gt_neg_one : 0 < 1 + self.interest
  • assetCap_nonneg : 0 ≤ self.assetCap
  • discount_lt_one : self.discount < 1
  • continuousOn_u : ContinuousOn self.u (Set.Ioi 0)
  • monotoneOn_u : MonotoneOn self.u (Set.Ioi 0)
  • tendsto_atBot_u : Filter.Tendsto self.u (nhdsWithin 0 (Set.Ioi 0)) Filter.atBot

    Utility falls to -∞ as consumption vanishes. This single hypothesis replaces the four fields the floored version needed.

  • strictConcaveOn_u : StrictConcaveOn ℝ (Set.Ioi 0) self.u

    Diminishing marginal utility. Needed for a unique optimal policy, hence for an agent distribution to be a well-defined object.

Instances For

    Cash on hand, with assets read as nonnegative.

    Equations
    Instances For

      The largest consumption the capped problem allows.

      Equations
      Instances For

        The largest asset holding that can be carried forward.

        Equations
        Instances For

          Consumption on the budget line.

          Equations
          Instances For

            The reward: utility of consumption clamped above, and -∞ where consumption vanishes. No floor.

            Equations
            Instances For

              The problem as a dynamic program with an extended-real reward.

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

                The Bellman equation, with honest utility and positive consumption. That consumption is positive at the optimum is not assumed and not separately proved: a zero would make the reward -∞ and hence the value -∞, and the value is real.

                Concavity and the optimal policy #

                The σ < 1 model gets concavity from the general criterion in LeanEconomics.DynamicProgramming.Bellman. That criterion is stated for a real-valued reward and does not apply here, because ConcaveOn over EReal would need an ordered module structure that does not sit well. The way round is that the -∞ never appears where it matters: at an optimum consumption is strictly positive, so every value the argument touches is finite, and the reasoning can be carried out in the reals.

                theorem LeanEconomics.ConsumptionSavingsUnbounded.resources_affine_comb (P : ConsumptionSavingsUnbounded) {x y θ φ : ℝ} (hx : 0 ≤ x) (hy : 0 ≤ y) (hθ : 0 ≤ θ) (hφ : 0 ≤ φ) (hθφ : θ + φ = 1) :
                P.resources (θ * x + φ * y) = θ * P.resources x + φ * P.resources y
                theorem LeanEconomics.ConsumptionSavingsUnbounded.feasible_convex (P : ConsumptionSavingsUnbounded) {x y : ℝ} (hx : x ∈ Set.Icc 0 P.assetCap) (hy : y ∈ Set.Icc 0 P.assetCap) {ax ay θ φ : ℝ} (hax : ax ∈ P.toExtended.feasible x) (hay : ay ∈ P.toExtended.feasible y) (hθ : 0 ≤ θ) (hφ : 0 ≤ φ) (hθφ : θ + φ = 1) :
                θ * ax + φ * ay ∈ P.toExtended.feasible (θ * x + φ * y)

                A finite reward means strictly positive consumption.

                Where consumption is positive the reward is an ordinary real utility.

                At an optimum consumption is positive and the value is an ordinary real expression.

                The value function is concave on [0, assetCap], for utility unbounded below.

                The optimal action is unique. Two distinct optimal actions would be beaten by their midpoint, since utility is strictly concave and the continuation value concave.

                The optimal saving choice. By optimal_action_unique this is the optimal choice on the region, not merely an optimal choice.

                Equations
                Instances For

                  Consumption under the optimal policy is strictly positive: the household never starves itself. With a floor this had to be proved; here it follows from the value being real.

                  The Bellman equation at the policy, with honest utility and positive consumption.

                  The optimal policy is continuous on the region, for utility unbounded below.

                  Utilities that qualify #

                  CES period utility.

                  Equations
                  Instances For

                    A calibration with σ = 2, where CES utility is -1 / c.

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

                      A log calibration (σ = 1).

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