Skip to content

Commit 7f7a1f0

Browse files
committed
chore(RingTheory/TensorProduct): missing trivial lemmas (#8120)
This also tweaks some argument explicitness, and removes unnecessary type ascriptions
1 parent dd5b3da commit 7f7a1f0

File tree

2 files changed

+32
-5
lines changed

2 files changed

+32
-5
lines changed

Mathlib/LinearAlgebra/TensorProduct/Tower.lean

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -308,11 +308,14 @@ protected def rid : M ⊗[R] R ≃ₗ[A] M :=
308308
theorem rid_eq_rid : AlgebraTensorModule.rid R R M = TensorProduct.rid R M :=
309309
LinearEquiv.toLinearMap_injective <| TensorProduct.ext' fun _ _ => rfl
310310

311-
variable {R M}
312-
311+
variable {R M} in
313312
@[simp]
314313
theorem rid_tmul (r : R) (m : M) : AlgebraTensorModule.rid R A M (m ⊗ₜ r) = r • m := rfl
315314

315+
variable {M} in
316+
@[simp]
317+
theorem rid_symm_apply (m : M) : (AlgebraTensorModule.rid R A M).symm m = m ⊗ₜ 1 := rfl
318+
316319
end Semiring
317320

318321
section CommSemiring

Mathlib/RingTheory/TensorProduct.lean

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -733,10 +733,15 @@ protected nonrec def lid : R ⊗[R] A ≃ₐ[R] A :=
733733
@[simp] theorem lid_toLinearEquiv :
734734
(TensorProduct.lid R A).toLinearEquiv = _root_.TensorProduct.lid R A := rfl
735735

736+
variable {R} {A} in
736737
@[simp]
737-
theorem lid_tmul (r : R) (a : A) : (TensorProduct.lid R A : R ⊗ A → A) (r ⊗ₜ a) = r • a := rfl
738+
theorem lid_tmul (r : R) (a : A) : TensorProduct.lid R A (r ⊗ₜ a) = r • a := rfl
738739
#align algebra.tensor_product.lid_tmul Algebra.TensorProduct.lid_tmul
739740

741+
variable {A} in
742+
@[simp]
743+
theorem lid_symm_apply (a : A) : (TensorProduct.lid R A).symm a = 1 ⊗ₜ a := rfl
744+
740745
variable (S)
741746

742747
/-- The base ring is a right identity for the tensor product of algebra, up to algebra isomorphism.
@@ -757,6 +762,9 @@ variable {R A} in
757762
theorem rid_tmul (r : R) (a : A) : TensorProduct.rid R S A (a ⊗ₜ r) = r • a := rfl
758763
#align algebra.tensor_product.rid_tmul Algebra.TensorProduct.rid_tmul
759764

765+
variable {A} in
766+
@[simp]
767+
theorem rid_symm_apply (a : A) : (TensorProduct.rid R S A).symm a = a ⊗ₜ 1 := rfl
760768

761769
section
762770

@@ -771,12 +779,23 @@ protected def comm : A ⊗[R] B ≃ₐ[R] B ⊗[R] A :=
771779
@[simp] theorem comm_toLinearEquiv :
772780
(Algebra.TensorProduct.comm R A B).toLinearEquiv = _root_.TensorProduct.comm R A B := rfl
773781

782+
variable {A B} in
774783
@[simp]
775784
theorem comm_tmul (a : A) (b : B) :
776-
(TensorProduct.comm R A B : A ⊗[R] B → B ⊗[R] A) (a ⊗ₜ b) = b ⊗ₜ a :=
785+
TensorProduct.comm R A B (a ⊗ₜ b) = b ⊗ₜ a :=
777786
rfl
778787
#align algebra.tensor_product.comm_tmul Algebra.TensorProduct.comm_tmul
779788

789+
variable {A B} in
790+
@[simp]
791+
theorem comm_symm_tmul (a : A) (b : B) :
792+
(TensorProduct.comm R A B).symm (b ⊗ₜ a) = a ⊗ₜ b :=
793+
rfl
794+
795+
theorem comm_symm :
796+
(TensorProduct.comm R A B).symm = TensorProduct.comm R B A := by
797+
ext; rfl
798+
780799
theorem adjoin_tmul_eq_top : adjoin R { t : A ⊗[R] B | ∃ a b, a ⊗ₜ[R] b = t } = ⊤ :=
781800
top_le_iff.mp <| (top_le_iff.mpr <| span_tmul_eq_top R A B).trans (span_le_adjoin R _)
782801
#align algebra.tensor_product.adjoin_tmul_eq_top Algebra.TensorProduct.adjoin_tmul_eq_top
@@ -816,10 +835,15 @@ variable {A B C}
816835

817836
@[simp]
818837
theorem assoc_tmul (a : A) (b : B) (c : C) :
819-
Algebra.TensorProduct.assoc R A B C (a ⊗ₜ b ⊗ₜ c) = a ⊗ₜ (b ⊗ₜ c) :=
838+
Algebra.TensorProduct.assoc R A B C ((a ⊗ₜ b) ⊗ₜ c) = a ⊗ₜ (b ⊗ₜ c) :=
820839
rfl
821840
#align algebra.tensor_product.assoc_tmul Algebra.TensorProduct.assoc_tmul
822841

842+
@[simp]
843+
theorem assoc_symm_tmul (a : A) (b : B) (c : C) :
844+
(Algebra.TensorProduct.assoc R A B C).symm (a ⊗ₜ (b ⊗ₜ c)) = (a ⊗ₜ b) ⊗ₜ c :=
845+
rfl
846+
823847
end
824848

825849
variable {R S A}

0 commit comments

Comments
 (0)