@@ -140,7 +140,8 @@ theorem TFAE_normDet_ne_zero (f : U →ₗ[𝕜] V) :
140140 List.TFAE [f.normDet ≠ 0 ,
141141 f.ker = ⊥,
142142 finrank 𝕜 f.range = finrank 𝕜 U,
143- Nonempty (OrthonormalBasis (Fin (finrank 𝕜 U)) 𝕜 f.range)] := by
143+ Nonempty (OrthonormalBasis (Fin (finrank 𝕜 U)) 𝕜 f.range),
144+ Function.Injective f] := by
144145 tfae_have 1 ↔ 2 := f.normDet_eq_zero_iff_ker_ne_bot.not_left
145146 tfae_have 1 ↔ 3 := f.normDet_eq_zero_iff_rank_range_ne.not_left
146147 tfae_have 3 → 4 := by
@@ -150,6 +151,7 @@ theorem TFAE_normDet_ne_zero (f : U →ₗ[𝕜] V) :
150151 tfae_have 4 → 3 := by
151152 rintro ⟨b⟩
152153 simpa using Module.finrank_eq_card_basis b.toBasis
154+ tfae_have 2 ↔ 5 := ker_eq_bot
153155 tfae_finish
154156
155157private noncomputable def orthonormalBasis_range {ι : Type *} [Fintype ι] {f : U →ₗ[𝕜] V}
@@ -163,13 +165,15 @@ theorem TFAE_normDet_eq_zero (f : U →ₗ[𝕜] V) :
163165 f.ker ≠ ⊥,
164166 finrank 𝕜 f.range ≠ finrank 𝕜 U,
165167 finrank 𝕜 f.range < finrank 𝕜 U,
166- IsEmpty (OrthonormalBasis (Fin (finrank 𝕜 U)) 𝕜 f.range)] := by
168+ IsEmpty (OrthonormalBasis (Fin (finrank 𝕜 U)) 𝕜 f.range),
169+ ¬Function.Injective f] := by
167170 tfae_have 1 ↔ 2 := f.normDet_eq_zero_iff_ker_ne_bot
168171 tfae_have 1 ↔ 3 := f.normDet_eq_zero_iff_rank_range_ne
169172 tfae_have 3 ↔ 4 := by simpa using finrank_range_le f
170173 tfae_have 3 ↔ 5 := by
171174 have h := (f.TFAE_normDet_ne_zero.out 2 3 ).not
172175 simpa using h
176+ tfae_have 2 ↔ 6 := ker_eq_bot.not
173177 tfae_finish
174178
175179/--
0 commit comments