Skip to content

Commit e88cc72

Browse files
committed
hopefully clean up git mess
1 parent 08b3d12 commit e88cc72

22 files changed

Lines changed: 370 additions & 186 deletions

File tree

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7917,6 +7917,7 @@ public import Mathlib.Topology.Order.T5
79177917
public import Mathlib.Topology.Order.UpperLowerSetTopology
79187918
public import Mathlib.Topology.Order.WithTop
79197919
public import Mathlib.Topology.Partial
7920+
public import Mathlib.Topology.PartialHomeomorph.Defs
79207921
public import Mathlib.Topology.PartitionOfUnity
79217922
public import Mathlib.Topology.Path
79227923
public import Mathlib.Topology.Perfect

Mathlib/Algebra/Lie/InvariantForm.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ theorem isSemisimple_of_nondegenerate : IsSemisimple K L := by
202202
intro J hJ hJI
203203
rw [← lie_eq_self_of_isAtom_of_nonabelian J hJ (hL J hJ), lieIdeal_oper_eq_span, lieSpan_le]
204204
rintro _ ⟨x, y, rfl⟩
205-
simp only [orthogonal_carrier, LinearMap.IsOrtho, Set.mem_setOf_eq]
205+
simp only [orthogonal_carrier, Φ.isOrtho_def, Set.mem_setOf_eq]
206206
intro z hz
207207
rw [← neg_eq_zero, ← hΦ_inv]
208208
suffices ⁅(x : L), z⁆ = 0 by simp only [this, map_zero, LinearMap.zero_apply]

Mathlib/Geometry/Manifold/ContMDiff/Defs.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ theorem contMDiffWithinAt_iff_target :
273273
and_iff_left_of_imp <| (continuousAt_extChartAt _).comp_continuousWithinAt
274274
simp_rw [cont, ContDiffWithinAtProp, extChartAt, OpenPartialHomeomorph.extend,
275275
PartialEquiv.coe_trans, ModelWithCorners.toPartialEquiv_coe,
276-
OpenPartialHomeomorph.coe_toPartialEquiv, modelWithCornersSelf_coe, chartAt_self_eq,
276+
OpenPartialHomeomorph.coe_toPartialEquiv, modelWithCornersSelf_coe, chartAt_self_eq,
277277
OpenPartialHomeomorph.refl_apply, id_comp]
278278
rfl
279279

Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ lemma contMDiff_equivTangentBundleProd_symm :
455455
filter_upwards [chart_source_mem_nhds (ModelProd (ModelProd H E) (ModelProd H' E')) (a, b)]
456456
with p hp
457457
-- now we have to check that the original map coincides locally with `pM` read in target chart.
458-
simp only [prodChartedSpace_chartAt, OpenPartialHomeomorph.prod_toPartialEquiv,
458+
simp only [prodChartedSpace_chartAt, OpenPartialHomeomorph.prod_toPartialHomeomorph,
459459
PartialEquiv.prod_source, mem_prod, TangentBundle.mem_chart_source_iff] at hp
460460
let φ (x : E) := I ((chartAt H a.proj) ((chartAt H p.1.proj).symm (I.symm x)))
461461
have D0 : DifferentiableWithinAt 𝕜 φ (Set.range I) (I ((chartAt H p.1.proj) p.1.proj)) := by
@@ -494,7 +494,7 @@ lemma contMDiff_equivTangentBundleProd_symm :
494494
filter_upwards [chart_source_mem_nhds (ModelProd (ModelProd H E) (ModelProd H' E')) (a, b)]
495495
with p hp
496496
-- now we have to check that the original map coincides locally with `pM'` read in target chart.
497-
simp only [prodChartedSpace_chartAt, OpenPartialHomeomorph.prod_toPartialEquiv,
497+
simp only [prodChartedSpace_chartAt, OpenPartialHomeomorph.prod_toPartialHomeomorph,
498498
PartialEquiv.prod_source, mem_prod, TangentBundle.mem_chart_source_iff] at hp
499499
let φ (x : E') := I' ((chartAt H' b.proj) ((chartAt H' p.2.proj).symm (I'.symm x)))
500500
have D0 : DifferentiableWithinAt 𝕜 φ (Set.range I') (I' ((chartAt H' p.2.proj) p.2.proj)) := by

Mathlib/Geometry/Manifold/IsManifold/Basic.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -751,7 +751,7 @@ theorem contDiffGroupoid_prod {I : ModelWithCorners 𝕜 E H} {I' : ModelWithCor
751751
e.prod e' ∈ contDiffGroupoid n (I.prod I') := by
752752
obtain ⟨he, he_symm⟩ := he
753753
obtain ⟨he', he'_symm⟩ := he'
754-
constructor <;> simp only [PartialEquiv.prod_source, OpenPartialHomeomorph.prod_toPartialEquiv,
754+
constructor <;> simp only [OpenPartialHomeomorph.prod_toPartialHomeomorph,
755755
contDiffPregroupoid]
756756
· have h3 := ContDiffOn.prodMap he he'
757757
rw [← I.image_eq, ← I'.image_eq, prod_image_image_eq] at h3

Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ lemma prodMap [IsManifold I n M] [IsManifold I' n M'] [IsManifold J n N] [IsMani
228228
(domChart_mem_maximalAtlas hf) (domChart_mem_maximalAtlas hg)
229229
· apply IsManifold.mem_maximalAtlas_prod
230230
(codChart_mem_maximalAtlas hf) (codChart_mem_maximalAtlas hg)
231-
· simp only [OpenPartialHomeomorph.prod_toPartialEquiv, PartialEquiv.prod_source,
231+
· simp only [OpenPartialHomeomorph.prod_toPartialHomeomorph, PartialEquiv.prod_source,
232232
preimage_prod_map_prod]
233233
exact prod_mono hf.source_subset_preimage_source hg.source_subset_preimage_source
234234
· exact h hf.property hg.property

Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,13 @@ Note that for general (neither symmetric nor antisymmetric) bilinear forms this
130130
chirality; in addition to this "right" orthogonal complement one could define a "left" orthogonal
131131
complement for which, for all `y` in `N`, `B x y = 0`. This variant definition is not currently
132132
provided in mathlib. -/
133-
def orthogonal (B : BilinForm R M) (N : Submodule R M) : Submodule R M := N.orthogonalBilin B
133+
def orthogonal (B : BilinForm R M) (N : Submodule R M) : Submodule R M where
134+
carrier := { m | ∀ n ∈ N, IsOrtho B n m }
135+
zero_mem' x _ := isOrtho_zero_right x
136+
add_mem' {x y} hx hy n hn := by
137+
rw [IsOrtho, add_right, show B n x = 0 from hx n hn, show B n y = 0 from hy n hn, zero_add]
138+
smul_mem' c x hx n hn := by
139+
rw [IsOrtho, smul_right, show B n x = 0 from hx n hn, mul_zero]
134140

135141
variable {N L : Submodule R M}
136142

Mathlib/LinearAlgebra/QuadraticForm/Basic.lean

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1305,7 +1305,8 @@ theorem exists_orthogonal_basis [hK : Invertible (2 : K)] {B : LinearMap.BilinFo
13051305
obtain ⟨x, hx⟩ := exists_bilinForm_self_ne_zero hB₁ hB₂
13061306
rw [← Submodule.finrank_add_eq_of_isCompl (isCompl_span_singleton_orthogonal hx).symm,
13071307
finrank_span_singleton (ne_zero_of_map hx)] at hd
1308-
let B' := B.domRestrict₁₂ ((K ∙ x).orthogonalBilin B) ((K ∙ x).orthogonalBilin B)
1308+
let B' := B.domRestrict₁₂ (Submodule.orthogonalBilin (K ∙ x) B)
1309+
(Submodule.orthogonalBilin (K ∙ x) B)
13091310
obtain ⟨v', hv₁⟩ := ih (hB₂.domRestrict _ : B'.IsSymm) (Nat.succ.inj hd)
13101311
-- concatenate `x` with the basis obtained by induction
13111312
let b :=

Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ lemma orthogonal_rootSpan_eq :
332332
obtain ⟨u, hu, v, hv, rfl⟩ : ∃ᵉ (u ∈ P.rootSpan R) (v ∈ LinearMap.ker P.RootForm), u + v = y := by
333333
rw [← Submodule.mem_sup, P.isCompl_rootSpan_ker_rootForm.sup_eq_top]; exact Submodule.mem_top
334334
simp only [LinearMap.mem_ker] at hv
335-
simp [LinearMap.IsOrtho, hx _ hu, hv]
335+
simp [hx _ hu, hv]
336336

337337
@[simp]
338338
lemma orthogonal_corootSpan_eq :

Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -352,25 +352,17 @@ namespace Submodule
352352

353353
/-! ### The orthogonal complement -/
354354

355-
variable [CommSemiring R] [CommSemiring R₁] [CommSemiring R₂]
356-
variable [AddCommMonoid M] [Module R M]
357-
variable [AddCommMonoid M₁] [Module R₁ M₁]
358-
variable [AddCommMonoid M₂] [Module R₂ M₂]
359-
variable {N L : Submodule R₁ M₁}
360-
361-
section
355+
variable [CommRing R] [CommRing R₁] [AddCommGroup M₁] [Module R₁ M₁] [AddCommGroup M] [Module R M]
356+
{I₁ : R₁ →+* R} {I₂ : R₁ →+* R} {B : M₁ →ₛₗ[I₁] M₁ →ₛₗ[I₂] M}
362357

363-
variable {I₁ : R₁ →+* R} {I₂ : R₂ →+* R} {B : M₁ →ₛₗ[I₁] M₂ →ₛₗ[I₂] M}
364-
365-
variable (B) in
366358
/-- The orthogonal complement of a submodule `N` with respect to some bilinear map is the set of
367359
elements `x` which are orthogonal to all elements of `N`; i.e., for all `y` in `N`, `B x y = 0`.
368360
369361
Note that for general (neither symmetric nor antisymmetric) bilinear maps this definition has a
370362
chirality; in addition to this "left" orthogonal complement one could define a "right" orthogonal
371363
complement for which, for all `y` in `N`, `B y x = 0`. This variant definition is not currently
372364
provided in mathlib. -/
373-
def orthogonalBilin (N : Submodule R₁ M₁) : Submodule R₂ M₂ where
365+
def orthogonalBilin (N : Submodule R₁ M₁) (B : M₁ →ₛₗ[I₁] M₁ →ₛₗ[I₂] M) : Submodule R₁ M₁ where
374366
carrier := { m | ∀ n ∈ N, B.IsOrtho n m }
375367
zero_mem' x _ := B.isOrtho_zero_right x
376368
add_mem' hx hy n hn := by
@@ -379,24 +371,18 @@ def orthogonalBilin (N : Submodule R₁ M₁) : Submodule R₂ M₂ where
379371
smul_mem' c x hx n hn := by
380372
rw [LinearMap.IsOrtho, map_smulₛₗ, show B n x = 0 from hx n hn, smul_zero]
381373

374+
variable {N L : Submodule R₁ M₁}
375+
382376
@[simp]
383-
theorem mem_orthogonalBilin_iff {m : M} : m ∈ N.orthogonalBilin B ↔ ∀ n ∈ N, B.IsOrtho n m :=
377+
theorem mem_orthogonalBilin_iff {m : M} : m ∈ N.orthogonalBilin B ↔ ∀ n ∈ N, B.IsOrtho n m :=
384378
Iff.rfl
385379

386380
theorem orthogonalBilin_le (h : N ≤ L) : L.orthogonalBilin B ≤ N.orthogonalBilin B :=
387381
fun _ hn l hl ↦ hn l (h hl)
388382

389-
end
390-
391-
section
392-
393-
variable {I₁ : R₁ →+* R} {I₂ : R₁ →+* R} {B : M₁ →ₛₗ[I₁] M₁ →ₛₗ[I₂] M}
394-
395383
theorem le_orthogonalBilin_orthogonalBilin (b : B.IsRefl) :
396384
N ≤ (N.orthogonalBilin B).orthogonalBilin B := fun n hn _m hm ↦ b _ _ (hm n hn)
397385

398-
end
399-
400386
end Submodule
401387

402388
namespace LinearMap
@@ -408,7 +394,7 @@ variable [Field K] [AddCommGroup V] [Module K V] [Field K₁] [AddCommGroup V₁
408394

409395
-- ↓ This lemma only applies in fields as we require `a * b = 0 → a = 0 ∨ b = 0`
410396
theorem span_singleton_inf_orthogonal_eq_bot (B : V₁ →ₛₗ[J₁] V₁ →ₛₗ[J₁'] V₂) (x : V₁)
411-
(hx : ¬B.IsOrtho x x) : (K₁ ∙ x) ⊓ (K₁ ∙ x).orthogonalBilin B = ⊥ := by
397+
(hx : ¬B.IsOrtho x x) : (K₁ ∙ x) ⊓ Submodule.orthogonalBilin (K₁ ∙ x) B = ⊥ := by
412398
rw [← Finset.coe_singleton]
413399
refine eq_bot_iff.2 fun y h ↦ ?_
414400
obtain ⟨μ, -, rfl⟩ := Submodule.mem_span_finset.1 h.1
@@ -422,7 +408,7 @@ theorem span_singleton_inf_orthogonal_eq_bot (B : V₁ →ₛₗ[J₁] V₁ →
422408

423409
-- ↓ This lemma only applies in fields since we use the `mul_eq_zero`
424410
theorem orthogonal_span_singleton_eq_to_lin_ker {B : V →ₗ[K] V →ₛₗ[J] V₂} (x : V) :
425-
(K ∙ x).orthogonalBilin B = LinearMap.ker (B x) := by
411+
Submodule.orthogonalBilin (K ∙ x) B = LinearMap.ker (B x) := by
426412
ext y
427413
simp_rw [Submodule.mem_orthogonalBilin_iff, LinearMap.mem_ker, Submodule.mem_span_singleton]
428414
constructor
@@ -433,15 +419,15 @@ theorem orthogonal_span_singleton_eq_to_lin_ker {B : V →ₗ[K] V →ₛₗ[J]
433419

434420
-- todo: Generalize this to sesquilinear maps
435421
theorem span_singleton_sup_orthogonal_eq_top {B : V →ₗ[K] V →ₗ[K] K} {x : V} (hx : ¬B.IsOrtho x x) :
436-
(K ∙ x) ⊔ (K ∙ x).orthogonalBilin B = ⊤ := by
422+
(K ∙ x) ⊔ Submodule.orthogonalBilin (N := K ∙ x) (B := B) = ⊤ := by
437423
rw [orthogonal_span_singleton_eq_to_lin_ker]
438424
exact (B x).span_singleton_sup_ker_eq_top hx
439425

440426
-- todo: Generalize this to sesquilinear maps
441427
/-- Given a bilinear form `B` and some `x` such that `B x x ≠ 0`, the span of the singleton of `x`
442428
is complement to its orthogonal complement. -/
443429
theorem isCompl_span_singleton_orthogonal {B : V →ₗ[K] V →ₗ[K] K} {x : V} (hx : ¬B.IsOrtho x x) :
444-
IsCompl (K ∙ x) ((K ∙ x).orthogonalBilin B) :=
430+
IsCompl (K ∙ x) (Submodule.orthogonalBilin (N := K ∙ x) (B := B)) :=
445431
{ disjoint := disjoint_iff.2 <| span_singleton_inf_orthogonal_eq_bot B x hx
446432
codisjoint := codisjoint_iff.2 <| span_singleton_sup_orthogonal_eq_top hx }
447433

0 commit comments

Comments
 (0)