theorem
L37 ↗scalarTensorIso_counit
Algebra.Descent.scalarTensorIso_counit
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
@[expose] public noncomputable section
open AlgebraicGeometry
open scoped TensorProduct
universe u
namespace Algebra.Descent
variable (R S B M : Type u) [CommRing R] [CommRing S] [CommRing B] [CommRing M]
variable [Algebra R S] [Algebra R B] [Algebra R M] [Algebra B M]
variable [IsScalarTower R B M]Lean source · full declaration
theorem scalarTensorIso_counit :
let : Algebra (S ⊗[R] B) (S ⊗[R] M) :=
Algebra.TensorProduct.baseChangeAlgebra R S B M;
let : IsScalarTower S (S ⊗[R] B) (S ⊗[R] M) :=
Algebra.TensorProduct.baseChangeAlgebra_isScalarTower R S B M;
∀ z : (S ⊗[R] B) ⊗[S] (S ⊗[R] M),
Algebra.TensorProduct.map (.id S S)
((tensorTargetDiagonal R B M).restrictScalars R)
(scalarTensorIso R S B M z) =
tensorTargetDiagonal S (S ⊗[R] B) (S ⊗[R] M) z := by
intro hEU hTower z
induction z using TensorProduct.inductionOn with
| tmul x y =>
induction x using TensorProduct.inductionOn with
| tmul s b =>
induction y using TensorProduct.inductionOn with
| tmul t m =>
simp only [scalarTensorIso_tmul, Algebra.TensorProduct.map_tmul,
AlgHom.id_apply, AlgHom.restrictScalars_apply, tensorTargetDiagonal,
Algebra.TensorProduct.lift_tmul, Algebra.ofId_apply]
change (s * t) ⊗ₜ[R] (algebraMap B M b * m) =
(s ⊗ₜ[R] algebraMap B M b) * (t ⊗ₜ[R] m)
exact (Algebra.TensorProduct.tmul_mul_tmul s t (algebraMap B M b) m).symm
| add y z hy hz => simp only [TensorProduct.tmul_add, map_add, hy, hz]
| add x z hx hz => simp only [TensorProduct.add_tmul, map_add, hx, hz]
| add x y hx hy => simp only [map_add, hx, hy]