PDE type (elliptic / hyperbolic / ultrahyperbolic) via eigenvalue signs
Definitiontegmark_pde_classificationLet be a real matrix. Write and for the number of positive and the number of negative real roots of the characteristic polynomial , each counted with multiplicity. For symmetric these are the numbers of positive and of negative eigenvalues.
The second-order linear PDE
with symmetric coefficient matrix is called
- elliptic if is symmetric and or (all eigenvalues positive or all negative);
- hyperbolic if is symmetric and either or (one eigenvalue of one sign, the rest of the other);
- ultrahyperbolic if is symmetric, and .
The paper uses this classification to sort spacetime dimensionalities by the causal structure of their field equations.
Formalization Note The type depends only on the constant matrix , 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 a nonzero matrix is both elliptic and hyperbolic, exactly as the paper's wording permits. is natural-number subtraction.
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
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 indexed by a finite type with decidable equality, where is the number of indices.
- is the cardinality of the multiset of real roots of the characteristic polynomial of , counted with multiplicity, filtered to the strictly positive ones. is the same count for the strictly negative roots. Nothing requires to be symmetric here, so for a non-symmetric these count only the real roots. For the zero polynomial, which cannot occur as a characteristic polynomial, the root multiset would be empty.
- Elliptic : equals its transpose, and or .
- Hyperbolic : equals its transpose, and either ( and ) or ( and ). Here is truncated subtraction, so .
- Ultrahyperbolic : equals its transpose, and .
Edge cases: for the empty matrix is elliptic, because , and it is neither hyperbolic nor ultrahyperbolic. For with , , 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 and .
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.