Kähler differential module under base change #
Main results #
KaehlerDifferential.tensorKaehlerEquivBase:(S ⊗[R] Ω[A⁄R]) ≃ₗ[S] Ω[B⁄S]forB = S ⊗[R] A.KaehlerDifferential.tensorKaehlerEquiv:(B ⊗[A] Ω[A⁄R]) ≃ₗ[B] Ω[B⁄S]forB = S ⊗[R] A.KaehlerDifferential.isLocalizedModule_of_isLocalizedModule:Ω[Aₚ/Rₚ]is the localization ofΩ[A/R]atp.
@[reducible, inline]
noncomputable abbrev KaehlerDifferential.mulActionBaseChange (R : Type u_1) (S : Type u_2) (A : Type u_3) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [Algebra R A] :
MulAction A (TensorProduct R S Ω[A⁄R])
(Implementation). A-action on S ⊗[R] Ω[A⁄R].
Equations
- KaehlerDifferential.mulActionBaseChange R S A = Equiv.mulAction A (TensorProduct.comm R S Ω[A⁄R]).toEquiv
Instances For
@[reducible, inline]
noncomputable abbrev KaehlerDifferential.moduleBaseChange (R : Type u_1) (S : Type u_2) (A : Type u_3) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [Algebra R A] :
Module A (TensorProduct R S Ω[A⁄R])
(Implementation). A-module structure on S ⊗[R] Ω[A⁄R].
Equations
- KaehlerDifferential.moduleBaseChange R S A = { toMulAction := Equiv.mulAction A (TensorProduct.comm R S Ω[A⁄R]).toEquiv, smul_zero := ⋯, smul_add := ⋯, add_smul := ⋯, zero_smul := ⋯ }
Instances For
instance KaehlerDifferential.instIsScalarTowerTensorProduct (R : Type u_1) (S : Type u_2) (A : Type u_3) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [Algebra R A] :
IsScalarTower R A (TensorProduct R S Ω[A⁄R])
instance KaehlerDifferential.instSMulCommClassTensorProduct (R : Type u_1) (S : Type u_2) (A : Type u_3) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [Algebra R A] :
SMulCommClass S A (TensorProduct R S Ω[A⁄R])
instance KaehlerDifferential.instSMulCommClassTensorProduct_1 (R : Type u_1) (S : Type u_2) (A : Type u_3) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [Algebra R A] :
SMulCommClass A S (TensorProduct R S Ω[A⁄R])
@[reducible]
noncomputable def KaehlerDifferential.moduleBaseChange' (R : Type u_1) (S : Type u_2) (A : Type u_3) (B : Type u_4) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] [Algebra.IsPushout R S A B] :
Module B (TensorProduct R S Ω[A⁄R])
(Implementation). B = S ⊗[R] A-module structure on S ⊗[R] Ω[A⁄R].
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance KaehlerDifferential.instIsScalarTowerTensorProduct_1 (R : Type u_1) (S : Type u_2) (A : Type u_3) (B : Type u_4) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] [Algebra.IsPushout R S A B] :
IsScalarTower A B (TensorProduct R S Ω[A⁄R])
instance KaehlerDifferential.instIsScalarTowerTensorProduct_2 (R : Type u_1) (S : Type u_2) (A : Type u_3) (B : Type u_4) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] [Algebra.IsPushout R S A B] :
IsScalarTower S B (TensorProduct R S Ω[A⁄R])
theorem KaehlerDifferential.map_liftBaseChange_smul (R : Type u_1) (S : Type u_2) (A : Type u_3) (B : Type u_4) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] [h : Algebra.IsPushout R S A B] (b : B) (x : TensorProduct R S Ω[A⁄R]) :
(LinearMap.liftBaseChange S (↑R (map R S A B))) (b • x) = b • (LinearMap.liftBaseChange S (↑R (map R S A B))) x
noncomputable def KaehlerDifferential.derivationTensorProduct (R : Type u_1) (S : Type u_2) (A : Type u_3) (B : Type u_4) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] [h : Algebra.IsPushout R S A B] :
Derivation S B (TensorProduct R S Ω[A⁄R])
(Implementation).
The S-derivation B = S ⊗[R] A to S ⊗[R] Ω[A⁄R] sending a ⊗ b to a ⊗ d b.
Equations
- KaehlerDifferential.derivationTensorProduct R S A B = { toLinearMap := ⋯.lift ((TensorProduct.mk R S Ω[A⁄R]) 1 ∘ₗ ↑(KaehlerDifferential.D R A)), map_one_eq_zero' := ⋯, leibniz' := ⋯ }
Instances For
theorem KaehlerDifferential.derivationTensorProduct_algebraMap (R : Type u_1) (S : Type u_2) (A : Type u_3) (B : Type u_4) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] [Algebra.IsPushout R S A B] (x : A) :
theorem KaehlerDifferential.tensorKaehlerEquiv_left_inv (R : Type u_1) (S : Type u_2) (A : Type u_3) (B : Type u_4) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] [Algebra.IsPushout R S A B] :
↑S (derivationTensorProduct R S A B).liftKaehlerDifferential ∘ₗ LinearMap.liftBaseChange S (↑R (map R S A B)) = LinearMap.id
noncomputable def KaehlerDifferential.tensorKaehlerEquivBase (R : Type u_1) (S : Type u_2) (A : Type u_3) (B : Type u_4) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] [h : Algebra.IsPushout R S A B] :
The canonical isomorphism (S ⊗[R] Ω[A⁄R]) ≃ₗ[S] Ω[B⁄S] for B = S ⊗[R] A.
Also see KaehlerDifferential.tensorKaehlerEquiv for the version with B ⊗[A] Ω[A⁄R].
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem KaehlerDifferential.tensorKaehlerEquivBase_symm_apply (R : Type u_1) (S : Type u_2) (A : Type u_3) (B : Type u_4) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] [h : Algebra.IsPushout R S A B] (a : Ω[B⁄S]) :
(tensorKaehlerEquivBase R S A B).symm a = (derivationTensorProduct R S A B).liftKaehlerDifferential a
@[simp]
theorem KaehlerDifferential.tensorKaehlerEquivBase_tmul (R : Type u_1) (S : Type u_2) (A : Type u_3) (B : Type u_4) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] [Algebra.IsPushout R S A B] (a : S) (b : Ω[A⁄R]) :
theorem KaehlerDifferential.isBaseChange (R : Type u_1) (S : Type u_2) (A : Type u_3) (B : Type u_4) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] [h : Algebra.IsPushout R S A B] :
IsBaseChange S (↑R (map R S A B))
If B is the tensor product of S and A over R,
then Ω[B⁄S] is the base change of Ω[A⁄R] along R → S.
instance KaehlerDifferential.isLocalizedModule (R : Type u_1) (S : Type u_2) (A : Type u_3) (B : Type u_4) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] (p : Submonoid R) [IsLocalization p S] [IsLocalization (Algebra.algebraMapSubmonoid A p) B] :
IsLocalizedModule p (↑R (map R S A B))
instance KaehlerDifferential.isLocalizedModule_of_isLocalizedModule (R : Type u_1) (S : Type u_2) (A : Type u_3) (B : Type u_4) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] (p : Submonoid R) [IsLocalization p S] [IsLocalizedModule p (IsScalarTower.toAlgHom R A B).toLinearMap] :
IsLocalizedModule p (↑R (map R S A B))
noncomputable def KaehlerDifferential.tensorKaehlerEquiv (R : Type u_1) (S : Type u_2) (A : Type u_3) (B : Type u_4) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] [h : Algebra.IsPushout R S A B] :
The canonical isomorphism (B ⊗[A] Ω[A⁄R]) ≃ₗ[B] Ω[B⁄S] for B = S ⊗[R] A.
Also see KaehlerDifferential.tensorKaehlerEquivBase for the version with S ⊗[R] Ω[A⁄R].
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem KaehlerDifferential.tensorKaehlerEquiv_tmul_D (R : Type u_1) (S : Type u_2) (A : Type u_3) (B : Type u_4) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] [Algebra.IsPushout R S A B] (b : B) (a : A) :
@[simp]
theorem KaehlerDifferential.tensorKaehlerEquiv_symm_D_tmul (R : Type u_1) (S : Type u_2) (A : Type u_3) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [Algebra R A] (s : S) (a : A) :
(tensorKaehlerEquiv R S A (TensorProduct R S A)).symm ((D S (TensorProduct R S A)) (s ⊗ₜ[R] a)) = (algebraMap S (TensorProduct R S A)) s ⊗ₜ[A] (D R A) a
@[simp]
theorem KaehlerDifferential.tensorKaehlerEquiv_symm_D_tmul' (R : Type u_1) (S : Type u_2) (A : Type u_3) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [Algebra R A] (s : S) (a : A) :
(tensorKaehlerEquiv R S A (TensorProduct R A S)).symm ((D S (TensorProduct R A S)) (a ⊗ₜ[R] s)) = (algebraMap S (TensorProduct R A S)) s ⊗ₜ[A] (D R A) a