Three-equation New Keynesian model: equilibrium, boundedness, determinacy
DefinitionDSGE_NK_modelThis file fixes the basic three-equation New Keynesian model in its deterministic (shock-free) form, with all variables written as deviations from the zero-inflation steady state. Time is discrete, ; is the output gap, inflation and the nominal interest rate. The real parameters are (inverse elasticity of intertemporal substitution), (discount factor), (slope of the Phillips curve), and the Taylor-rule coefficients .
- Equilibrium. Real sequences form an equilibrium if for every
- Bounded sequence. A real sequence is bounded if there is with for all .
- Determinacy. The parameter vector is determinate if every equilibrium in which , and are all bounded is identically zero, i.e. the steady state is the unique bounded equilibrium.
These three blocks (demand, supply, monetary policy) are exactly the simplified DSGE model described in the source; the definitions are shared by every statement of the mission.
Formalization Note. Sequences are functions . The factor uses Lean's total division, so for the IS equation degenerates to ; the theorems that use this definition assume or . Expectations operators are absent because the model is deterministic.
import Mathlib
/-!
# The basic three-equation New Keynesian model (deterministic, shock-free)
All variables are deviations from the zero-inflation steady state:
* `y t` — output gap in period `t`,
* `π t` — inflation in period `t`,
* `i t` — nominal interest rate in period `t`.
Parameters: `σ` (inverse elasticity of intertemporal substitution), `β` (discount factor),
`κ` (slope of the Phillips curve), `φπ`, `φy` (Taylor-rule coefficients).
-/
namespace DSGE
/-- `(y, π, i)` solves the three-equation New Keynesian model in every period `t`:
* demand (dynamic IS curve): `y t = y (t+1) - (1/σ) (i t - π (t+1))`,
* supply (New Keynesian Phillips curve): `π t = β π (t+1) + κ y t`,
* monetary policy (Taylor rule): `i t = φπ π t + φy y t`. -/
def IsNKEquilibrium (σ β κ φπ φy : ℝ) (y π i : ℕ → ℝ) : Prop :=
∀ t : ℕ,
y t = y (t + 1) - (1 / σ) * (i t - π (t + 1)) ∧
π t = β * π (t + 1) + κ * y t ∧
i t = φπ * π t + φy * y t
/-- A real sequence is bounded: there is `C` with `|x t| ≤ C` for all `t`. -/
def IsBoundedSeq (x : ℕ → ℝ) : Prop :=
∃ C : ℝ, ∀ t : ℕ, |x t| ≤ C
/-- Determinacy: the zero (steady-state) path is the only bounded solution of the model. -/
def IsDeterminate (σ β κ φπ φy : ℝ) : Prop :=
∀ y π i : ℕ → ℝ, IsNKEquilibrium σ β κ φπ φy y π i →
IsBoundedSeq y → IsBoundedSeq π → IsBoundedSeq i →
∀ t : ℕ, y t = 0 ∧ π t = 0 ∧ i t = 0
end DSGE
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.
The file introduces three notions, all inside the namespace DSGE.
1. Equilibrium. Given real numbers and three real sequences , the predicate holds iff for every natural number all three equations hold:
No sign or nonzeroness condition on any parameter is imposed by the definition. When , the expression evaluates to (total division), so the first equation becomes .
2. Bounded sequence. A sequence is bounded iff there exists a real with for all .
3. Determinacy. For parameters , determinacy holds iff for all sequences : if is an equilibrium in the sense of 1, and , and are each bounded, then , and for every . Unbounded equilibria are not restricted. The zero sequences are always an equilibrium, so determinacy says exactly that no nonzero bounded equilibrium exists.
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.