Loogle!
Result
Found 247 declarations mentioning KaehlerDifferential. Of these, only the first 200 are shown.
- KaehlerDifferential 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : Type v - instAddCommGroupKaehlerDifferential 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u_2) (S : Type u_1) [CommRing R] [CommRing S] [Algebra R S] : AddCommGroup Ω[S⁄R] - instInhabitedKaehlerDifferential 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u_2) (S : Type u_1) [CommRing R] [CommRing S] [Algebra R S] : Inhabited Ω[S⁄R] - instSMulKaehlerDifferentialOfSMulCommClass 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u_3) (S : Type u_2) [CommRing R] [CommRing S] [Algebra R S] {R' : Type u_1} [CommRing R'] [Algebra R' S] [SMulCommClass R R' S] : SMul R' Ω[S⁄R] - KaehlerDifferential.finite 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] [Algebra.EssFiniteType R S] : Module.Finite S Ω[S⁄R] - KaehlerDifferential.subsingleton_of_surjective 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (h : Function.Surjective ⇑(algebraMap R S)) : Subsingleton Ω[S⁄R] - instModuleKaehlerDifferentialOfSMulCommClass 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u_3) (S : Type u_2) [CommRing R] [CommRing S] [Algebra R S] {R' : Type u_1} [CommRing R'] [Algebra R' S] [SMulCommClass R R' S] : Module R' Ω[S⁄R] - instModuleTensorProductKaehlerDifferential 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u_2) (S : Type u_1) [CommRing R] [CommRing S] [Algebra R S] : Module (TensorProduct R S S) Ω[S⁄R] - KaehlerDifferential.D 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : Derivation R S Ω[S⁄R] - KaehlerDifferential.DLinearMap 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : S →ₗ[R] Ω[S⁄R] - KaehlerDifferential.isScalarTower_of_tower 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] {R₁ : Type u_2} {R₂ : Type u_3} [CommRing R₁] [CommRing R₂] [Algebra R₁ S] [Algebra R₂ S] [SMul R₁ R₂] [SMulCommClass R R₁ S] [SMulCommClass R R₂ S] [IsScalarTower R₁ R₂ S] : IsScalarTower R₁ R₂ Ω[S⁄R] - Derivation.liftKaehlerDifferential 📋 Mathlib.RingTheory.Kaehler.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {M : Type u_1} [AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M] (D : Derivation R S M) : Ω[S⁄R] →ₗ[S] M - KaehlerDifferential.map 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] [Algebra S B] [Algebra R B] [IsScalarTower R A B] [IsScalarTower R S B] [SMulCommClass S A B] : Ω[A⁄R] →ₗ[A] Ω[B⁄S] - KaehlerDifferential.quotKerTotalEquiv 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : ((S →₀ S) ⧸ KaehlerDifferential.kerTotal R S) ≃ₗ[S] Ω[S⁄R] - KaehlerDifferential.map_surjective 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (B : Type u_3) [CommRing B] [Algebra S B] [Algebra R B] [IsScalarTower R S B] : Function.Surjective ⇑(KaehlerDifferential.map R S B B) - KaehlerDifferential.mapBaseChange 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B] : TensorProduct A B Ω[A⁄R] →ₗ[B] Ω[B⁄R] - Derivation.liftKaehlerDifferential_D 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : (KaehlerDifferential.D R S).liftKaehlerDifferential = LinearMap.id - KaehlerDifferential.map_surjective_of_surjective 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] [Algebra S B] [Algebra R B] [IsScalarTower R A B] [IsScalarTower R S B] [SMulCommClass S A B] (h : Function.Surjective ⇑(algebraMap A B)) : Function.Surjective ⇑(KaehlerDifferential.map R S A B) - KaehlerDifferential.span_range_derivation 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : Submodule.span S (Set.range ⇑(KaehlerDifferential.D R S)) = ⊤ - KaehlerDifferential.kerTotal_eq 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : (Finsupp.linearCombination S ⇑(KaehlerDifferential.D R S)).ker = KaehlerDifferential.kerTotal R S - KaehlerDifferential.linearMapEquivDerivation 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] {M : Type u_1} [AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M] : (Ω[S⁄R] →ₗ[S] M) ≃ₗ[S] Derivation R S M - KaehlerDifferential.kerToTensor 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] : ↥(RingHom.ker (algebraMap A B)) →ₗ[A] TensorProduct A B Ω[A⁄R] - KaehlerDifferential.linearCombination_surjective 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : Function.Surjective ⇑(Finsupp.linearCombination S ⇑(KaehlerDifferential.D R S)) - KaehlerDifferential.kerCotangentToTensor 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] : (RingHom.ker (algebraMap A B)).Cotangent →ₗ[A] TensorProduct A B Ω[A⁄R] - KaehlerDifferential.isScalarTower' 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : IsScalarTower R (TensorProduct R S S) Ω[S⁄R] - instIsScalarTowerTensorProductKaehlerDifferential 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u_2) (S : Type u_1) [CommRing R] [CommRing S] [Algebra R S] : IsScalarTower S (TensorProduct R S S) Ω[S⁄R] - KaehlerDifferential.range_mapBaseChange 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B] : (KaehlerDifferential.mapBaseChange R A B).range = (KaehlerDifferential.map R A B B).ker - Derivation.liftKaehlerDifferential_comp_D 📋 Mathlib.RingTheory.Kaehler.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {M : Type u_1} [AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M] (D' : Derivation R S M) (x : S) : D'.liftKaehlerDifferential ((KaehlerDifferential.D R S) x) = D' x - KaehlerDifferential.tensorProductTo_surjective 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : Function.Surjective ⇑(KaehlerDifferential.D R S).tensorProductTo - KaehlerDifferential.map_D 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] [Algebra S B] [Algebra R B] [IsScalarTower R A B] [IsScalarTower R S B] [SMulCommClass S A B] (x : A) : (KaehlerDifferential.map R S A B) ((KaehlerDifferential.D R A) x) = (KaehlerDifferential.D S B) ((algebraMap A B) x) - KaehlerDifferential.mapBaseChange_surjective 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B] (h : Function.Surjective ⇑(algebraMap A B)) : Function.Surjective ⇑(KaehlerDifferential.mapBaseChange R A B) - KaehlerDifferential.exact_mapBaseChange_map 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B] : Function.Exact ⇑(KaehlerDifferential.mapBaseChange R A B) ⇑(KaehlerDifferential.map R A B B) - KaehlerDifferential.ker_map_of_surjective 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B] (h : Function.Surjective ⇑(algebraMap A B)) : (KaehlerDifferential.map R R A B).ker = Submodule.map (Finsupp.linearCombination A ⇑(KaehlerDifferential.D R A)) (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B)).ker - KaehlerDifferential.fromIdeal 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : ↥(KaehlerDifferential.ideal R S) →ₗ[TensorProduct R S S] Ω[S⁄R] - KaehlerDifferential.mapBaseChange_tmul 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B] (x : B) (y : Ω[A⁄R]) : (KaehlerDifferential.mapBaseChange R A B) (x ⊗ₜ[A] y) = x • (KaehlerDifferential.map R R A B) y - KaehlerDifferential.ker_map 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] [Algebra S B] [Algebra R B] [IsScalarTower R A B] [IsScalarTower R S B] [SMulCommClass S A B] : (KaehlerDifferential.map R S A B).ker = Submodule.map (Finsupp.linearCombination A ⇑(KaehlerDifferential.D R A)) (Submodule.comap (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B)) (Submodule.restrictScalars A (KaehlerDifferential.kerTotal S B))) - KaehlerDifferential.range_kerCotangentToTensor 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B] (h : Function.Surjective ⇑(algebraMap A B)) : (KaehlerDifferential.kerCotangentToTensor R A B).range = Submodule.restrictScalars A (KaehlerDifferential.mapBaseChange R A B).ker - KaehlerDifferential.kerToTensor_apply 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] (x : ↥(RingHom.ker (algebraMap A B))) : (KaehlerDifferential.kerToTensor R A B) x = 1 ⊗ₜ[A] (KaehlerDifferential.D R A) ↑x - KaehlerDifferential.linearMapEquivDerivation_apply_apply 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] {M : Type u_1} [AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M] (m : Ω[S⁄R] →ₗ[S] M) (x : S) : ((KaehlerDifferential.linearMapEquivDerivation R S) m) x = m ((KaehlerDifferential.D R S) x) - KaehlerDifferential.linearMapEquivDerivation_symm_apply 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] {M : Type u_1} [AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M] (D : Derivation R S M) : (KaehlerDifferential.linearMapEquivDerivation R S).symm D = D.liftKaehlerDifferential - Derivation.liftKaehlerDifferential_comp 📋 Mathlib.RingTheory.Kaehler.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {M : Type u_1} [AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M] (D : Derivation R S M) : D.liftKaehlerDifferential.compDer (KaehlerDifferential.D R S) = D - KaehlerDifferential.exact_kerCotangentToTensor_mapBaseChange 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B] (h : Function.Surjective ⇑(algebraMap A B)) : Function.Exact ⇑(KaehlerDifferential.kerCotangentToTensor R A B) ⇑(KaehlerDifferential.mapBaseChange R A B) - KaehlerDifferential.derivationQuotKerTotal_lift_comp_linearCombination 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : (KaehlerDifferential.derivationQuotKerTotal R S).liftKaehlerDifferential ∘ₗ Finsupp.linearCombination S ⇑(KaehlerDifferential.D R S) = (KaehlerDifferential.kerTotal R S).mkQ - KaehlerDifferential.quotKerTotalEquiv_symm_apply 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (a : Ω[S⁄R]) : (KaehlerDifferential.quotKerTotalEquiv R S).symm a = (KaehlerDifferential.derivationQuotKerTotal R S).liftKaehlerDifferential a - KaehlerDifferential.kerCotangentToTensor_toCotangent 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] (x : ↥(RingHom.ker (algebraMap A B))) : (KaehlerDifferential.kerCotangentToTensor R A B) ((RingHom.ker (algebraMap A B)).toCotangent x) = 1 ⊗ₜ[A] (KaehlerDifferential.D R A) ↑x - KaehlerDifferential.quotKerTotalEquiv_apply 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (a✝ : (S →₀ S) ⧸ (KaehlerDifferential.kerTotal R S).toAddSubgroup) : (KaehlerDifferential.quotKerTotalEquiv R S) a✝ = (QuotientAddGroup.lift (KaehlerDifferential.kerTotal R S).toAddSubgroup (Finsupp.linearCombination S ⇑(KaehlerDifferential.D R S)).toAddMonoidHom ⋯) a✝ - KaehlerDifferential.map_compDer 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] [Algebra S B] [Algebra R B] [IsScalarTower R A B] [IsScalarTower R S B] [SMulCommClass S A B] : (KaehlerDifferential.map R S A B).compDer (KaehlerDifferential.D R A) = Derivation.compAlgebraMap A (Derivation.restrictScalars R (KaehlerDifferential.D S B)) - KaehlerDifferential.fromIdeal_surjective 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : Function.Surjective ⇑(KaehlerDifferential.fromIdeal R S) - Derivation.liftKaehlerDifferential_unique 📋 Mathlib.RingTheory.Kaehler.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {M : Type u_1} [AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M] (f f' : Ω[S⁄R] →ₗ[S] M) (hf : f.compDer (KaehlerDifferential.D R S) = f'.compDer (KaehlerDifferential.D R S)) : f = f' - Derivation.liftKaehlerDifferential_unique_iff 📋 Mathlib.RingTheory.Kaehler.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {M : Type u_1} [AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M] {f f' : Ω[S⁄R] →ₗ[S] M} : f = f' ↔ f.compDer (KaehlerDifferential.D R S) = f'.compDer (KaehlerDifferential.D R S) - KaehlerDifferential.D_apply 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (s : S) : (KaehlerDifferential.D R S) s = (KaehlerDifferential.ideal R S).toCotangent ⟨1 ⊗ₜ[R] s - s ⊗ₜ[R] 1, ⋯⟩ - KaehlerDifferential.DLinearMap_apply 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (s : S) : (KaehlerDifferential.DLinearMap R S) s = (KaehlerDifferential.ideal R S).toCotangent ⟨1 ⊗ₜ[R] s - s ⊗ₜ[R] 1, ⋯⟩ - KaehlerDifferential.D_tensorProductTo 📋 Mathlib.RingTheory.Kaehler.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (x : ↥(KaehlerDifferential.ideal R S)) : (KaehlerDifferential.D R S).tensorProductTo ↑x = (KaehlerDifferential.ideal R S).toCotangent x - Derivation.liftKaehlerDifferential_apply 📋 Mathlib.RingTheory.Kaehler.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {M : Type u_1} [AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M] (D : Derivation R S M) (x : ↥(KaehlerDifferential.ideal R S)) : D.liftKaehlerDifferential ((KaehlerDifferential.ideal R S).toCotangent x) = D.tensorProductTo ↑x - KaehlerDifferential.quotKerTotalEquiv_symm_comp_D 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : (↑(KaehlerDifferential.quotKerTotalEquiv R S).symm).compDer (KaehlerDifferential.D R S) = KaehlerDifferential.derivationQuotKerTotal R S - KaehlerDifferential.endEquiv 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : Module.End S Ω[S⁄R] ≃ { f // (Algebra.TensorProduct.lmul' R).kerSquareLift.comp f = AlgHom.id R S } - KaehlerDifferential.endEquivDerivation' 📋 Mathlib.RingTheory.Kaehler.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : Derivation R S Ω[S⁄R] ≃ₗ[S] Derivation R S ↥(KaehlerDifferential.ideal R S).cotangentIdeal - KaehlerDifferential.polynomialEquiv 📋 Mathlib.RingTheory.Kaehler.Polynomial
(R : Type u) [CommRing R] : Ω[Polynomial R⁄R] ≃ₗ[Polynomial R] Polynomial R - instFreeMvPolynomialKaehlerDifferential 📋 Mathlib.RingTheory.Kaehler.Polynomial
(R : Type u) [CommRing R] (σ : Type u_1) : Module.Free (MvPolynomial σ R) Ω[MvPolynomial σ R⁄R] - KaehlerDifferential.mvPolynomialBasis 📋 Mathlib.RingTheory.Kaehler.Polynomial
(R : Type u) [CommRing R] (σ : Type u_1) : Module.Basis σ (MvPolynomial σ R) Ω[MvPolynomial σ R⁄R] - KaehlerDifferential.mvPolynomialEquiv 📋 Mathlib.RingTheory.Kaehler.Polynomial
(R : Type u) [CommRing R] (σ : Type u_1) : Ω[MvPolynomial σ R⁄R] ≃ₗ[MvPolynomial σ R] σ →₀ MvPolynomial σ R - KaehlerDifferential.polynomialEquiv_D 📋 Mathlib.RingTheory.Kaehler.Polynomial
(R : Type u) [CommRing R] (P : Polynomial R) : (KaehlerDifferential.polynomialEquiv R) ((KaehlerDifferential.D R (Polynomial R)) P) = Polynomial.derivative P - KaehlerDifferential.mvPolynomialBasis_apply 📋 Mathlib.RingTheory.Kaehler.Polynomial
(R : Type u) [CommRing R] (σ : Type u_1) (i : σ) : (KaehlerDifferential.mvPolynomialBasis R σ) i = (KaehlerDifferential.D R (MvPolynomial σ R)) (MvPolynomial.X i) - KaehlerDifferential.polynomial_D_apply 📋 Mathlib.RingTheory.Kaehler.Polynomial
(R : Type u) [CommRing R] (P : Polynomial R) : (KaehlerDifferential.D R (Polynomial R)) P = Polynomial.derivative P • (KaehlerDifferential.D R (Polynomial R)) Polynomial.X - KaehlerDifferential.polynomialEquiv_symm 📋 Mathlib.RingTheory.Kaehler.Polynomial
(R : Type u) [CommRing R] (P : Polynomial R) : (KaehlerDifferential.polynomialEquiv R).symm P = P • (KaehlerDifferential.D R (Polynomial R)) Polynomial.X - KaehlerDifferential.mvPolynomialBasis_repr_D_X 📋 Mathlib.RingTheory.Kaehler.Polynomial
(R : Type u) [CommRing R] (σ : Type u_1) (i : σ) : (KaehlerDifferential.mvPolynomialBasis R σ).repr ((KaehlerDifferential.D R (MvPolynomial σ R)) (MvPolynomial.X i)) = fun₀ | i => 1 - KaehlerDifferential.mvPolynomialBasis_repr_apply 📋 Mathlib.RingTheory.Kaehler.Polynomial
(R : Type u) [CommRing R] (σ : Type u_1) (x : MvPolynomial σ R) (i : σ) : ((KaehlerDifferential.mvPolynomialBasis R σ).repr ((KaehlerDifferential.D R (MvPolynomial σ R)) x)) i = (MvPolynomial.pderiv i) x - KaehlerDifferential.mvPolynomialBasis_repr_symm_single 📋 Mathlib.RingTheory.Kaehler.Polynomial
(R : Type u) [CommRing R] (σ : Type u_1) (i : σ) (x : MvPolynomial σ R) : ((KaehlerDifferential.mvPolynomialBasis R σ).repr.symm fun₀ | i => x) = x • (KaehlerDifferential.D R (MvPolynomial σ R)) (MvPolynomial.X i) - KaehlerDifferential.mvPolynomialBasis_repr_D 📋 Mathlib.RingTheory.Kaehler.Polynomial
(R : Type u) [CommRing R] (σ : Type u_1) (x : MvPolynomial σ R) : (KaehlerDifferential.mvPolynomialBasis R σ).repr ((KaehlerDifferential.D R (MvPolynomial σ R)) x) = (MvPolynomial.mkDerivation R fun x => fun₀ | x => 1) x - KaehlerDifferential.polynomialEquiv_comp_D 📋 Mathlib.RingTheory.Kaehler.Polynomial
(R : Type u) [CommRing R] : (KaehlerDifferential.polynomialEquiv R).compDer (KaehlerDifferential.D R (Polynomial R)) = Polynomial.derivative' - KaehlerDifferential.mvPolynomialBasis_repr_comp_D 📋 Mathlib.RingTheory.Kaehler.Polynomial
(R : Type u) [CommRing R] (σ : Type u_1) : (↑(KaehlerDifferential.mvPolynomialBasis R σ).repr).compDer (KaehlerDifferential.D R (MvPolynomial σ R)) = MvPolynomial.mkDerivation R fun x => fun₀ | x => 1 - Algebra.instFinitePresentationKaehlerDifferentialOfFinitePresentation 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] [Algebra.FinitePresentation R S] : Module.FinitePresentation S Ω[S⁄R] - Algebra.instFiniteH1CotangentOfFinitePresentationOfProjectiveKaehlerDifferential 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] [Algebra.FinitePresentation R S] [Module.Projective S Ω[S⁄R]] : Module.Finite S (Algebra.H1Cotangent R S) - Algebra.Extension.cotangentComplex 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : P.Cotangent →ₗ[S] P.CotangentSpace - Algebra.Extension.toKaehler 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : P.CotangentSpace →ₗ[S] Ω[S⁄R] - Algebra.Extension.Hom.sub 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u'} {S' : Type v'} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S'] (f g : P.Hom P') : P.CotangentSpace →ₗ[S] P'.Cotangent - Algebra.Extension.H1Cotangent.val_zero 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} : ↑0 = 0 - Algebra.Generators.instFreeCotangentSpaceToExtension 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {ι : Type w} (P : Algebra.Generators R S ι) : Module.Free S P.toExtension.CotangentSpace - Algebra.Generators.cotangentSpaceBasis 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {ι : Type w} (P : Algebra.Generators R S ι) : Module.Basis ι S P.toExtension.CotangentSpace - Algebra.Extension.subsingleton_h1Cotangent 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : Subsingleton P.H1Cotangent ↔ Function.Injective ⇑P.cotangentComplex - Algebra.Extension.toKaehler_surjective 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} : Function.Surjective ⇑P.toKaehler - KaehlerDifferential.cotangentComplexBaseChange 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] (P : Type u_2) (A : Type u_3) [CommRing P] [CommRing A] [Algebra P S] [Algebra P A] [Algebra R P] [Algebra S A] [IsScalarTower P S A] : TensorProduct P A ↥(RingHom.ker (algebraMap P S)) →ₗ[A] TensorProduct P A Ω[P⁄R] - Algebra.Extension.Cotangent.map_sub_map 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u'} {S' : Type v'} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S'] (f g : P.Hom P') : Algebra.Extension.Cotangent.map f - Algebra.Extension.Cotangent.map g = f.sub g ∘ₗ P.cotangentComplex - Algebra.Extension.CotangentSpace.map 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u'} {S' : Type v'} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] (f : P.Hom P') : P.CotangentSpace →ₗ[S] P'.CotangentSpace - Algebra.Extension.h1Cotangentι_ext 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x y : P.H1Cotangent) (e : ↑x = ↑y) : x = y - Algebra.Extension.h1Cotangentι_ext_iff 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {x y : P.H1Cotangent} : x = y ↔ ↑x = ↑y - Algebra.Extension.h1Cotangentι_apply 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (self : ↥P.cotangentComplex.ker) : Algebra.Extension.h1Cotangentι self = ↑self - Algebra.Extension.exact_hCotangentι_cotangentComplex 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} : Function.Exact ⇑Algebra.Extension.h1Cotangentι ⇑P.cotangentComplex - Algebra.Extension.CotangentSpace.map_id 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} : Algebra.Extension.CotangentSpace.map (Algebra.Extension.Hom.id P) = LinearMap.id - Algebra.Extension.H1Cotangent.val_smul 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R₀ : Type u_1} [CommRing R₀] [Algebra R₀ S] [Module R₀ P.Cotangent] [IsScalarTower R₀ S P.Cotangent] (r : R₀) (x : P.H1Cotangent) : ↑(r • x) = r • ↑x - Algebra.Extension.H1Cotangent.val_add 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x y : P.H1Cotangent) : ↑(x + y) = ↑x + ↑y - Algebra.Extension.exact_cotangentComplex_toKaehler 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} : Function.Exact ⇑P.cotangentComplex ⇑P.toKaehler - Algebra.Extension.H1Cotangent.map_apply_coe 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u'} {S' : Type v'} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] (f : P.Hom P') (c : ↥P.cotangentComplex.ker) : ↑((Algebra.Extension.H1Cotangent.map f) c) = (Algebra.Extension.Cotangent.map f) ↑c - Algebra.Generators.cotangentSpaceBasis_apply 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {ι : Type w} (P : Algebra.Generators R S ι) (i : ι) : P.cotangentSpaceBasis i = 1 ⊗ₜ[P.Ring] (KaehlerDifferential.D R P.Ring) (MvPolynomial.X i) - Algebra.Generators.toKaehler_cotangentSpaceBasis 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {ι : Type w} {P : Algebra.Generators R S ι} (i : ι) : P.toExtension.toKaehler (P.cotangentSpaceBasis i) = (KaehlerDifferential.D R S) (P.val i) - Algebra.Generators.toKaehler_tmul_D 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {ι : Type w} {P : Algebra.Generators R S ι} (i : ι) : P.toExtension.toKaehler (1 ⊗ₜ[P.toExtension.Ring] (KaehlerDifferential.D R P.Ring) (MvPolynomial.X i)) = (KaehlerDifferential.D R S) (P.val i) - Algebra.Extension.cotangentComplex_mk 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) (x : ↥P.ker) : P.cotangentComplex (Algebra.Extension.Cotangent.mk x) = 1 ⊗ₜ[P.Ring] (KaehlerDifferential.D R P.Ring) ↑x - Algebra.Extension.Cotangent.mk_C_mem_ker_cotangentComplex 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {σ : Type u_1} (G : Algebra.Generators R S σ) {r : R} (hr : MvPolynomial.C r ∈ G.ker) : Algebra.Extension.Cotangent.mk ⟨MvPolynomial.C r, hr⟩ ∈ G.toExtension.cotangentComplex.ker - Algebra.Extension.H1Cotangent.equiv_apply 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P₁ : Algebra.Extension R S} {P₂ : Algebra.Extension R S} (f₁ : P₁.Hom P₂) (f₂ : P₂.Hom P₁) (c : ↥P₁.cotangentComplex.ker) : (Algebra.Extension.H1Cotangent.equiv f₁ f₂) c = ⟨(Algebra.Extension.Cotangent.map f₁) ↑c, ⋯⟩ - Algebra.Extension.CotangentSpace.map_cotangentComplex 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u'} {S' : Type v'} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] (f : P.Hom P') (x : P.Cotangent) : (Algebra.Extension.CotangentSpace.map f) (P.cotangentComplex x) = P'.cotangentComplex ((Algebra.Extension.Cotangent.map f) x) - KaehlerDifferential.cotangentComplexBaseChange_tmul 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] {P : Type u_2} {A : Type u_3} [CommRing P] [CommRing A] [Algebra P S] [Algebra P A] [Algebra R P] [Algebra S A] [IsScalarTower P S A] (a : A) (b : ↥(RingHom.ker (algebraMap P S))) : (KaehlerDifferential.cotangentComplexBaseChange R S P A) (a ⊗ₜ[P] b) = a • (KaehlerDifferential.kerToTensor R P A) ⟨↑b, ⋯⟩ - Algebra.Extension.Hom.sub_one_tmul 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u'} {S' : Type v'} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S'] (f g : P.Hom P') (x : P.Ring) : (f.sub g) (1 ⊗ₜ[P.Ring] (KaehlerDifferential.D R P.Ring) x) = Algebra.Extension.Cotangent.mk ((f.subToKer g) x) - Algebra.Extension.CotangentSpace.map_tmul 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u'} {S' : Type v'} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] (f : P.Hom P') (x : S) (y : P.Ring) : (Algebra.Extension.CotangentSpace.map f) (x ⊗ₜ[P.Ring] (KaehlerDifferential.D R P.Ring) y) = (algebraMap S S') x ⊗ₜ[P'.Ring] (KaehlerDifferential.D R' P'.Ring) (f.toAlgHom y) - Algebra.Extension.Hom.sub_tmul 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u'} {S' : Type v'} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S'] (f g : P.Hom P') (r : S) (x : P.Ring) : (f.sub g) (r ⊗ₜ[P.Ring] (KaehlerDifferential.D R P.Ring) x) = r • Algebra.Extension.Cotangent.mk ((f.subToKer g) x) - Algebra.Generators.cotangentSpaceBasis_repr_tmul 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {ι : Type w} (P : Algebra.Generators R S ι) (r : S) (x : P.Ring) (i : ι) : (P.cotangentSpaceBasis.repr (r ⊗ₜ[P.Ring] (KaehlerDifferential.D R P.Ring) x)) i = r * (MvPolynomial.aeval P.val) ((MvPolynomial.pderiv i) x) - Algebra.Generators.cotangentSpaceBasis_repr_one_tmul 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {ι : Type w} (P : Algebra.Generators R S ι) (x : P.toExtension.Ring) (i : ι) : (P.cotangentSpaceBasis.repr (1 ⊗ₜ[P.toExtension.Ring] (KaehlerDifferential.D R P.toExtension.Ring) x)) i = (MvPolynomial.aeval P.val) ((MvPolynomial.pderiv i) x) - Algebra.Extension.CotangentSpace.map_comp_cotangentComplex 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u'} {S' : Type v'} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] (f : P.Hom P') : Algebra.Extension.CotangentSpace.map f ∘ₗ P.cotangentComplex = ↑S P'.cotangentComplex ∘ₗ Algebra.Extension.Cotangent.map f - Algebra.Extension.CotangentSpace.map_tmul_eq_tmul_map 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u'} {S' : Type v'} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] (f : P.Hom P') (x : S) (y : Ω[P.Ring⁄R]) : (Algebra.Extension.CotangentSpace.map f) (x ⊗ₜ[P.Ring] y) = (algebraMap S S') x ⊗ₜ[P'.Ring] (KaehlerDifferential.map R R' P.Ring P'.Ring) y - Algebra.Extension.CotangentSpace.map_comp_apply 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u'} {S' : Type v'} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] {R'' : Type u''} {S'' : Type v''} [CommRing R''] [CommRing S''] [Algebra R'' S''] {P'' : Algebra.Extension R'' S''} [Algebra R R''] [Algebra S S''] [Algebra R S''] [IsScalarTower R R'' S''] [Algebra R' R''] [Algebra S' S''] [Algebra R' S''] [IsScalarTower R' R'' S''] [IsScalarTower R R' R''] [IsScalarTower S S' S''] (f : P.Hom P') (g : P'.Hom P'') (x : P.CotangentSpace) : (Algebra.Extension.CotangentSpace.map (g.comp f)) x = (Algebra.Extension.CotangentSpace.map g) ((Algebra.Extension.CotangentSpace.map f) x) - Algebra.Generators.H1Cotangent.equiv_apply 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {ι : Type w} {ι' : Type u_1} (P : Algebra.Generators R S ι) (P' : Algebra.Generators R S ι') (c : ↥P.toExtension.cotangentComplex.ker) : (Algebra.Generators.H1Cotangent.equiv P P') c = ⟨(Algebra.Extension.Cotangent.map (P.defaultHom P').toExtensionHom) ↑c, ⋯⟩ - Algebra.Generators.repr_CotangentSpaceMap 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {ι : Type w} {P : Algebra.Generators R S ι} {R' : Type u'} {S' : Type v'} {ι' : Type w'} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Generators R' S' ι'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S'] (f : P.Hom P') (i : ι) (j : ι') : (P'.cotangentSpaceBasis.repr ((Algebra.Extension.CotangentSpace.map f.toExtensionHom) (P.cotangentSpaceBasis i))) j = (MvPolynomial.aeval P'.val) ((MvPolynomial.pderiv j) (f.val i)) - Algebra.Extension.CotangentSpace.map_comp 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u'} {S' : Type v'} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] {R'' : Type u''} {S'' : Type v''} [CommRing R''] [CommRing S''] [Algebra R'' S''] {P'' : Algebra.Extension R'' S''} [Algebra R R''] [Algebra S S''] [Algebra R S''] [IsScalarTower R R'' S''] [Algebra R' R''] [Algebra S' S''] [Algebra R' S''] [IsScalarTower R' R'' S''] [IsScalarTower R R' R''] [IsScalarTower S S' S''] (f : P.Hom P') (g : P'.Hom P'') : Algebra.Extension.CotangentSpace.map (g.comp f) = ↑S (Algebra.Extension.CotangentSpace.map g) ∘ₗ Algebra.Extension.CotangentSpace.map f - Algebra.Extension.CotangentSpace.map_sub_map 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u'} {S' : Type v'} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S'] (f g : P.Hom P') : Algebra.Extension.CotangentSpace.map f - Algebra.Extension.CotangentSpace.map g = ↑S P'.cotangentComplex ∘ₗ f.sub g - Algebra.Extension.cotangentComplexBaseChange_eq_lTensor_cotangentComplex 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) (A : Type u_1) [CommRing A] [Algebra S A] [Algebra P.Ring A] [IsScalarTower P.Ring S A] : KaehlerDifferential.cotangentComplexBaseChange R S P.Ring A = ↑(TensorProduct.AlgebraTensorModule.cancelBaseChange P.Ring S A A Ω[P.Ring⁄R]) ∘ₗ LinearMap.baseChange A P.cotangentComplex ∘ₗ ↑((TensorProduct.AlgebraTensorModule.cancelBaseChange P.Ring S A A ↥P.ker).symm ≪≫ₗ LinearEquiv.baseChange S A (TensorProduct P.Ring S ↥P.ker) P.Cotangent P.cotangentEquiv) - Algebra.Extension.lTensor_cotangentComplex_eq_cotangentComplexBaseChange 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) (A : Type u_1) [CommRing A] [Algebra S A] [Algebra P.Ring A] [IsScalarTower P.Ring S A] : LinearMap.baseChange A P.cotangentComplex = ↑(TensorProduct.AlgebraTensorModule.cancelBaseChange P.Ring S A A Ω[P.Ring⁄R]).symm ∘ₗ KaehlerDifferential.cotangentComplexBaseChange R S P.Ring A ∘ₗ ↑((TensorProduct.AlgebraTensorModule.cancelBaseChange P.Ring S A A ↥P.ker).symm ≪≫ₗ LinearEquiv.baseChange S A (TensorProduct P.Ring S ↥P.ker) P.Cotangent P.cotangentEquiv).symm - Algebra.Presentation.differentials 📋 Mathlib.Algebra.Module.Presentation.Differentials
{R : Type u} {S : Type v} {ι : Type w} {σ : Type t} [CommRing R] [CommRing S] [Algebra R S] (pres : Algebra.Presentation R S ι σ) : Module.Presentation S Ω[S⁄R] - Algebra.Presentation.differentialsSolution 📋 Mathlib.Algebra.Module.Presentation.Differentials
{R : Type u} {S : Type v} {ι : Type w} {σ : Type t} [CommRing R] [CommRing S] [Algebra R S] (pres : Algebra.Presentation R S ι σ) : pres.differentialsRelations.Solution Ω[S⁄R] - Algebra.Presentation.differentialsSolution_isPresentation 📋 Mathlib.Algebra.Module.Presentation.Differentials
{R : Type u} {S : Type v} {ι : Type w} {σ : Type t} [CommRing R] [CommRing S] [Algebra R S] (pres : Algebra.Presentation R S ι σ) : pres.differentialsSolution.IsPresentation - Algebra.Presentation.differentials.comm₂₃ 📋 Mathlib.Algebra.Module.Presentation.Differentials
{R : Type u} {S : Type v} {ι : Type w} {σ : Type t} [CommRing R] [CommRing S] [Algebra R S] (pres : Algebra.Presentation R S ι σ) : pres.toExtension.toKaehler ∘ₗ ↑pres.cotangentSpaceBasis.repr.symm = pres.differentialsSolution.π - Algebra.Presentation.differentials.comm₂₃' 📋 Mathlib.Algebra.Module.Presentation.Differentials
{R : Type u} {S : Type v} {ι : Type w} {σ : Type t} [CommRing R] [CommRing S] [Algebra R S] (pres : Algebra.Presentation R S ι σ) : pres.toExtension.toKaehler ∘ₗ ↑pres.cotangentSpaceBasis.repr.symm = Finsupp.linearCombination S fun g => (KaehlerDifferential.D R S) (pres.val g) - Algebra.Presentation.differentials.comm₁₂ 📋 Mathlib.Algebra.Module.Presentation.Differentials
{R : Type u} {S : Type v} {ι : Type w} {σ : Type t} [CommRing R] [CommRing S] [Algebra R S] (pres : Algebra.Presentation R S ι σ) : pres.toExtension.cotangentComplex ∘ₗ Algebra.Presentation.differentials.hom₁ pres = ↑pres.cotangentSpaceBasis.repr.symm ∘ₗ pres.differentialsRelations.map - Algebra.Presentation.differentials.comm₁₂_single 📋 Mathlib.Algebra.Module.Presentation.Differentials
{R : Type u} {S : Type v} {ι : Type w} {σ : Type t} [CommRing R] [CommRing S] [Algebra R S] (pres : Algebra.Presentation R S ι σ) (r : σ) : pres.toExtension.cotangentComplex ((Algebra.Presentation.differentials.hom₁ pres) fun₀ | r => 1) = pres.cotangentSpaceBasis.repr.symm (pres.differentialsRelations.relation r) - Algebra.FormallyUnramified.mk 📋 Mathlib.RingTheory.Unramified.Basic
{R : Type v} {A : Type u} [CommRing R] [CommRing A] [Algebra R A] (subsingleton_kaehlerDifferential : Subsingleton Ω[A⁄R]) : Algebra.FormallyUnramified R A - Algebra.FormallyUnramified.subsingleton_kaehlerDifferential 📋 Mathlib.RingTheory.Unramified.Basic
{R : Type v} {A : Type u} {inst✝ : CommRing R} {inst✝¹ : CommRing A} {inst✝² : Algebra R A} [self : Algebra.FormallyUnramified R A] : Subsingleton Ω[A⁄R] - Algebra.formallyUnramified_iff 📋 Mathlib.RingTheory.Unramified.Basic
(R : Type v) (A : Type u) [CommRing R] [CommRing A] [Algebra R A] : Algebra.FormallyUnramified R A ↔ Subsingleton Ω[A⁄R] - retractionOfSectionOfKerSqZero 📋 Mathlib.RingTheory.Smooth.Kaehler
{R : Type u_1} {P : Type u_2} {S : Type u_3} [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] [Algebra R S] [IsScalarTower R P S] (g : S →ₐ[R] P) (hf' : RingHom.ker (algebraMap P S) ^ 2 = ⊥) (hg : (IsScalarTower.toAlgHom R P S).comp g = AlgHom.id R S) : TensorProduct P S Ω[P⁄R] →ₗ[P] ↥(RingHom.ker (algebraMap P S)) - retractionOfSectionOfKerSqZero_comp_kerToTensor 📋 Mathlib.RingTheory.Smooth.Kaehler
{R : Type u_1} {P : Type u_2} {S : Type u_3} [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] [Algebra R S] [IsScalarTower R P S] (g : S →ₐ[R] P) (hf' : RingHom.ker (algebraMap P S) ^ 2 = ⊥) (hg : (IsScalarTower.toAlgHom R P S).comp g = AlgHom.id R S) : retractionOfSectionOfKerSqZero g hf' hg ∘ₗ KaehlerDifferential.kerToTensor R P S = LinearMap.id - retractionOfSectionOfKerSqZero_tmul_D 📋 Mathlib.RingTheory.Smooth.Kaehler
{R : Type u_1} {P : Type u_2} {S : Type u_3} [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] [Algebra R S] [IsScalarTower R P S] (g : S →ₐ[R] P) (hf' : RingHom.ker (algebraMap P S) ^ 2 = ⊥) (hg : (IsScalarTower.toAlgHom R P S).comp g = AlgHom.id R S) (s : S) (t : P) : ↑((retractionOfSectionOfKerSqZero g hf' hg) (s ⊗ₜ[P] (KaehlerDifferential.D R P) t)) = g s * t - g s * g ((algebraMap P S) t) - derivationQuotKerSq 📋 Mathlib.RingTheory.Smooth.Kaehler
(R : Type u_1) (P : Type u_2) (S : Type u_3) [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] [Algebra R S] [IsScalarTower R P S] : Derivation R (P ⧸ RingHom.ker (algebraMap P S) ^ 2) (TensorProduct P S Ω[P⁄R]) - sectionOfRetractionKerToTensor 📋 Mathlib.RingTheory.Smooth.Kaehler
{R : Type u_1} {P : Type u_2} {S : Type u_3} [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] (l : TensorProduct P S Ω[P⁄R] →ₗ[P] ↥(RingHom.ker (algebraMap P S))) (hl : l ∘ₗ KaehlerDifferential.kerToTensor R P S = LinearMap.id) [Algebra R S] [IsScalarTower R P S] (hf' : RingHom.ker (algebraMap P S) ^ 2 = ⊥) (hf : Function.Surjective ⇑(algebraMap P S)) : S →ₐ[R] P - sectionOfRetractionKerToTensorAux 📋 Mathlib.RingTheory.Smooth.Kaehler
{R : Type u_1} {P : Type u_2} {S : Type u_3} [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] (l : TensorProduct P S Ω[P⁄R] →ₗ[P] ↥(RingHom.ker (algebraMap P S))) (hl : l ∘ₗ KaehlerDifferential.kerToTensor R P S = LinearMap.id) (σ : S → P) (hσ : ∀ (x : S), (algebraMap P S) (σ x) = x) [Algebra R S] [IsScalarTower R P S] (hf' : RingHom.ker (algebraMap P S) ^ 2 = ⊥) : S →ₐ[R] P - toAlgHom_comp_sectionOfRetractionKerToTensor 📋 Mathlib.RingTheory.Smooth.Kaehler
{R : Type u_1} {P : Type u_2} {S : Type u_3} [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] (l : TensorProduct P S Ω[P⁄R] →ₗ[P] ↥(RingHom.ker (algebraMap P S))) (hl : l ∘ₗ KaehlerDifferential.kerToTensor R P S = LinearMap.id) [Algebra R S] [IsScalarTower R P S] (hf' : RingHom.ker (algebraMap P S) ^ 2 = ⊥) (hf : Function.Surjective ⇑(algebraMap P S)) : (IsScalarTower.toAlgHom R P S).comp (sectionOfRetractionKerToTensor l hl hf' hf) = AlgHom.id R S - toAlgHom_comp_sectionOfRetractionKerToTensorAux 📋 Mathlib.RingTheory.Smooth.Kaehler
{R : Type u_1} {P : Type u_2} {S : Type u_3} [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] (l : TensorProduct P S Ω[P⁄R] →ₗ[P] ↥(RingHom.ker (algebraMap P S))) (hl : l ∘ₗ KaehlerDifferential.kerToTensor R P S = LinearMap.id) (σ : S → P) (hσ : ∀ (x : S), (algebraMap P S) (σ x) = x) [Algebra R S] [IsScalarTower R P S] (hf' : RingHom.ker (algebraMap P S) ^ 2 = ⊥) (hf : Function.Surjective ⇑(algebraMap P S)) : (IsScalarTower.toAlgHom R P S).comp (sectionOfRetractionKerToTensorAux l hl σ hσ hf') = AlgHom.id R S - retractionKerToTensorEquivSection 📋 Mathlib.RingTheory.Smooth.Kaehler
{R : Type u_1} {P : Type u_2} {S : Type u_3} [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] [Algebra R S] [IsScalarTower R P S] (hf' : RingHom.ker (algebraMap P S) ^ 2 = ⊥) (hf : Function.Surjective ⇑(algebraMap P S)) : { l // l ∘ₗ KaehlerDifferential.kerToTensor R P S = LinearMap.id } ≃ { g // (IsScalarTower.toAlgHom R P S).comp g = AlgHom.id R S } - Algebra.Extension.CotangentSpace.map_toInfinitesimal_bijective 📋 Mathlib.RingTheory.Smooth.Kaehler
{R : Type u_1} {S : Type u_3} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : Function.Bijective ⇑(Algebra.Extension.CotangentSpace.map P.toInfinitesimal) - sectionOfRetractionKerToTensor_algebraMap 📋 Mathlib.RingTheory.Smooth.Kaehler
{R : Type u_1} {P : Type u_2} {S : Type u_3} [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] (l : TensorProduct P S Ω[P⁄R] →ₗ[P] ↥(RingHom.ker (algebraMap P S))) (hl : l ∘ₗ KaehlerDifferential.kerToTensor R P S = LinearMap.id) [Algebra R S] [IsScalarTower R P S] (hf' : RingHom.ker (algebraMap P S) ^ 2 = ⊥) (hf : Function.Surjective ⇑(algebraMap P S)) (x : P) : (sectionOfRetractionKerToTensor l hl hf' hf) ((algebraMap P S) x) = x - ↑(l (1 ⊗ₜ[P] (KaehlerDifferential.D R P) x)) - sectionOfRetractionKerToTensorAux_algebraMap 📋 Mathlib.RingTheory.Smooth.Kaehler
{R : Type u_1} {P : Type u_2} {S : Type u_3} [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] (l : TensorProduct P S Ω[P⁄R] →ₗ[P] ↥(RingHom.ker (algebraMap P S))) (hl : l ∘ₗ KaehlerDifferential.kerToTensor R P S = LinearMap.id) (σ : S → P) (hσ : ∀ (x : S), (algebraMap P S) (σ x) = x) [Algebra R S] [IsScalarTower R P S] (hf' : RingHom.ker (algebraMap P S) ^ 2 = ⊥) (x : P) : (sectionOfRetractionKerToTensorAux l hl σ hσ hf') ((algebraMap P S) x) = x - ↑(l (1 ⊗ₜ[P] (KaehlerDifferential.D R P) x)) - retractionKerCotangentToTensorEquivSection 📋 Mathlib.RingTheory.Smooth.Kaehler
{R : Type u_1} {P : Type u_2} {S : Type u_3} [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] [Algebra R S] [IsScalarTower R P S] (hf : Function.Surjective ⇑(algebraMap P S)) : { l // l ∘ₗ KaehlerDifferential.kerCotangentToTensor R P S = LinearMap.id } ≃ { g // (IsScalarTower.toAlgHom R P S).kerSquareLift.comp g = AlgHom.id R S } - sectionOfRetractionKerToTensorAux_prop 📋 Mathlib.RingTheory.Smooth.Kaehler
{R : Type u_1} {P : Type u_2} {S : Type u_3} [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] (l : TensorProduct P S Ω[P⁄R] →ₗ[P] ↥(RingHom.ker (algebraMap P S))) (hl : l ∘ₗ KaehlerDifferential.kerToTensor R P S = LinearMap.id) (x y : P) (h : (algebraMap P S) x = (algebraMap P S) y) : x - ↑(l (1 ⊗ₜ[P] (KaehlerDifferential.D R P) x)) = y - ↑(l (1 ⊗ₜ[P] (KaehlerDifferential.D R P) y)) - derivationQuotKerSq_mk 📋 Mathlib.RingTheory.Smooth.Kaehler
{R : Type u_1} {P : Type u_2} {S : Type u_3} [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] [Algebra R S] [IsScalarTower R P S] (x : P) : (derivationQuotKerSq R P S) ((Ideal.Quotient.mk (RingHom.ker (algebraMap P S) ^ 2)) x) = 1 ⊗ₜ[P] (KaehlerDifferential.D R P) x - tensorKaehlerQuotKerSqEquiv 📋 Mathlib.RingTheory.Smooth.Kaehler
(R : Type u_1) (P : Type u_2) (S : Type u_3) [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] [Algebra R S] [IsScalarTower R P S] : TensorProduct (P ⧸ RingHom.ker (algebraMap P S) ^ 2) S Ω[P ⧸ RingHom.ker (algebraMap P S) ^ 2⁄R] ≃ₗ[S] TensorProduct P S Ω[P⁄R] - tensorKaehlerQuotKerSqEquiv_tmul_D 📋 Mathlib.RingTheory.Smooth.Kaehler
{R : Type u_1} {P : Type u_2} {S : Type u_3} [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] [Algebra R S] [IsScalarTower R P S] (s : S) (t : P) : (tensorKaehlerQuotKerSqEquiv R P S) (s ⊗ₜ[P ⧸ RingHom.ker (algebraMap P S) ^ 2] (KaehlerDifferential.D R (P ⧸ RingHom.ker (algebraMap P S) ^ 2)) ((Ideal.Quotient.mk (RingHom.ker (algebraMap P S) ^ 2)) t)) = s ⊗ₜ[P] (KaehlerDifferential.D R P) t - tensorKaehlerQuotKerSqEquiv_symm_tmul_D 📋 Mathlib.RingTheory.Smooth.Kaehler
{R : Type u_1} {P : Type u_2} {S : Type u_3} [CommRing R] [CommRing P] [CommRing S] [Algebra R P] [Algebra P S] [Algebra R S] [IsScalarTower R P S] (s : S) (t : P) : (tensorKaehlerQuotKerSqEquiv R P S).symm (s ⊗ₜ[P] (KaehlerDifferential.D R P) t) = s ⊗ₜ[P ⧸ RingHom.ker (algebraMap P S) ^ 2] (KaehlerDifferential.D R (P ⧸ RingHom.ker (algebraMap P S) ^ 2)) ((Ideal.Quotient.mk (RingHom.ker (algebraMap P S) ^ 2)) t) - Algebra.FormallySmooth.projective_kaehlerDifferential 📋 Mathlib.RingTheory.Smooth.Basic
{R : Type u} {A : Type v} {inst✝ : CommRing R} {inst✝¹ : CommRing A} {inst✝² : Algebra R A} [self : Algebra.FormallySmooth R A] : Module.Projective A Ω[A⁄R] - Algebra.FormallySmooth.instFinitePresentationKaehlerDifferentialOfEssFiniteType 📋 Mathlib.RingTheory.Smooth.Basic
{R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] [Algebra.EssFiniteType R A] [Algebra.FormallySmooth R A] : Module.FinitePresentation A Ω[A⁄R] - Algebra.FormallySmooth.mk 📋 Mathlib.RingTheory.Smooth.Basic
{R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] (projective_kaehlerDifferential : Module.Projective A Ω[A⁄R]) (subsingleton_h1Cotangent : Subsingleton (Algebra.H1Cotangent R A)) : Algebra.FormallySmooth R A - Algebra.formallySmooth_iff 📋 Mathlib.RingTheory.Smooth.Basic
(R : Type u) (A : Type v) [CommRing R] [CommRing A] [Algebra R A] : Algebra.FormallySmooth R A ↔ Module.Projective A Ω[A⁄R] ∧ Subsingleton (Algebra.H1Cotangent R A) - Algebra.Extension.cotangentComplex_injective_iff 📋 Mathlib.RingTheory.Smooth.Basic
{R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] (P : Algebra.Extension R A) [Algebra.FormallySmooth R P.Ring] : Function.Injective ⇑P.cotangentComplex ↔ Subsingleton (Algebra.H1Cotangent R A) - Algebra.FormallySmooth.kerCotangentToTensor_injective_iff 📋 Mathlib.RingTheory.Smooth.Basic
{R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] {P : Type u_2} [CommRing P] [Algebra R P] [Algebra.FormallySmooth R P] [Algebra P A] [IsScalarTower R P A] (hf : Function.Surjective ⇑(algebraMap P A)) : Function.Injective ⇑(KaehlerDifferential.kerCotangentToTensor R P A) ↔ Subsingleton (Algebra.H1Cotangent R A) - Algebra.Extension.formallySmooth_iff_split_injection 📋 Mathlib.RingTheory.Smooth.Basic
{R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] (P : Algebra.Extension R A) [Algebra.FormallySmooth R P.Ring] : Algebra.FormallySmooth R A ↔ ∃ l, l ∘ₗ P.cotangentComplex = LinearMap.id - Algebra.FormallySmooth.iff_split_injection 📋 Mathlib.RingTheory.Smooth.Basic
{R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] {P : Type u_2} [CommRing P] [Algebra R P] [Algebra.FormallySmooth R P] [Algebra P A] [IsScalarTower R P A] (hf : Function.Surjective ⇑(algebraMap P A)) : Algebra.FormallySmooth R A ↔ ∃ l, l ∘ₗ KaehlerDifferential.kerCotangentToTensor R P A = LinearMap.id - Algebra.FormallyEtale.subsingleton_kaehlerDifferential 📋 Mathlib.RingTheory.Etale.Basic
{R : Type u} {A : Type v} {inst✝ : CommRing R} {inst✝¹ : CommRing A} {inst✝² : Algebra R A} [self : Algebra.FormallyEtale R A] : Subsingleton Ω[A⁄R] - Algebra.FormallyEtale.mk 📋 Mathlib.RingTheory.Etale.Basic
{R : Type u} {A : Type v} [CommRing R] [CommRing A] [Algebra R A] (subsingleton_kaehlerDifferential : Subsingleton Ω[A⁄R]) (subsingleton_h1Cotangent : Subsingleton (Algebra.H1Cotangent R A)) : Algebra.FormallyEtale R A - Algebra.formallyEtale_iff 📋 Mathlib.RingTheory.Etale.Basic
(R : Type u) (A : Type v) [CommRing R] [CommRing A] [Algebra R A] : Algebra.FormallyEtale R A ↔ Subsingleton Ω[A⁄R] ∧ Subsingleton (Algebra.H1Cotangent R A) - Algebra.H1Cotangent.δ 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
(R : Type u₁) (S : Type u₂) [CommRing R] [CommRing S] [Algebra R S] (T : Type u₃) [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] : Algebra.H1Cotangent S T →ₗ[T] TensorProduct S T Ω[S⁄R] - Algebra.Generators.H1Cotangent.δ 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) : Q.toExtension.H1Cotangent →ₗ[T] TensorProduct S T Ω[S⁄R] - Algebra.Generators.H1Cotangent.δ_eq_δ 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} {σ' : Type w₄} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) (P' : Algebra.Generators R S σ') : Algebra.Generators.H1Cotangent.δ Q P = Algebra.Generators.H1Cotangent.δ Q P' - Algebra.Generators.H1Cotangent.δAux 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
(R : Type u₁) {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} (Q : Algebra.Generators S T ι) : Q.Ring →ₗ[R] TensorProduct S T Ω[S⁄R] - Algebra.Generators.H1Cotangent.δ_comp_equiv 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {ι' : Type w₃} {σ : Type w₂} {σ' : Type w₄} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) (Q' : Algebra.Generators S T ι') (P' : Algebra.Generators R S σ') : Algebra.Generators.H1Cotangent.δ Q P ∘ₗ ↑(Algebra.Generators.H1Cotangent.equiv Q' Q) = Algebra.Generators.H1Cotangent.δ Q' P' - Algebra.Generators.H1Cotangent.δAux_X 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} (Q : Algebra.Generators S T ι) (i : ι) : (Algebra.Generators.H1Cotangent.δAux R Q) (MvPolynomial.X i) = 0 - Algebra.Generators.H1Cotangent.δAux_C 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} (Q : Algebra.Generators S T ι) (r : S) : (Algebra.Generators.H1Cotangent.δAux R Q) (MvPolynomial.C r) = 1 ⊗ₜ[S] (KaehlerDifferential.D R S) r - Algebra.H1Cotangent.exact_map_δ 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
(R : Type u₁) (S : Type u₂) [CommRing R] [CommRing S] [Algebra R S] (T : Type u₃) [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] : Function.Exact ⇑(Algebra.H1Cotangent.map R S T T) ⇑(Algebra.H1Cotangent.δ R S T) - Algebra.Generators.H1Cotangent.δAux_monomial 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} (Q : Algebra.Generators S T ι) (n : ι →₀ ℕ) (r : S) : (Algebra.Generators.H1Cotangent.δAux R Q) ((MvPolynomial.monomial n) r) = (n.prod fun x1 x2 => Q.val x1 ^ x2) ⊗ₜ[S] (KaehlerDifferential.D R S) r - Algebra.H1Cotangent.exact_δ_mapBaseChange 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
(R : Type u₁) (S : Type u₂) [CommRing R] [CommRing S] [Algebra R S] (T : Type u₃) [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] : Function.Exact ⇑(Algebra.H1Cotangent.δ R S T) ⇑(KaehlerDifferential.mapBaseChange R S T) - Algebra.Generators.H1Cotangent.exact_δ_map 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) : Function.Exact ⇑(Algebra.Generators.H1Cotangent.δ Q P) ⇑(KaehlerDifferential.mapBaseChange R S T) - Algebra.Generators.H1Cotangent.exact_map_δ' 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} {τ : Type w₅} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) (W : Algebra.Generators R T τ) (f : W.Hom Q) : Function.Exact ⇑(Algebra.Extension.H1Cotangent.map f.toExtensionHom) ⇑(Algebra.Generators.H1Cotangent.δ Q P) - Algebra.Generators.H1Cotangent.exact_map_δ 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) : Function.Exact ⇑(Algebra.Extension.H1Cotangent.map (Q.ofComp P).toExtensionHom) ⇑(Algebra.Generators.H1Cotangent.δ Q P) - Algebra.Generators.H1Cotangent.δ_map 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {ι' : Type w₃} {σ : Type w₂} {σ' : Type w₄} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) (Q' : Algebra.Generators S T ι') (P' : Algebra.Generators R S σ') (f : Q'.Hom Q) (x : Q'.toExtension.H1Cotangent) : (Algebra.Generators.H1Cotangent.δ Q P) ((Algebra.Extension.H1Cotangent.map f.toExtensionHom) x) = (Algebra.Generators.H1Cotangent.δ Q' P') x - Algebra.Generators.H1Cotangent.δAux_mul 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} (Q : Algebra.Generators S T ι) (x y : Q.Ring) : (Algebra.Generators.H1Cotangent.δAux R Q) (x * y) = x • (Algebra.Generators.H1Cotangent.δAux R Q) y + y • (Algebra.Generators.H1Cotangent.δAux R Q) x - Algebra.Generators.H1Cotangent.δ_C 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) {r : S} (hr : MvPolynomial.C r ∈ Q.ker) : (Algebra.Generators.H1Cotangent.δ Q P) ⟨Algebra.Extension.Cotangent.mk ⟨MvPolynomial.C r, hr⟩, ⋯⟩ = 1 ⊗ₜ[S] (KaehlerDifferential.D R S) r - Algebra.Generators.CotangentSpace.map_ofComp_surjective 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) : Function.Surjective ⇑(Algebra.Extension.CotangentSpace.map (Q.ofComp P).toExtensionHom) - Algebra.Generators.CotangentSpace.compEquiv 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) : (Q.comp P).toExtension.CotangentSpace ≃ₗ[T] Q.toExtension.CotangentSpace × TensorProduct S T P.toExtension.CotangentSpace - Algebra.Generators.H1Cotangent.δ_eq_δAux 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) (x : ↥Q.ker) (hx : Algebra.Extension.Cotangent.mk x ∈ Q.toExtension.cotangentComplex.ker) : (Algebra.Generators.H1Cotangent.δ Q P) ⟨Algebra.Extension.Cotangent.mk x, hx⟩ = (Algebra.Generators.H1Cotangent.δAux R Q) ↑x - Algebra.Generators.H1Cotangent.δAux_toAlgHom 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {ι' : Type w₃} {Q : Algebra.Generators S T ι} {Q' : Algebra.Generators S T ι'} (f : Q.Hom Q') (x : Q.Ring) : (Algebra.Generators.H1Cotangent.δAux R Q') (f.toAlgHom x) = (Algebra.Generators.H1Cotangent.δAux R Q) x + (Finsupp.linearCombination T (⇑(Algebra.Generators.H1Cotangent.δAux R Q') ∘ f.val)) (Q.cotangentSpaceBasis.repr (1 ⊗ₜ[Q.Ring] (KaehlerDifferential.D S Q.Ring) x)) - Algebra.Generators.H1Cotangent.map_comp_cotangentComplex_baseChange 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) : LinearMap.liftBaseChange T (Algebra.Extension.CotangentSpace.map (Q.toComp P).toExtensionHom) ∘ₗ LinearMap.baseChange T P.toExtension.cotangentComplex = (Q.comp P).toExtension.cotangentComplex ∘ₗ LinearMap.liftBaseChange T (Algebra.Extension.Cotangent.map (Q.toComp P).toExtensionHom) - Algebra.Generators.CotangentSpace.map_toComp_injective 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) : Function.Injective ⇑(LinearMap.liftBaseChange T (Algebra.Extension.CotangentSpace.map (Q.toComp P).toExtensionHom)) - Algebra.Generators.CotangentSpace.exact 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) : Function.Exact ⇑(LinearMap.liftBaseChange T (Algebra.Extension.CotangentSpace.map (Q.toComp P).toExtensionHom)) ⇑(Algebra.Extension.CotangentSpace.map (Q.ofComp P).toExtensionHom) - Algebra.Generators.CotangentSpace.fst_compEquiv 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) : LinearMap.fst T Q.toExtension.CotangentSpace (TensorProduct S T P.toExtension.CotangentSpace) ∘ₗ ↑(Algebra.Generators.CotangentSpace.compEquiv Q P) = Algebra.Extension.CotangentSpace.map (Q.ofComp P).toExtensionHom - Algebra.Generators.H1Cotangent.δ_eq 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) (x : Q.toExtension.H1Cotangent) (y : (Q.comp P).toExtension.Cotangent) (hy : (Algebra.Extension.Cotangent.map (Q.ofComp P).toExtensionHom) y = ↑x) (z : TensorProduct S T P.toExtension.CotangentSpace) (hz : (LinearMap.liftBaseChange T (Algebra.Extension.CotangentSpace.map (Q.toComp P).toExtensionHom)) z = (Q.comp P).toExtension.cotangentComplex y) : (Algebra.Generators.H1Cotangent.δ Q P) x = (LinearMap.baseChange T P.toExtension.toKaehler) z - Algebra.Generators.CotangentSpace.fst_compEquiv_apply 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) (x : (Q.comp P).toExtension.CotangentSpace) : ((Algebra.Generators.CotangentSpace.compEquiv Q P) x).1 = (Algebra.Extension.CotangentSpace.map (Q.ofComp P).toExtensionHom) x - Algebra.Generators.H1Cotangent.δAux_ofComp 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) (x : (Q.comp P).Ring) : (Algebra.Generators.H1Cotangent.δAux R Q) ((Q.ofComp P).toAlgHom x) = (LinearMap.baseChange T P.toExtension.toKaehler) ((Algebra.Generators.CotangentSpace.compEquiv Q P) (1 ⊗ₜ[(Q.comp P).Ring] (KaehlerDifferential.D R (Q.comp P).Ring) x)).2 - Algebra.Generators.CotangentSpace.compEquiv_symm_inr 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) : ↑(Algebra.Generators.CotangentSpace.compEquiv Q P).symm ∘ₗ LinearMap.inr T Q.toExtension.CotangentSpace (TensorProduct S T P.toExtension.CotangentSpace) = LinearMap.liftBaseChange T (Algebra.Extension.CotangentSpace.map (Q.toComp P).toExtensionHom) - Algebra.Generators.CotangentSpace.compEquiv_symm_zero 📋 Mathlib.RingTheory.Kaehler.JacobiZariski
{R : Type u₁} {S : Type u₂} [CommRing R] [CommRing S] [Algebra R S] {T : Type u₃} [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {ι : Type w₁} {σ : Type w₂} (Q : Algebra.Generators S T ι) (P : Algebra.Generators R S σ) (x : TensorProduct S T P.toExtension.CotangentSpace) : (Algebra.Generators.CotangentSpace.compEquiv Q P).symm (0, x) = (LinearMap.liftBaseChange T (Algebra.Extension.CotangentSpace.map (Q.toComp P).toExtensionHom)) x - KaehlerDifferential.isLocalizedModule_map 📋 Mathlib.RingTheory.Etale.Kaehler
(R : Type u_1) (S : Type u_2) (T : Type u_3) [CommRing R] [CommRing S] [CommRing T] [Algebra R S] [Algebra R T] [Algebra S T] [IsScalarTower R S T] (M : Submonoid S) [IsLocalization M T] : IsLocalizedModule M (KaehlerDifferential.map R R S T) - KaehlerDifferential.tensorKaehlerEquivOfFormallyEtale 📋 Mathlib.RingTheory.Etale.Kaehler
(R : Type u_1) (S : Type u_2) (T : Type u_3) [CommRing R] [CommRing S] [CommRing T] [Algebra R S] [Algebra R T] [Algebra S T] [IsScalarTower R S T] [Algebra.FormallyEtale S T] : TensorProduct S T Ω[S⁄R] ≃ₗ[T] Ω[T⁄R] - KaehlerDifferential.isBaseChange_of_formallyEtale 📋 Mathlib.RingTheory.Etale.Kaehler
(R : Type u_1) (S : Type u_2) (T : Type u_3) [CommRing R] [CommRing S] [CommRing T] [Algebra R S] [Algebra R T] [Algebra S T] [IsScalarTower R S T] [Algebra.FormallyEtale S T] : IsBaseChange T (KaehlerDifferential.map R R S T) - KaehlerDifferential.span_range_map_derivation_of_isLocalization 📋 Mathlib.RingTheory.Etale.Kaehler
(R : Type u_1) (S : Type u_2) (T : Type u_3) [CommRing R] [CommRing S] [CommRing T] [Algebra R S] [Algebra R T] [Algebra S T] [IsScalarTower R S T] (M : Submonoid S) [IsLocalization M T] : Submodule.span T (Set.range (⇑(KaehlerDifferential.map R R S T) ∘ ⇑(KaehlerDifferential.D R S))) = ⊤ - KaehlerDifferential.tensorKaehlerEquivOfFormallyEtale_apply 📋 Mathlib.RingTheory.Etale.Kaehler
(R : Type u_1) (S : Type u_2) (T : Type u_3) [CommRing R] [CommRing S] [CommRing T] [Algebra R S] [Algebra R T] [Algebra S T] [IsScalarTower R S T] [Algebra.FormallyEtale S T] (x : TensorProduct S T Ω[S⁄R]) : (KaehlerDifferential.tensorKaehlerEquivOfFormallyEtale R S T) x = (KaehlerDifferential.mapBaseChange R S T) x - KaehlerDifferential.tensorKaehlerEquivOfFormallyEtale_symm_D_algebraMap 📋 Mathlib.RingTheory.Etale.Kaehler
(R : Type u_1) (S : Type u_2) (T : Type u_3) [CommRing R] [CommRing S] [CommRing T] [Algebra R S] [Algebra R T] [Algebra S T] [IsScalarTower R S T] [Algebra.FormallyEtale S T] (s : S) : (KaehlerDifferential.tensorKaehlerEquivOfFormallyEtale R S T).symm ((KaehlerDifferential.D R T) ((algebraMap S T) s)) = 1 ⊗ₜ[S] (KaehlerDifferential.D R S) s - Algebra.Extension.tensorCotangentSpaceOfFormallyEtale 📋 Mathlib.RingTheory.Etale.Kaehler
{R : Type u_1} {S : Type u_2} {T : Type u_3} [CommRing R] [CommRing S] [CommRing T] [Algebra R S] [Algebra R T] [Algebra S T] [IsScalarTower R S T] {P : Algebra.Extension R S} {Q : Algebra.Extension R T} (f : P.Hom Q) (H : f.toRingHom.FormallyEtale) : TensorProduct S T P.CotangentSpace ≃ₗ[T] Q.CotangentSpace - Algebra.unramifiedLocus_eq_compl_support 📋 Mathlib.RingTheory.Unramified.Locus
{R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] : Algebra.unramifiedLocus R A = (Module.support A Ω[A⁄R])ᶜ - Algebra.smoothLocus_eq_compl_support_inter 📋 Mathlib.RingTheory.Smooth.Locus
{R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] [Algebra.EssFiniteType R A] : Algebra.smoothLocus R A = (Module.support A (Algebra.H1Cotangent R A))ᶜ ∩ Module.freeLocus A Ω[A⁄R] - KaehlerDifferential.mulActionBaseChange 📋 Mathlib.RingTheory.Kaehler.TensorProduct
(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]) - KaehlerDifferential.moduleBaseChange 📋 Mathlib.RingTheory.Kaehler.TensorProduct
(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]) - KaehlerDifferential.moduleBaseChange' 📋 Mathlib.RingTheory.Kaehler.TensorProduct
(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]) - KaehlerDifferential.tensorKaehlerEquiv 📋 Mathlib.RingTheory.Kaehler.TensorProduct
(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] : TensorProduct A B Ω[A⁄R] ≃ₗ[B] Ω[B⁄S] - KaehlerDifferential.derivationTensorProduct 📋 Mathlib.RingTheory.Kaehler.TensorProduct
(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]) - KaehlerDifferential.tensorKaehlerEquivBase 📋 Mathlib.RingTheory.Kaehler.TensorProduct
(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] : TensorProduct R S Ω[A⁄R] ≃ₗ[S] Ω[B⁄S] - KaehlerDifferential.mulActionBaseChange_smul_tmul 📋 Mathlib.RingTheory.Kaehler.TensorProduct
(R : Type u_1) (S : Type u_2) (A : Type u_3) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [Algebra R A] (a : A) (s : S) (x : Ω[A⁄R]) : a • s ⊗ₜ[R] x = s ⊗ₜ[R] (a • x) - KaehlerDifferential.mulActionBaseChange_smul_zero 📋 Mathlib.RingTheory.Kaehler.TensorProduct
(R : Type u_1) (S : Type u_2) (A : Type u_3) [CommRing R] [CommRing S] [Algebra R S] [CommRing A] [Algebra R A] (a : A) : a • 0 = 0
About
Loogle searches Lean and Mathlib definitions and theorems.
You can use Loogle from within the Lean4 VSCode language extension
using the Loogle command from the command palette. You can also try the
#loogle command from LeanSearchClient,
the CLI version, the Loogle
VS Code extension, the lean.nvim
integration or the Zulip bot.
Usage
Loogle finds definitions and lemmas in various ways:
By constant:
🔍Real.sin
finds all lemmas whose statement somehow mentions the sine function.By lemma name substring:
🔍"differ"
finds all lemmas that have"differ"somewhere in their lemma name.By subexpression:
🔍_ * (_ ^ _)
finds all lemmas whose statements somewhere include a product where the second argument is raised to some power.The pattern can also be non-linear, as in
🔍Real.sqrt ?a * Real.sqrt ?aIf the pattern has parameters, they are matched in any order. Both of these will find
List.map:
🔍(?a -> ?b) -> List ?a -> List ?b
🔍List ?a -> (?a -> ?b) -> List ?bBy main conclusion:
🔍|- tsum _ = _ * tsum _
finds all lemmas where the conclusion (the subexpression to the right of all→and∀) has the given shape.As before, if the pattern has parameters, they are matched against the hypotheses of the lemma in any order; for example,
🔍|- _ < _ → tsum _ < tsum _
will findtsum_lt_tsumeven though the hypothesisf i < g iis not the last.You can filter for definitions vs theorems: Using
⊢ (_ : Type _)finds all definitions which provide data while⊢ (_ : Prop)finds all theorems (and definitions of proofs).
If you pass more than one such search filter, separated by commas
Loogle will return lemmas which match all of them. The
search
🔍 Real.sin, "two", tsum, _ * _, _ ^ _, |- _ < _ → _
would find all lemmas which mention the constants Real.sin
and tsum, have "two" as a substring of the
lemma name, include a product and a power somewhere in the type,
and have a hypothesis of the form _ < _ (if
there were any such lemmas). Metavariables (?a) are
assigned independently in each filter.
The #lucky button will directly send you to the
documentation of the first hit.
Source code
You can find the source code for this service at https://github.com/nomeata/loogle. The https://loogle.lean-lang.org/ service is provided by the Lean FRO. Please review the Lean FRO Terms of Use and Privacy Policy.
This is Loogle revision 9f11169 serving mathlib revision ce5dd8c