Loogle!
Result
Found 129 declarations mentioning Algebra.Generators.toExtension.
- Algebra.Generators.toExtension 📋 Mathlib.RingTheory.Extension.Generators
{R : Type u} {S : Type v} {ι : Type w} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S ι) : Algebra.Extension R S - Algebra.Generators.toExtension_Ring 📋 Mathlib.RingTheory.Extension.Generators
{R : Type u} {S : Type v} {ι : Type w} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S ι) : P.toExtension.Ring = P.Ring - Algebra.Extension.defaultHom 📋 Mathlib.RingTheory.Extension.Generators
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : (Algebra.Generators.self R S).toExtension.Hom P - Algebra.Generators.toExtension_σ 📋 Mathlib.RingTheory.Extension.Generators
{R : Type u} {S : Type v} {ι : Type w} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S ι) (a✝ : S) : P.toExtension.σ a✝ = P.σ a✝ - Algebra.Generators.toExtension_commRing 📋 Mathlib.RingTheory.Extension.Generators
{R : Type u} {S : Type v} {ι : Type w} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S ι) : P.toExtension.commRing = AddMonoidAlgebra.commRing - Algebra.Generators.toExtension_algebra₂ 📋 Mathlib.RingTheory.Extension.Generators
{R : Type u} {S : Type v} {ι : Type w} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S ι) : P.toExtension.algebra₂ = P.instRing - Algebra.Generators.toExtension_algebra₁ 📋 Mathlib.RingTheory.Extension.Generators
{R : Type u} {S : Type v} {ι : Type w} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S ι) : P.toExtension.algebra₁ = AddMonoidAlgebra.algebra - Algebra.Generators.Hom.toExtensionHom_id 📋 Mathlib.RingTheory.Extension.Generators
{R : Type u} {S : Type v} {ι : Type w} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S ι) : (Algebra.Generators.Hom.id P).toExtensionHom = Algebra.Extension.Hom.id P.toExtension - Algebra.Generators.Hom.toExtensionHom 📋 Mathlib.RingTheory.Extension.Generators
{R : Type u} {S : Type v} {ι : Type w} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S ι} {R' : Type u_1} {S' : Type u_2} {ι' : Type u_3} [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') : P.toExtension.Hom P'.toExtension - Algebra.Generators.Hom.toExtensionHom_toRingHom 📋 Mathlib.RingTheory.Extension.Generators
{R : Type u} {S : Type v} {ι : Type w} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S ι} {R' : Type u_1} {S' : Type u_2} {ι' : Type u_3} [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') : f.toExtensionHom.toRingHom = f.toAlgHom.toRingHom - Algebra.Generators.baseChangeFromBaseChange 📋 Mathlib.RingTheory.Extension.Generators
{R : Type u} {S : Type v} {ι : Type w} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S ι) (T : Type u_2) [CommRing T] [Algebra R T] : P.toExtension.baseChange.Hom (Algebra.Generators.baseChange T P).toExtension - Algebra.Generators.baseChangeToBaseChange 📋 Mathlib.RingTheory.Extension.Generators
{R : Type u} {S : Type v} {ι : Type w} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S ι) (T : Type u_2) [CommRing T] [Algebra R T] : (Algebra.Generators.baseChange T P).toExtension.Hom P.toExtension.baseChange - Algebra.Extension.defaultHom_toRingHom_apply 📋 Mathlib.RingTheory.Extension.Generators
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) (p : MvPolynomial S R) : (Algebra.Extension.defaultHom R S P).toRingHom p = MvPolynomial.eval₂ (algebraMap R P.Ring) P.σ p - Algebra.Generators.Hom.toExtensionHom_comp 📋 Mathlib.RingTheory.Extension.Generators
{R : Type u} {S : Type v} {ι : Type w} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S ι) {R' : Type u_1} {S' : Type u_2} {ι' : Type u_3} [CommRing R'] [CommRing S'] [Algebra R' S'] (P' : Algebra.Generators R' S' ι') {R'' : Type u_4} {S'' : Type u_5} {ι'' : Type u_6} [CommRing R''] [CommRing S''] [Algebra R'' S''] (P'' : Algebra.Generators R'' S'' ι'') [Algebra R R'] [Algebra R' R''] [Algebra R' S''] [Algebra S S'] [Algebra S' S''] [Algebra S S''] [Algebra R S'] [IsScalarTower R S S'] [Algebra R R''] [Algebra R S''] [IsScalarTower R R'' S''] [IsScalarTower R S S''] [IsScalarTower R' R'' S''] [IsScalarTower R' S' S''] [IsScalarTower S S' S''] [IsScalarTower R R' R''] [IsScalarTower R R' S'] (f : P'.Hom P'') (g : P.Hom P') : (f.comp g).toExtensionHom = f.toExtensionHom.comp g.toExtensionHom - Algebra.Generators.Hom.toExtensionHom_toAlgHom_apply 📋 Mathlib.RingTheory.Extension.Generators
{R : Type u} {S : Type v} {ι : Type w} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S ι) {R' : Type u_1} {S' : Type u_2} {ι' : Type u_3} [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') (x : P.toExtension.Ring) : f.toExtensionHom.toAlgHom x = f.toAlgHom x - Algebra.Generators.baseChangeFromBaseChange_apply 📋 Mathlib.RingTheory.Extension.Generators
{R : Type u} {S : Type v} {ι : Type w} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S ι) {T : Type u_2} [CommRing T] [Algebra R T] (x : P.toExtension.baseChange.Ring) : (P.baseChangeFromBaseChange T).toRingHom x = (MvPolynomial.algebraTensorAlgEquiv R T) x - Algebra.Generators.baseChangeToBaseChange_apply 📋 Mathlib.RingTheory.Extension.Generators
{R : Type u} {S : Type v} {ι : Type w} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S ι) {T : Type u_2} [CommRing T] [Algebra R T] (x : (Algebra.Generators.baseChange T P).toExtension.Ring) : (P.baseChangeToBaseChange T).toRingHom x = (MvPolynomial.algebraTensorAlgEquiv R T).symm x - Algebra.Generators.cotangentRestrict 📋 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 ι) {σ : Type u_1} {u : σ → ι} (hu : Function.Injective u) : P.toExtension.Cotangent →ₗ[S] σ →₀ S - 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.H1Cotangent.mapEquiv 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (S' : Type u_2) [CommRing S'] [Algebra R S'] (e : S ≃ₐ[R] S') : Algebra.H1Cotangent R S ≃ₗ[R] Algebra.H1Cotangent R S' - Algebra.Generators.equivH1Cotangent 📋 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 ι) : P.toExtension.H1Cotangent ≃ₗ[S] Algebra.H1Cotangent R S - Algebra.Generators.H1Cotangent.equiv 📋 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 ι') : P.toExtension.H1Cotangent ≃ₗ[S] P'.toExtension.H1Cotangent - Algebra.H1Cotangent.map 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (S' : Type u_2) [CommRing S'] [Algebra R S'] (T : Type w) [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] [Algebra S' T] [IsScalarTower R S' T] : Algebra.H1Cotangent R S' →ₗ[S'] Algebra.H1Cotangent S T - 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.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.cotangentRestrict_mk 📋 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 ι) {σ : Type u_1} {u : σ → ι} (hu : Function.Injective u) (x : ↥P.ker) : ⇑((P.cotangentRestrict hu) (Algebra.Extension.Cotangent.mk x)) = fun j => (MvPolynomial.aeval P.val) ((MvPolynomial.pderiv (u j)) ↑x) - 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.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.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.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.Presentation.differentials.hom₁ 📋 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 ι σ) : (σ →₀ S) →ₗ[S] pres.toExtension.Cotangent - Algebra.Presentation.differentials.surjective_hom₁ 📋 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 ι σ) : Function.Surjective ⇑(Algebra.Presentation.differentials.hom₁ pres) - Algebra.Presentation.differentials.hom₁_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 : σ) : ((Algebra.Presentation.differentials.hom₁ pres) fun₀ | r => 1) = Algebra.Extension.Cotangent.mk ⟨pres.relation r, ⋯⟩ - 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.Extension.equivH1CotangentOfFormallySmooth 📋 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] : P.H1Cotangent ≃ₗ[A] 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.Cotangent.surjective_map_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 σ) : Function.Surjective ⇑(Algebra.Extension.Cotangent.map (Q.ofComp P).toExtensionHom) - 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.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.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.Cotangent.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.Cotangent.map (Q.toComp P).toExtensionHom)) ⇑(Algebra.Extension.Cotangent.map (Q.ofComp P).toExtensionHom) - 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.liftBaseChange_range_le 📋 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.H1Cotangent.map (Q.toComp P).toExtensionHom)).range ≤ (Algebra.Extension.H1Cotangent.map (Q.ofComp P).toExtensionHom).ker - Algebra.H1Cotangent.exact_liftBaseChange_map_of_flat 📋 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] [Module.Flat S T] : Function.Exact ⇑(LinearMap.liftBaseChange T (Algebra.H1Cotangent.map R R S T)) ⇑(Algebra.H1Cotangent.map R S T T) - Algebra.Generators.H1Cotangent.exact_liftBaseChange_map_of_flat' 📋 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 τ) [Module.Flat S T] (f : W.Hom Q) (g : P.Hom W) : Function.Exact ⇑(LinearMap.liftBaseChange T (Algebra.Extension.H1Cotangent.map g.toExtensionHom)) ⇑(Algebra.Extension.H1Cotangent.map f.toExtensionHom) - Algebra.Generators.H1Cotangent.exact_liftBaseChange_map_of_flat 📋 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 σ) [Module.Flat S T] : Function.Exact ⇑(LinearMap.liftBaseChange T (Algebra.Extension.H1Cotangent.map (Q.toComp P).toExtensionHom)) ⇑(Algebra.Extension.H1Cotangent.map (Q.ofComp P).toExtensionHom) - 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 - Algebra.H1Cotangent.isLocalizedModule 📋 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 (Algebra.H1Cotangent.map R R S T) - Algebra.tensorH1CotangentOfIsLocalization 📋 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] : TensorProduct S T (Algebra.H1Cotangent R S) ≃ₗ[T] Algebra.H1Cotangent R T - Algebra.tensorH1CotangentOfIsLocalization_toLinearMap 📋 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] : ↑(Algebra.tensorH1CotangentOfIsLocalization R T M) = LinearMap.liftBaseChange T (Algebra.H1Cotangent.map R R S T) - 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] - Algebra.etaleLocus_eq_compl_support 📋 Mathlib.RingTheory.Etale.Locus
{R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] : Algebra.etaleLocus R A = (Module.support A Ω[A⁄R])ᶜ ∩ (Module.support A (Algebra.H1Cotangent R A))ᶜ - Algebra.Generators.cMulXSubOneCotangent 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} (S : Type u_2) [CommRing R] [CommRing S] [Algebra R S] (r : R) [IsLocalization.Away r S] : (Algebra.Generators.localizationAway S r).toExtension.Cotangent - Algebra.SubmersivePresentation.subsingleton_h1Cotangent 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} {ι : Type u_3} {σ : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [Finite σ] (P : Algebra.SubmersivePresentation R S ι σ) : Subsingleton P.toExtension.H1Cotangent - Algebra.instFreeCotangentToExtensionUnitLocalizationAway 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] (r : R) [IsLocalization.Away r S] : Module.Free S (Algebra.Generators.localizationAway S r).toExtension.Cotangent - Algebra.Generators.basisCotangentAway 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} (S : Type u_2) [CommRing R] [CommRing S] [Algebra R S] (r : R) [IsLocalization.Away r S] : Module.Basis Unit S (Algebra.Generators.localizationAway S r).toExtension.Cotangent - Algebra.SubmersivePresentation.free_cotangent 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} {ι : Type u_3} {σ : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [Finite σ] (P : Algebra.SubmersivePresentation R S ι σ) : Module.Free S P.toExtension.Cotangent - Algebra.SubmersivePresentation.basisCotangent 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} {ι : Type u_3} {σ : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [Finite σ] (P : Algebra.SubmersivePresentation R S ι σ) : Module.Basis σ S P.toExtension.Cotangent - Algebra.PreSubmersivePresentation.cotangentComplexAux 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} {ι : Type u_3} {σ : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [Finite σ] (P : Algebra.PreSubmersivePresentation R S ι σ) : P.toExtension.Cotangent →ₗ[S] σ → S - Algebra.SubmersivePresentation.cotangentEquiv 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} {ι : Type u_3} {σ : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [Finite σ] (P : Algebra.SubmersivePresentation R S ι σ) : P.toExtension.Cotangent ≃ₗ[S] σ → S - Algebra.Generators.basisCotangentAway_apply 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] (r : R) [IsLocalization.Away r S] (x : Unit) : (Algebra.Generators.basisCotangentAway S r) x = Algebra.Generators.cMulXSubOneCotangent S r - Algebra.SubmersivePresentation.basisCotangent_localizationAway_apply 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] (r : R) [IsLocalization.Away r S] (x : Unit) : (Algebra.SubmersivePresentation.localizationAway S r).basisCotangent x = Algebra.Generators.cMulXSubOneCotangent S r - Algebra.SubmersivePresentation.cotangentComplexAux_injective 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} {ι : Type u_3} {σ : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [Finite σ] (P : Algebra.SubmersivePresentation R S ι σ) : Function.Injective ⇑P.cotangentComplexAux - Algebra.SubmersivePresentation.cotangentComplexAux_surjective 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} {ι : Type u_3} {σ : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [Finite σ] (P : Algebra.SubmersivePresentation R S ι σ) : Function.Surjective ⇑P.cotangentComplexAux - Algebra.SubmersivePresentation.cotangentEquiv_apply 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} {ι : Type u_3} {σ : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [Finite σ] (P : Algebra.SubmersivePresentation R S ι σ) (x : P.toExtension.Cotangent) (a✝ : σ) : P.cotangentEquiv x a✝ = P.cotangentComplexAux x a✝ - Algebra.SubmersivePresentation.sectionCotangent 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} {ι : Type u_3} {σ : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [Finite σ] (P : Algebra.SubmersivePresentation R S ι σ) : P.toExtension.CotangentSpace →ₗ[S] P.toExtension.Cotangent - Algebra.SubmersivePresentation.sectionCotangent_comp 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} {ι : Type u_3} {σ : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [Finite σ] (P : Algebra.SubmersivePresentation R S ι σ) : P.sectionCotangent ∘ₗ P.toExtension.cotangentComplex = LinearMap.id - Algebra.Generators.cMulXSubOneCotangent_eq 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] (r : R) [IsLocalization.Away r S] : Algebra.Generators.cMulXSubOneCotangent S r = Algebra.Extension.Cotangent.mk ⟨MvPolynomial.C r * MvPolynomial.X () - 1, ⋯⟩ - Algebra.SubmersivePresentation.cotangentComplex_injective 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} {ι : Type u_3} {σ : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [Finite σ] (P : Algebra.SubmersivePresentation R S ι σ) : Function.Injective ⇑P.toExtension.cotangentComplex - Algebra.PreSubmersivePresentation.cotangentComplexAux_apply 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} {ι : Type u_3} {σ : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [Finite σ] (P : Algebra.PreSubmersivePresentation R S ι σ) (x : ↥P.ker) (i : σ) : P.cotangentComplexAux (Algebra.Extension.Cotangent.mk x) i = (MvPolynomial.aeval P.val) ((MvPolynomial.pderiv (P.map i)) ↑x) - Algebra.PreSubmersivePresentation.cotangentComplexAux_zero_iff 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} {ι : Type u_3} {σ : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [Finite σ] {P : Algebra.PreSubmersivePresentation R S ι σ} (x : ↥P.ker) : P.cotangentComplexAux (Algebra.Extension.Cotangent.mk x) = 0 ↔ ∀ (i : σ), (MvPolynomial.aeval P.val) ((MvPolynomial.pderiv (P.map i)) ↑x) = 0 - Algebra.SubmersivePresentation.basisCotangent_apply 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} {ι : Type u_3} {σ : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [Finite σ] (P : Algebra.SubmersivePresentation R S ι σ) (r : σ) : P.basisCotangent r = Algebra.Extension.Cotangent.mk ⟨P.relation r, ⋯⟩ - Algebra.SubmersivePresentation.sectionCotangent_zero_of_notMem_range 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} {ι : Type u_3} {σ : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [Finite σ] (P : Algebra.SubmersivePresentation R S ι σ) (i : ι) (hi : i ∉ Set.range P.map) : P.sectionCotangent (P.cotangentSpaceBasis i) = 0 - Algebra.SubmersivePresentation.sectionCotangent_eq_iff 📋 Mathlib.RingTheory.Smooth.StandardSmoothCotangent
{R : Type u_1} {S : Type u_2} {ι : Type u_3} {σ : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [Finite σ] (P : Algebra.SubmersivePresentation R S ι σ) (x : P.toExtension.CotangentSpace) (y : P.toExtension.Cotangent) : P.sectionCotangent x = y ↔ ∀ (i : σ), (P.cotangentSpaceBasis.repr x) (P.map i) = P.cotangentComplexAux y i - Algebra.Generators.cotangentCompAwaySec 📋 Mathlib.RingTheory.Extension.Cotangent.LocalizationAway
{R : Type u_1} {S : Type u_2} {T : Type u_3} {ι : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] (g : S) [IsLocalization.Away g T] (P : Algebra.Generators R S ι) (x : ((Algebra.Generators.localizationAway T g).comp P).toExtension.Cotangent) : (Algebra.Generators.localizationAway T g).toExtension.Cotangent →ₗ[T] ((Algebra.Generators.localizationAway T g).comp P).toExtension.Cotangent - Algebra.Generators.cotangentCompAwaySec_apply 📋 Mathlib.RingTheory.Extension.Cotangent.LocalizationAway
{R : Type u_1} {S : Type u_2} {T : Type u_3} {ι : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] (g : S) [IsLocalization.Away g T] (P : Algebra.Generators R S ι) (x : ((Algebra.Generators.localizationAway T g).comp P).toExtension.Cotangent) : (Algebra.Generators.cotangentCompAwaySec g P x) (Algebra.Generators.cMulXSubOneCotangent T g) = x - Algebra.Generators.map_comp_cotangentCompAwaySec 📋 Mathlib.RingTheory.Extension.Cotangent.LocalizationAway
{R : Type u_1} {S : Type u_2} {T : Type u_3} {ι : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] (g : S) [IsLocalization.Away g T] (P : Algebra.Generators R S ι) {x : ((Algebra.Generators.localizationAway T g).comp P).toExtension.Cotangent} (hx : (Algebra.Extension.Cotangent.map ((Algebra.Generators.localizationAway T g).ofComp P).toExtensionHom) x = Algebra.Generators.cMulXSubOneCotangent T g) : Algebra.Extension.Cotangent.map ((Algebra.Generators.localizationAway T g).ofComp P).toExtensionHom ∘ₗ Algebra.Generators.cotangentCompAwaySec g P x = LinearMap.id - Algebra.Generators.cotangentCompLocalizationAwayEquiv 📋 Mathlib.RingTheory.Extension.Cotangent.LocalizationAway
{R : Type u_1} {S : Type u_2} {T : Type u_3} {ι : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] (g : S) [IsLocalization.Away g T] (P : Algebra.Generators R S ι) {x : ((Algebra.Generators.localizationAway T g).comp P).toExtension.Cotangent} (hx : (Algebra.Extension.Cotangent.map ((Algebra.Generators.localizationAway T g).ofComp P).toExtensionHom) x = Algebra.Generators.cMulXSubOneCotangent T g) : ((Algebra.Generators.localizationAway T g).comp P).toExtension.Cotangent ≃ₗ[T] TensorProduct S T P.toExtension.Cotangent × (Algebra.Generators.localizationAway T g).toExtension.Cotangent - Algebra.Generators.liftBaseChange_injective_of_isLocalizationAway 📋 Mathlib.RingTheory.Extension.Cotangent.LocalizationAway
{R : Type u_1} {S : Type u_2} {T : Type u_3} {ι : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] (g : S) [IsLocalization.Away g T] (P : Algebra.Generators R S ι) : Function.Injective ⇑(LinearMap.liftBaseChange T (Algebra.Extension.Cotangent.map ((Algebra.Generators.localizationAway T g).toComp P).toExtensionHom)) - Algebra.Generators.snd_comp_cotangentCompLocalizationAwayEquiv 📋 Mathlib.RingTheory.Extension.Cotangent.LocalizationAway
{R : Type u_1} {S : Type u_2} {T : Type u_3} {ι : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] (g : S) [IsLocalization.Away g T] (P : Algebra.Generators R S ι) {x : ((Algebra.Generators.localizationAway T g).comp P).toExtension.Cotangent} (hx : (Algebra.Extension.Cotangent.map ((Algebra.Generators.localizationAway T g).ofComp P).toExtensionHom) x = Algebra.Generators.cMulXSubOneCotangent T g) : LinearMap.snd T (TensorProduct S T P.toExtension.Cotangent) (Algebra.Generators.localizationAway T g).toExtension.Cotangent ∘ₗ ↑(Algebra.Generators.cotangentCompLocalizationAwayEquiv g P hx) = Algebra.Extension.Cotangent.map ((Algebra.Generators.localizationAway T g).ofComp P).toExtensionHom - Algebra.Generators.snd_cotangentCompLocalizationAwayEquiv 📋 Mathlib.RingTheory.Extension.Cotangent.LocalizationAway
{R : Type u_1} {S : Type u_2} {T : Type u_3} {ι : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] (g : S) [IsLocalization.Away g T] (P : Algebra.Generators R S ι) {x : ((Algebra.Generators.localizationAway T g).comp P).toExtension.Cotangent} (hx : (Algebra.Extension.Cotangent.map ((Algebra.Generators.localizationAway T g).ofComp P).toExtensionHom) x = Algebra.Generators.cMulXSubOneCotangent T g) (a : ((Algebra.Generators.localizationAway T g).comp P).toExtension.Cotangent) : ((Algebra.Generators.cotangentCompLocalizationAwayEquiv g P hx) a).2 = (Algebra.Extension.Cotangent.map ((Algebra.Generators.localizationAway T g).ofComp P).toExtensionHom) a - Algebra.Generators.cotangentCompLocalizationAwayEquiv_symm_comp_inl 📋 Mathlib.RingTheory.Extension.Cotangent.LocalizationAway
{R : Type u_1} {S : Type u_2} {T : Type u_3} {ι : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] (g : S) [IsLocalization.Away g T] (P : Algebra.Generators R S ι) {x : ((Algebra.Generators.localizationAway T g).comp P).toExtension.Cotangent} (hx : (Algebra.Extension.Cotangent.map ((Algebra.Generators.localizationAway T g).ofComp P).toExtensionHom) x = Algebra.Generators.cMulXSubOneCotangent T g) : ↑(Algebra.Generators.cotangentCompLocalizationAwayEquiv g P hx).symm ∘ₗ LinearMap.inl T (TensorProduct S T P.toExtension.Cotangent) (Algebra.Generators.localizationAway T g).toExtension.Cotangent = LinearMap.liftBaseChange T (Algebra.Extension.Cotangent.map ((Algebra.Generators.localizationAway T g).toComp P).toExtensionHom) - Algebra.Generators.cotangentCompLocalizationAwayEquiv_symm_inr 📋 Mathlib.RingTheory.Extension.Cotangent.LocalizationAway
{R : Type u_1} {S : Type u_2} {T : Type u_3} {ι : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] (g : S) [IsLocalization.Away g T] (P : Algebra.Generators R S ι) {x : ((Algebra.Generators.localizationAway T g).comp P).toExtension.Cotangent} (hx : (Algebra.Extension.Cotangent.map ((Algebra.Generators.localizationAway T g).ofComp P).toExtensionHom) x = Algebra.Generators.cMulXSubOneCotangent T g) : (Algebra.Generators.cotangentCompLocalizationAwayEquiv g P hx).symm (0, Algebra.Generators.cMulXSubOneCotangent T g) = x - Algebra.Generators.cotangentCompLocalizationAwayEquiv_symm_inl 📋 Mathlib.RingTheory.Extension.Cotangent.LocalizationAway
{R : Type u_1} {S : Type u_2} {T : Type u_3} {ι : Type u_4} [CommRing R] [CommRing S] [Algebra R S] [CommRing T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] (g : S) [IsLocalization.Away g T] (P : Algebra.Generators R S ι) {x : ((Algebra.Generators.localizationAway T g).comp P).toExtension.Cotangent} (hx : (Algebra.Extension.Cotangent.map ((Algebra.Generators.localizationAway T g).ofComp P).toExtensionHom) x = Algebra.Generators.cMulXSubOneCotangent T g) (a : TensorProduct S T P.toExtension.Cotangent) : (Algebra.Generators.cotangentCompLocalizationAwayEquiv g P hx).symm (a, 0) = (LinearMap.liftBaseChange T (Algebra.Extension.Cotangent.map ((Algebra.Generators.localizationAway T g).toComp P).toExtensionHom)) a - _private.Mathlib.RingTheory.Extension.Cotangent.Basis.0.Algebra.Generators.PresentationOfFreeCotangent.Aux.g 📋 Mathlib.RingTheory.Extension.Cotangent.Basis
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] {ι : Type u_4} {P : Algebra.Generators R S ι} {σ : Type u_5} {b : Module.Basis σ S P.toExtension.Cotangent} (self : Algebra.Generators.PresentationOfFreeCotangent.Aux✝ P b) : P.Ring - _private.Mathlib.RingTheory.Extension.Cotangent.Basis.0.Algebra.Generators.PresentationOfFreeCotangent.Aux.hgmem 📋 Mathlib.RingTheory.Extension.Cotangent.Basis
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] {ι : Type u_4} {P : Algebra.Generators R S ι} {σ : Type u_5} {b : Module.Basis σ S P.toExtension.Cotangent} (self : Algebra.Generators.PresentationOfFreeCotangent.Aux✝ P b) : Algebra.Generators.PresentationOfFreeCotangent.Aux.g✝ self - 1 ∈ P.ker - _private.Mathlib.RingTheory.Extension.Cotangent.Basis.0.Algebra.Generators.PresentationOfFreeCotangent.Aux.f 📋 Mathlib.RingTheory.Extension.Cotangent.Basis
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] {ι : Type u_4} {P : Algebra.Generators R S ι} {σ : Type u_5} {b : Module.Basis σ S P.toExtension.Cotangent} (self : Algebra.Generators.PresentationOfFreeCotangent.Aux✝ P b) : P.toExtension.Cotangent → ↥P.toExtension.ker - _private.Mathlib.RingTheory.Extension.Cotangent.Basis.0.Algebra.Generators.PresentationOfFreeCotangent.Aux.hg 📋 Mathlib.RingTheory.Extension.Cotangent.Basis
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] {ι : Type u_4} {P : Algebra.Generators R S ι} {σ : Type u_5} {b : Module.Basis σ S P.toExtension.Cotangent} (self : Algebra.Generators.PresentationOfFreeCotangent.Aux✝ P b) : Algebra.Generators.PresentationOfFreeCotangent.Aux.g✝ self • P.ker ≤ Ideal.span (Set.range (Subtype.val ∘ Algebra.Generators.PresentationOfFreeCotangent.Aux.f✝ self ∘ ⇑b)) - _private.Mathlib.RingTheory.Extension.Cotangent.Basis.0.Algebra.Generators.PresentationOfFreeCotangent.Aux.hf 📋 Mathlib.RingTheory.Extension.Cotangent.Basis
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] {ι : Type u_4} {P : Algebra.Generators R S ι} {σ : Type u_5} {b : Module.Basis σ S P.toExtension.Cotangent} (self : Algebra.Generators.PresentationOfFreeCotangent.Aux✝ P b) (b✝ : P.toExtension.Cotangent) : Algebra.Extension.Cotangent.mk (Algebra.Generators.PresentationOfFreeCotangent.Aux.f✝ self b✝) = b✝ - Algebra.Generators.exists_presentation_of_basis_cotangent 📋 Mathlib.RingTheory.Extension.Cotangent.Basis
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] [Algebra.FinitePresentation R S] {α : Type u_4} (P : Algebra.Generators R S α) [Finite α] {σ : Type u_5} (b₀ : Module.Basis σ S P.toExtension.Cotangent) : ∃ P' b, P'.val ∘ Sum.inr = P.val ∧ ∀ (r : Unit ⊕ σ), b r = Algebra.Extension.Cotangent.mk ⟨P'.relation r, ⋯⟩ - Algebra.Generators.exists_presentation_of_free_cotangent 📋 Mathlib.RingTheory.Extension.Cotangent.Basis
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] [Algebra.FinitePresentation R S] {α : Type u_4} (P : Algebra.Generators R S α) [Finite α] [Module.Free S P.toExtension.Cotangent] : ∃ P' b, P'.val ∘ Sum.inr = P.val ∧ ∀ (r : Unit ⊕ Fin (Module.finrank S P.toExtension.Cotangent)), b r = Algebra.Extension.Cotangent.mk ⟨P'.relation r, ⋯⟩ - Algebra.Generators.cotangentRestrict_bijective_of_basis_kaehlerDifferential 📋 Mathlib.RingTheory.Extension.Cotangent.Free
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] {ι : Type u_3} {σ : Type u_4} {κ : Type u_5} (P : Algebra.Generators R S ι) {u : σ → ι} (hu : Function.Injective u) {v : κ → ι} (huv : IsCompl (Set.range v) (Set.range u)) (b : Module.Basis κ S Ω[S⁄R]) (hb : ∀ (k : κ), b k = (KaehlerDifferential.D R S) (P.val (v k))) [Subsingleton (Algebra.H1Cotangent R S)] : Function.Bijective ⇑(P.cotangentRestrict hu) - Algebra.Generators.disjoint_ker_toKaehler_of_linearIndependent 📋 Mathlib.RingTheory.Extension.Cotangent.Free
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] {ι : Type u_3} {κ : Type u_5} (P : Algebra.Generators R S ι) {v : κ → ι} (h : LinearIndependent S fun k => (KaehlerDifferential.D R S) (P.val (v k))) : Disjoint P.toExtension.toKaehler.ker (Submodule.span S (Set.range fun x => P.cotangentSpaceBasis (v x))) - Algebra.Generators.cotangentRestrict_bijective_of_isCompl 📋 Mathlib.RingTheory.Extension.Cotangent.Free
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] {ι : Type u_3} {σ : Type u_4} {κ : Type u_5} (P : Algebra.Generators R S ι) {u : σ → ι} (hu : Function.Injective u) {v : κ → ι} (huv : IsCompl (Set.range v) (Set.range u)) (hm : Submodule.span S (Set.range fun i => (KaehlerDifferential.D R S) (P.val (v i))) = ⊤) (hk : Disjoint P.toExtension.toKaehler.ker (Submodule.span S (Set.range fun x => P.cotangentSpaceBasis (v x)))) [Subsingleton (Algebra.H1Cotangent R S)] : Function.Bijective ⇑(P.cotangentRestrict hu) - Algebra.PreSubmersivePresentation.isUnit_jacobian_of_cotangentRestrict_bijective 📋 Mathlib.RingTheory.Extension.Cotangent.Free
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] {ι : Type u_3} {σ : Type u_4} (P : Algebra.PreSubmersivePresentation R S ι σ) [Finite σ] (b : Module.Basis σ S P.toExtension.Cotangent) (hb : ∀ (r : σ), b r = Algebra.Extension.Cotangent.mk ⟨P.relation r, ⋯⟩) (h : Function.Bijective ⇑(P.cotangentRestrict ⋯)) : IsUnit P.jacobian - Algebra.tensorH1CotangentOfFlat 📋 Mathlib.RingTheory.Extension.Cotangent.BaseChange
(R : Type u_1) (S : Type u_2) [CommRing R] [CommRing S] [Algebra R S] (T : Type u_3) [CommRing T] [Algebra R T] [Module.Flat R T] : TensorProduct R T (Algebra.H1Cotangent R S) ≃ₗ[T] Algebra.H1Cotangent T (TensorProduct R T S) - Algebra.tensorH1CotangentOfFlat_tmul 📋 Mathlib.RingTheory.Extension.Cotangent.BaseChange
(R : Type u_1) (S : Type u_2) [CommRing R] [CommRing S] [Algebra R S] (T : Type u_3) [CommRing T] [Algebra R T] [Module.Flat R T] (t : T) (x : Algebra.H1Cotangent R S) : (Algebra.tensorH1CotangentOfFlat R S T) (t ⊗ₜ[R] x) = t • (Algebra.H1Cotangent.map R T S (TensorProduct R T S)) x - Algebra.Extension.h1CotangentEquivCotangent 📋 Mathlib.RingTheory.Extension.ExtendScalars
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : Algebra.H1Cotangent P.Ring S ≃ₗ[S] P.Cotangent - Algebra.Extension.h1CotangentExtendScalarsEquiv 📋 Mathlib.RingTheory.Extension.ExtendScalars
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : P.extendScalars.H1Cotangent ≃ₗ[S] Algebra.H1Cotangent P.Ring S - Algebra.Extension.H1Cotangent.map_defaultHom_surjective 📋 Mathlib.RingTheory.Extension.ExtendScalars
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : Function.Surjective ⇑(Algebra.Extension.H1Cotangent.map (Algebra.Extension.defaultHom R S P)) - Algebra.Extension.h1CotangentEquivCotangent_comp_map 📋 Mathlib.RingTheory.Extension.ExtendScalars
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : ↑P.h1CotangentEquivCotangent ∘ₗ Algebra.H1Cotangent.map R P.Ring S S = Algebra.Extension.h1Cotangentι ∘ₗ Algebra.Extension.H1Cotangent.map (Algebra.Extension.defaultHom R S P) - Algebra.Extension.h1CotangentExtendScalarsEquiv_toLinearMap 📋 Mathlib.RingTheory.Extension.ExtendScalars
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : ↑P.h1CotangentExtendScalarsEquiv = Algebra.Extension.H1Cotangent.map (Algebra.Extension.Hom.ofAlgHom (Algebra.ofId P.Ring (Algebra.Generators.self P.Ring S).Ring) ⋯) - Algebra.Extension.h1CotangentExtendScalarsEquiv_symm_toLinearMap 📋 Mathlib.RingTheory.Extension.ExtendScalars
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : ↑P.h1CotangentExtendScalarsEquiv.symm = Algebra.Extension.H1Cotangent.map (Algebra.Extension.defaultHom P.Ring S P.extendScalars) - Algebra.Extension.cotangentComplex_comp_h1CotangentEquivCotangent 📋 Mathlib.RingTheory.Extension.ExtendScalars
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : P.cotangentComplex ∘ₗ ↑P.h1CotangentEquivCotangent = Algebra.H1Cotangent.δ R P.Ring S
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