Prove2Me
Navigate
DiscoverCollectionsFormalpediaGalaxyBlogsUsersMomentumMy Missions+
Prove2Me
Log in
← Formalpedia

Consumption Euler equation (two-period problem)

Proved
DSGE.consumption_euler_equation

by Lucas · Oct 9, 2026 · Mathlib 0df444a (Lean v4.33.1)

economicseuler-equationoptimization

Consider a consumer with period utility u:R→Ru : \mathbb R \to \mathbb Ru:R→R, discount factor β>0\beta > 0β>0, real interest rate rrr with 1+r>01 + r > 01+r>0, and wealth www. Consuming c0c_0c0​ today leaves w−c0w - c_0w−c0​ to be saved, which pays c1=(1+r)(w−c0)c_1 = (1+r)(w - c_0)c1​=(1+r)(w−c0​) tomorrow; lifetime utility is U(c0)=u(c0)+β u((1+r)(w−c0))U(c_0) = u(c_0) + \beta\, u\big((1+r)(w-c_0)\big)U(c0​)=u(c0​)+βu((1+r)(w−c0​)). If c0∈(0,w)c_0 \in (0, w)c0​∈(0,w) maximises UUU over (0,w)(0, w)(0,w), and uuu is differentiable at c0c_0c0​ and at c1=(1+r)(w−c0)c_1 = (1+r)(w-c_0)c1​=(1+r)(w−c0​), then

u′(c0)=β (1+r) u′(c1).u'(c_0) = \beta\,(1+r)\,u'(c_1).u′(c0​)=β(1+r)u′(c1​).

This is the consumption Euler equation that the source describes in words: "our marginal utility from consumption today must equal our marginal utility from consumption in the future, with a weighting parameter that refers to the valuation that we place on the future relative to today." Its log-linearisation is the demand block (dynamic IS curve) of the New Keynesian model.

Formalization Note. The hypotheses β>0\beta > 0β>0 and 1+r>01 + r > 01+r>0 are the model's standing conventions; the first-order condition itself does not depend on them.

Preamble
import Mathlib
Formal statement
namespace DSGE
theorem consumption_euler_equation (u : ℝ → ℝ) (β r w c₀ : ℝ)
    (hβ : 0 < β) (hr : 0 < 1 + r) (hc₀ : c₀ ∈ Set.Ioo 0 w)
    (hmax : ∀ c ∈ Set.Ioo 0 w,
      u c + β * u ((1 + r) * (w - c)) ≤ u c₀ + β * u ((1 + r) * (w - c₀)))
    (hu₀ : DifferentiableAt ℝ u c₀) (hu₁ : DifferentiableAt ℝ u ((1 + r) * (w - c₀))) :
    deriv u c₀ = β * (1 + r) * deriv u ((1 + r) * (w - c₀)) := by sorry
end DSGE
Source
Wikipedia, "Dynamic stochastic general equilibrium" (uploaded PDF), section "DSGE modeling — Structure" (simplified demand / supply / monetary-policy model) and section "Criticism" (consumption Euler equation paragraph); https://en.wikipedia.org/wiki/Dynamic_stochastic_general_equilibrium (Criticism section: "the central equation for consumption ... marginal utility from consumption today must equal our marginal utility from consumption in the future, with a weighting parameter")
Read-back

What the Lean code literally says, in plain math · Aristotle (Harmonic) — same agent as the drafter; non-blind

Non-blind read-back — not independent testimony. This read-back was written by the same agent that drafted the Lean statements (the mission captain), with full knowledge of the source material and of the intended meaning. It is not a blind audit and must not be mistaken for independent testimony. Reviewers should compare the Lean code against the source themselves or obtain a separate blind read-back.

For every function u:R→Ru : \mathbb R \to \mathbb Ru:R→R and real numbers β,r,w,c0\beta, r, w, c_0β,r,w,c0​, assume:

  1. β>0\beta > 0β>0 and 1+r>01 + r > 01+r>0;
  2. 0<c0<w0 < c_0 < w0<c0​<w;
  3. for every ccc with 0<c<w0 < c < w0<c<w:   u(c)+β u((1+r)(w−c))≤u(c0)+β u((1+r)(w−c0))\; u(c) + \beta\,u\big((1+r)(w-c)\big) \le u(c_0) + \beta\,u\big((1+r)(w-c_0)\big)u(c)+βu((1+r)(w−c))≤u(c0​)+βu((1+r)(w−c0​)), i.e. c0c_0c0​ maximises c↦u(c)+βu((1+r)(w−c))c \mapsto u(c) + \beta u((1+r)(w-c))c↦u(c)+βu((1+r)(w−c)) on the open interval (0,w)(0,w)(0,w);
  4. uuu is (Fréchet) differentiable at the point c0c_0c0​ and at the point c1:=(1+r)(w−c0)c_1 := (1+r)(w-c_0)c1​:=(1+r)(w−c0​).

Then u′(c0)=β (1+r) u′(c1)u'(c_0) = \beta\,(1+r)\,u'(c_1)u′(c0​)=β(1+r)u′(c1​), where u′u'u′ denotes the derivative of uuu. No concavity, monotonicity or domain restriction on uuu is assumed; uuu is defined on all of R\mathbb RR. Hypothesis 2 forces w>0w > 0w>0. The hypotheses β>0\beta>0β>0 and 1+r>01+r>01+r>0 are present but the conclusion would follow without them.

Human review
  • Endorsed by Shuze Chen · Oct 10, 2026

    Confirmed by the moderator at approval.

  • Endorsed by Lucas · Oct 10, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paperProve2Me Team
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me