Skip to content

Commit 26752e8

Browse files
committed
Merge remote-tracking branch 'alreadydone/jyxu/isscalartower_trans' into isscalartower_trans
2 parents efd388e + 7e49764 commit 26752e8

2 files changed

Lines changed: 10 additions & 23 deletions

File tree

Mathlib/Algebra/Algebra/Tower.lean

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -122,28 +122,6 @@ theorem algebraMap_eq : algebraMap R A = (algebraMap S A).comp (algebraMap R S)
122122
theorem algebraMap_apply (x : R) : algebraMap R A x = algebraMap S A (algebraMap R S x) := by
123123
rw [algebraMap_eq R S A, RingHom.comp_apply]
124124

125-
/--
126-
Let `R ⊆ S ⊆ T ⊆ U` be a tower of rings. If `R ⊆ S ⊆ T`, `R ⊆ T ⊆ U` and `S ⊆ T ⊆ U` are
127-
scalar towers, then `R ⊆ S ⊆ U` is also a scalar tower.
128-
-/
129-
theorem trans_left (T U : Type*) [CommSemiring T] [CommSemiring U] [Algebra S T] [Algebra R T]
130-
[Algebra T U] [Algebra R U] [Algebra S U] [IsScalarTower R S T] [IsScalarTower R T U]
131-
[IsScalarTower S T U] : IsScalarTower R S U := by
132-
apply IsScalarTower.of_algebraMap_eq'
133-
rw [IsScalarTower.algebraMap_eq S T, RingHom.comp_assoc, ← IsScalarTower.algebraMap_eq,
134-
← IsScalarTower.algebraMap_eq]
135-
136-
/--
137-
Let `R ⊆ S ⊆ T ⊆ U` be a tower of rings. If `R ⊆ S ⊆ T`, `R ⊆ S ⊆ U` and `S ⊆ T ⊆ U` are
138-
scalar towers, then `R ⊆ T ⊆ U` is also a scalar tower.
139-
-/
140-
theorem trans_right (T U : Type*) [CommSemiring T] [CommSemiring U] [Algebra S T] [Algebra R T]
141-
[Algebra T U] [Algebra R U] [Algebra S U] [IsScalarTower R S T] [IsScalarTower R S U]
142-
[IsScalarTower S T U] : IsScalarTower R T U := by
143-
apply IsScalarTower.of_algebraMap_eq'
144-
rw [IsScalarTower.algebraMap_eq R S T, ← RingHom.comp_assoc, ← IsScalarTower.algebraMap_eq,
145-
← IsScalarTower.algebraMap_eq]
146-
147125
@[ext]
148126
theorem Algebra.ext {S : Type u} {A : Type v} [CommSemiring S] [Semiring A] (h1 h2 : Algebra S A)
149127
(h : ∀ (r : S) (x : A), (by have I := h1; exact r • x) = r • x) : h1 = h2 :=

Mathlib/Algebra/Group/Action/Defs.lean

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,6 @@ lemma isScalarTower_iff_smulCommClass_of_commMonoid (R₁ R : Type*)
488488
SMulCommClass R₁ R R ↔ IsScalarTower R₁ R R :=
489489
fun _ ↦ IsScalarTower.of_commMonoid R₁ R, fun _ ↦ SMulCommClass.of_commMonoid R₁ R R⟩
490490

491-
492491
end
493492

494493
section CompatibleScalar
@@ -516,6 +515,16 @@ lemma SMulCommClass.of_mul_smul_one {M N} [Monoid N] [SMul M N]
516515
(H : ∀ (x : M) (y : N), y * x • (1 : N) = x • y) : SMulCommClass M N N :=
517516
fun x y z ↦ by rw [← H x z, smul_eq_mul, ← H, smul_eq_mul, mul_assoc]⟩
518517

518+
@[to_additive] lemma IsScalarTower.trans_left (M N P Q)
519+
[SMul M N] [SMul M P] [SMul M Q] [SMul N P] [SMul N Q] [Monoid P] [MulAction P Q]
520+
[IsScalarTower M N P] [IsScalarTower M P Q] [IsScalarTower N P Q] : IsScalarTower M N Q where
521+
smul_assoc m n q := by rw [← smul_one_smul P, smul_assoc m, smul_assoc, smul_one_smul]
522+
523+
@[to_additive] lemma IsScalarTower.trans_right (M N P Q)
524+
[SMul M N] [SMul M P] [SMul M Q] [SMul P Q] [Monoid N] [MulAction N P] [MulAction N Q]
525+
[IsScalarTower M N P] [IsScalarTower M N Q] [IsScalarTower N P Q] : IsScalarTower M P Q where
526+
smul_assoc m p q := by rw [← smul_one_smul N m, smul_assoc, smul_one_smul]
527+
519528
end CompatibleScalar
520529

521530
/-- Typeclass for multiplicative actions on multiplicative structures.

0 commit comments

Comments
 (0)