Skip to content

Commit 81291d4

Browse files
sharky564Bergschaf
authored andcommitted
feat(LinearAlgebra/Projection): add quotientEquivOfIsCompl_comp_mkQ and quotientEquivOfIsTopCompl_comp_mkQ (leanprover-community#39613)
Adds the lemmas `Submodule.quotientEquivOfIsCompl_comp_mkQ` and `quotientEquivOfIsTopCompl_comp_mkQ` - the composition of `quotientEquivOfIsCompl`/`quotientEquivOfIsTopCompl` with `mkQ` agrees with the linear projection onto `q` along `p`. Additionally the proof of `IsCompl.isTopCompl_iff_continuous_quotientEquivOfIsCompl` is simplified.
1 parent a5ea71c commit 81291d4

2 files changed

Lines changed: 10 additions & 4 deletions

File tree

Mathlib/LinearAlgebra/Projection.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,10 @@ def quotientEquivOfIsCompl (h : IsCompl p q) : (E ⧸ p) ≃ₗ[R] q :=
286286
(by ext; simp)
287287
(by ext; simp [Quotient.eq, sub_mem_comm_iff, sub_projection_mem])
288288

289+
theorem quotientEquivOfIsCompl_comp_mkQ (h : IsCompl p q) :
290+
(quotientEquivOfIsCompl p q h : E ⧸ p →ₗ[R] q) ∘ₗ p.mkQ = q.projectionOnto p h.symm :=
291+
rfl
292+
289293
@[simp]
290294
theorem quotientEquivOfIsCompl_apply_mk (h : IsCompl p q) (x : E) :
291295
quotientEquivOfIsCompl p q h (Quotient.mk x) = q.projectionOnto p h.symm x :=

Mathlib/Topology/Algebra/Module/Complement.lean

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -450,10 +450,8 @@ theorem prodEquivOfIsTopCompl_symm_apply (h : IsTopCompl p q) (x : M) :
450450
`Submodule.quotientEquivOfIsCompl` is continuous. -/
451451
theorem IsCompl.isTopCompl_iff_continuous_quotientEquivOfIsCompl (h : IsCompl p q) :
452452
IsTopCompl p q ↔ Continuous (p.quotientEquivOfIsCompl q h) := by
453-
have hproj : ⇑(p.quotientEquivOfIsCompl q h) ∘ ⇑p.mkQ = ⇑(q.projectionOnto p h.symm) := by
454-
funext; simp
455-
rw [p.isQuotientMap_mkQL.continuous_iff, coe_mkQL, hproj, ← h.symm.isTopCompl_iff_projectionOnto,
456-
isTopCompl_comm]
453+
rw [p.isQuotientMap_mkQL.continuous_iff, isTopCompl_comm]
454+
exact h.symm.isTopCompl_iff_projectionOnto
457455

458456
variable (p q) in
459457
/-- If two submodules are topological complements, then the linear equivalence
@@ -469,6 +467,10 @@ theorem toLinearEquiv_quotientEquivOfIsTopCompl (h : IsTopCompl p q) :
469467
(quotientEquivOfIsTopCompl p q h : (M ⧸ p) ≃ₗ[R] q) = p.quotientEquivOfIsCompl q h.isCompl :=
470468
rfl
471469

470+
theorem quotientEquivOfIsTopCompl_comp_mkQL (h : IsTopCompl p q) :
471+
(quotientEquivOfIsTopCompl p q h) ∘L p.mkQL = q.projectionOntoL p h.symm :=
472+
rfl
473+
472474
@[simp]
473475
theorem quotientEquivOfIsTopCompl_apply (h : IsTopCompl p q) (x : M ⧸ p) :
474476
quotientEquivOfIsTopCompl p q h x = p.quotientEquivOfIsCompl q h.isCompl x :=

0 commit comments

Comments
 (0)