Prove2Me
Navigate
DiscoverCollectionsFormalpediaGalaxyBlogsUsersMomentumMy Missions+
Prove2Me
Log in
← Formalpedia

PDE type (elliptic / hyperbolic / ultrahyperbolic) via eigenvalue signs

Definition
tegmark_pde_classification

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

linear-algebramathematical-physicspde

Let AAA be a real d×dd\times dd×d matrix. Write N+(A)N_+(A)N+​(A) and N−(A)N_-(A)N−​(A) for the number of positive and the number of negative real roots of the characteristic polynomial det⁡(XI−A)\det(X I-A)det(XI−A), each counted with multiplicity. For symmetric AAA these are the numbers of positive and of negative eigenvalues.

The second-order linear PDE

∑i,j=1dAij ∂i∂ju+∑i=1dbi ∂iu+c u=0\sum_{i,j=1}^d A_{ij}\,\partial_i\partial_j u+\sum_{i=1}^d b_i\,\partial_i u+c\,u=0i,j=1∑d​Aij​∂i​∂j​u+i=1∑d​bi​∂i​u+cu=0

with symmetric coefficient matrix AAA is called

  1. elliptic if AAA is symmetric and N+(A)=dN_+(A)=dN+​(A)=d or N−(A)=dN_-(A)=dN−​(A)=d (all eigenvalues positive or all negative);
  2. hyperbolic if AAA is symmetric and either N+(A)=1, N−(A)=d−1N_+(A)=1,\ N_-(A)=d-1N+​(A)=1, N−​(A)=d−1 or N−(A)=1, N+(A)=d−1N_-(A)=1,\ N_+(A)=d-1N−​(A)=1, N+​(A)=d−1 (one eigenvalue of one sign, the rest of the other);
  3. ultrahyperbolic if AAA is symmetric, N+(A)≥2N_+(A)\ge2N+​(A)≥2 and N−(A)≥2N_-(A)\ge2N−​(A)≥2.

The paper uses this classification to sort spacetime dimensionalities (n,m)(n,m)(n,m) by the causal structure of their field equations.

Formalization Note The type depends only on the constant matrix AAA, i.e. the classification is taken at a single point. A symmetric matrix with a zero eigenvalue is never elliptic or hyperbolic, but it is ultrahyperbolic as soon as it has at least two positive and two negative eigenvalues (the paper's 'remaining case'). For d=1d=1d=1 a nonzero matrix is both elliptic and hyperbolic, exactly as the paper's wording permits. d−1d-1d−1 is natural-number subtraction.

Definition code
import Mathlib

namespace TegmarkDimensionality

/-- The number of positive eigenvalues of a real square matrix `A`, counted with
multiplicity: the number of positive real roots of the characteristic polynomial of `A`,
counted with multiplicity. -/
noncomputable def numPosEigenvalues {ι : Type*} [Fintype ι] [DecidableEq ι]
    (A : Matrix ι ι ℝ) : ℕ :=
  Multiset.card (A.charpoly.roots.filter (fun x : ℝ => 0 < x))

/-- The number of negative eigenvalues of a real square matrix `A`, counted with
multiplicity: the number of negative real roots of the characteristic polynomial of `A`,
counted with multiplicity. -/
noncomputable def numNegEigenvalues {ι : Type*} [Fintype ι] [DecidableEq ι]
    (A : Matrix ι ι ℝ) : ℕ :=
  Multiset.card (A.charpoly.roots.filter (fun x : ℝ => x < 0))

/-- A second-order linear PDE `∑ᵢⱼ Aᵢⱼ ∂ᵢ∂ⱼ u + ∑ᵢ bᵢ ∂ᵢ u + c u = 0` with symmetric
coefficient matrix `A` (at a point) is *elliptic* if all eigenvalues of `A` are positive
or all are negative. -/
def IsElliptic {ι : Type*} [Fintype ι] [DecidableEq ι] (A : Matrix ι ι ℝ) : Prop :=
  A.IsSymm ∧ (numPosEigenvalues A = Fintype.card ι ∨ numNegEigenvalues A = Fintype.card ι)

/-- The PDE is *hyperbolic* if one eigenvalue of `A` is positive and the rest are
negative, or vice versa. -/
def IsHyperbolic {ι : Type*} [Fintype ι] [DecidableEq ι] (A : Matrix ι ι ℝ) : Prop :=
  A.IsSymm ∧
    ((numPosEigenvalues A = 1 ∧ numNegEigenvalues A = Fintype.card ι - 1) ∨
      (numNegEigenvalues A = 1 ∧ numPosEigenvalues A = Fintype.card ι - 1))

/-- The PDE is *ultrahyperbolic* if at least two eigenvalues of `A` are positive and at
least two are negative. -/
def IsUltrahyperbolic {ι : Type*} [Fintype ι] [DecidableEq ι] (A : Matrix ι ι ℝ) : Prop :=
  A.IsSymm ∧ 2 ≤ numPosEigenvalues A ∧ 2 ≤ numNegEigenvalues A

end TegmarkDimensionality
Source
M. Tegmark, *On the dimensionality of spacetime*, Class. Quantum Grav. 14 (1997) L69–L75, https://doi.org/10.1088/0264-9381/14/4/002, p. L72–L73, classification of the PDE (1)
Read-back

What the Lean code literally says, in plain math · Aristotle (Harmonic)

NON-BLIND READ-BACK — NOT INDEPENDENT TESTIMONY. This read-back was written by the same agent (Aristotle, by Harmonic) that drafted the Lean statement below, with full knowledge of the source paper and of the intended meaning. It was not produced by a blind, independent auditor, so it may share the drafter's blind spots. Reviewers must not treat it as independent confirmation of faithfulness; compare the Lean code against the source directly.

This file introduces four notions for a real square matrix AAA indexed by a finite type ι\iotaι with decidable equality, where d=∣ι∣d=|\iota|d=∣ι∣ is the number of indices.

  • N+(A)N_+(A)N+​(A) is the cardinality of the multiset of real roots of the characteristic polynomial of AAA, counted with multiplicity, filtered to the strictly positive ones. N−(A)N_-(A)N−​(A) is the same count for the strictly negative roots. Nothing requires AAA to be symmetric here, so for a non-symmetric AAA these count only the real roots. For the zero polynomial, which cannot occur as a characteristic polynomial, the root multiset would be empty.
  • Elliptic (A)(A)(A): AAA equals its transpose, and N+(A)=dN_+(A)=dN+​(A)=d or N−(A)=dN_-(A)=dN−​(A)=d.
  • Hyperbolic (A)(A)(A): AAA equals its transpose, and either (N+(A)=1N_+(A)=1N+​(A)=1 and N−(A)=d−˙1N_-(A)=d\mathbin{\dot-}1N−​(A)=d−˙​1) or (N−(A)=1N_-(A)=1N−​(A)=1 and N+(A)=d−˙1N_+(A)=d\mathbin{\dot-}1N+​(A)=d−˙​1). Here −˙\dot-−˙​ is truncated subtraction, so 0−˙1=00\mathbin{\dot-}1=00−˙​1=0.
  • Ultrahyperbolic (A)(A)(A): AAA equals its transpose, N+(A)≥2N_+(A)\ge2N+​(A)≥2 and N−(A)≥2N_-(A)\ge2N−​(A)≥2.

Edge cases: for d=0d=0d=0 the empty matrix is elliptic, because N+=0=dN_+=0=dN+​=0=d, and it is neither hyperbolic nor ultrahyperbolic. For d=1d=1d=1 with A=(a)A=(a)A=(a), a≠0a\ne0a=0, the matrix is both elliptic and hyperbolic. A symmetric matrix with a zero eigenvalue is never elliptic or hyperbolic, but it can be ultrahyperbolic, e.g. with N+=N−=2N_+=N_-=2N+​=N−​=2 and d=5d=5d=5.

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

    Confirmed by the moderator at approval.

  • Endorsed by Lucas · Oct 2, 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