@@ -63,18 +63,26 @@ variable {K R : Type v} {V M : Type w} [CommRing R] [AddCommGroup M] [Module R M
63
63
def eigenspace (f : End R M) (μ : R) : Submodule R M :=
64
64
LinearMap.ker (f - algebraMap R (End R M) μ)
65
65
66
+ lemma eigenspace_def (f : End R M) (μ : R) :
67
+ f.eigenspace μ = LinearMap.ker (f - algebraMap R (End R M) μ) := rfl
68
+
66
69
@[simp]
67
70
theorem eigenspace_zero (f : End R M) : f.eigenspace 0 = LinearMap.ker f := by simp [eigenspace]
68
71
69
72
/-- A nonzero element of an eigenspace is an eigenvector. (Def 5.7 of [ axler2015 ] ) -/
70
73
def HasEigenvector (f : End R M) (μ : R) (x : M) : Prop :=
71
74
x ∈ eigenspace f μ ∧ x ≠ 0
72
75
76
+ lemma hasEigenvector_iff {f : End R M} {μ : R} {x : M} :
77
+ f.HasEigenvector μ x ↔ x ∈ eigenspace f μ ∧ x ≠ 0 := Iff.rfl
78
+
73
79
/-- A scalar `μ` is an eigenvalue for a linear map `f` if there are nonzero vectors `x`
74
80
such that `f x = μ • x`. (Def 5.5 of [ axler2015 ] ) -/
75
81
def HasEigenvalue (f : End R M) (a : R) : Prop :=
76
82
eigenspace f a ≠ ⊥
77
83
84
+ lemma hasEigenvalue_iff (f : End R M) (μ : R) : f.HasEigenvalue μ ↔ eigenspace f μ ≠ ⊥ := Iff.rfl
85
+
78
86
/-- The eigenvalues of the endomorphism `f`, as a subtype of `R`. -/
79
87
def Eigenvalues (f : End R M) : Type _ :=
80
88
{ μ : R // f.HasEigenvalue μ }
@@ -161,6 +169,9 @@ def genEigenspace (f : End R M) (μ : R) : ℕ →o Submodule R M where
161
169
LinearMap.ker_le_ker_comp ((f - algebraMap R (End R M) μ) ^ k)
162
170
((f - algebraMap R (End R M) μ) ^ (m - k))
163
171
172
+ lemma genEigenspace_def (f : End R M) (μ : R) (k : ℕ) :
173
+ f.genEigenspace μ k = LinearMap.ker ((f - algebraMap R (End R M) μ) ^ k) := rfl
174
+
164
175
@[simp]
165
176
theorem mem_genEigenspace (f : End R M) (μ : R) (k : ℕ) (m : M) :
166
177
m ∈ f.genEigenspace μ k ↔ ((f - μ • (1 : End R M)) ^ k) m = 0 := Iff.rfl
@@ -175,16 +186,25 @@ theorem genEigenspace_zero (f : End R M) (k : ℕ) :
175
186
def HasGenEigenvector (f : End R M) (μ : R) (k : ℕ) (x : M) : Prop :=
176
187
x ≠ 0 ∧ x ∈ genEigenspace f μ k
177
188
189
+ lemma hasGenEigenvector_iff {f : End R M} {μ : R} {k : ℕ} {x : M} :
190
+ f.HasGenEigenvector μ k x ↔ x ≠ 0 ∧ x ∈ f.genEigenspace μ k := Iff.rfl
191
+
178
192
/-- A scalar `μ` is a generalized eigenvalue for a linear map `f` and an exponent `k ∈ ℕ` if there
179
193
are generalized eigenvectors for `f`, `k`, and `μ`. -/
180
194
def HasGenEigenvalue (f : End R M) (μ : R) (k : ℕ) : Prop :=
181
195
genEigenspace f μ k ≠ ⊥
182
196
197
+ lemma hasGenEigenvalue_iff (f : End R M) (μ : R) (k : ℕ) :
198
+ f.HasGenEigenvalue μ k ↔ genEigenspace f μ k ≠ ⊥ := Iff.rfl
199
+
183
200
/-- The generalized eigenrange for a linear map `f`, a scalar `μ`, and an exponent `k ∈ ℕ` is the
184
201
range of `(f - μ • id) ^ k`. -/
185
202
def genEigenrange (f : End R M) (μ : R) (k : ℕ) : Submodule R M :=
186
203
LinearMap.range ((f - algebraMap R (End R M) μ) ^ k)
187
204
205
+ lemma genEigenrange_def (f : End R M) (μ : R) (k : ℕ) :
206
+ f.genEigenrange μ k = LinearMap.range ((f - algebraMap R (End R M) μ) ^ k) := rfl
207
+
188
208
/-- The exponent of a generalized eigenvalue is never 0. -/
189
209
theorem exp_ne_zero_of_hasGenEigenvalue {f : End R M} {μ : R} {k : ℕ}
190
210
(h : f.HasGenEigenvalue μ k) : k ≠ 0 := by
@@ -195,6 +215,9 @@ theorem exp_ne_zero_of_hasGenEigenvalue {f : End R M} {μ : R} {k : ℕ}
195
215
def maxGenEigenspace (f : End R M) (μ : R) : Submodule R M :=
196
216
⨆ k, f.genEigenspace μ k
197
217
218
+ lemma maxGenEigenspace_def (f : End R M) (μ : R) :
219
+ f.maxGenEigenspace μ = ⨆ k, f.genEigenspace μ k := rfl
220
+
198
221
theorem genEigenspace_le_maximal (f : End R M) (μ : R) (k : ℕ) :
199
222
f.genEigenspace μ k ≤ f.maxGenEigenspace μ :=
200
223
le_iSup _ _
0 commit comments