Skip to content

Commit aee79f6

Browse files
mans0954eric-wieserVierkantor
committed
refactor(LinearAlgebra/BilinForm): Remove structure BilinForm from Mathlib, migrate all of _root_.BilinForm to LinearMap.BilinForm (#11278)
Remove `structure BilinForm` from `LinearAlgebra/BilinearForm/Basic` and migrate all of `_root_.BilinForm` to `LinearMap.BilinForm` Closes: #10553 This isn't the end of the story, as there's still a lot of overlap between `LinearAlgebra/BilinearForm` and `LinearAlgebra/SesquilinearForm` but that can be sorted out in subsequent PRs. Supersedes: - #11057 - #11032 - #10432 - #10422 Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Christopher Hoskin <christopher.hoskin@overleaf.com> Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com> Co-authored-by: Vierkantor <vierkantor@vierkantor.com>
1 parent 5299597 commit aee79f6

File tree

12 files changed

+404
-507
lines changed

12 files changed

+404
-507
lines changed

Mathlib/LinearAlgebra/BilinearForm/Basic.lean

Lines changed: 84 additions & 170 deletions
Large diffs are not rendered by default.

Mathlib/LinearAlgebra/BilinearForm/DualLattice.lean

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,13 @@ import Mathlib.LinearAlgebra.BilinearForm.Properties
1717
Properly develop the material in the context of lattices.
1818
-/
1919

20+
open LinearMap (BilinForm)
21+
2022
variable {R S M} [CommRing R] [Field S] [AddCommGroup M]
2123
variable [Algebra R S] [Module R M] [Module S M] [IsScalarTower R S M]
2224

25+
namespace LinearMap
26+
2327
namespace BilinForm
2428

2529
variable (B : BilinForm S M)
@@ -31,7 +35,8 @@ def dualSubmodule (N : Submodule R M) : Submodule R M where
3135
zero_mem' y _ := by rw [B.zero_left]; exact zero_mem _
3236
smul_mem' r a ha y hy := by
3337
convert (1 : Submodule R S).smul_mem r (ha y hy)
34-
rw [← IsScalarTower.algebraMap_smul S r a, bilin_smul_left, Algebra.smul_def]
38+
rw [← IsScalarTower.algebraMap_smul S r a]
39+
simp only [algebraMap_smul, map_smul_of_tower, LinearMap.smul_apply]
3540

3641
lemma mem_dualSubmodule {N : Submodule R M} {x} :
3742
x ∈ B.dualSubmodule N ↔ ∀ y ∈ N, B x y ∈ (1 : Submodule R S) := Iff.rfl
@@ -96,11 +101,12 @@ lemma dualSubmodule_span_of_basis {ι} [Finite ι] [DecidableEq ι]
96101
· rw [Submodule.span_le]
97102
rintro _ ⟨i, rfl⟩ y hy
98103
obtain ⟨f, rfl⟩ := (mem_span_range_iff_exists_fun _).mp hy
99-
simp only [sum_right, bilin_smul_right]
104+
simp only [map_sum, map_smul]
100105
apply sum_mem
101106
rintro j -
102-
rw [← IsScalarTower.algebraMap_smul S (f j), B.bilin_smul_right, apply_dualBasis_left,
103-
mul_ite, mul_one, mul_zero, ← (algebraMap R S).map_zero, ← apply_ite]
107+
rw [← IsScalarTower.algebraMap_smul S (f j), map_smul]
108+
simp_rw [apply_dualBasis_left]
109+
rw [smul_eq_mul, mul_ite, mul_one, mul_zero, ← (algebraMap R S).map_zero, ← apply_ite]
104110
exact ⟨_, rfl⟩
105111

106112
lemma dualSubmodule_dualSubmodule_flip_of_basis {ι : Type*} [Finite ι]

0 commit comments

Comments
 (0)