Loogle!
Result
Found 139 declarations mentioning Algebra.Extension.Cotangent.
- Algebra.Extension.Cotangent 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : Type w - Algebra.Extension.instAddCommGroupCotangent 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : AddCommGroup P.Cotangent - Algebra.Extension.Cotangent.module 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} : Module S P.Cotangent - Algebra.Extension.Cotangent.of 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x : P.ker.Cotangent) : P.Cotangent - Algebra.Extension.Cotangent.val 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x : P.Cotangent) : P.ker.Cotangent - Algebra.Extension.Cotangent.of_val 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x : P.Cotangent) : Algebra.Extension.Cotangent.of x.val = x - Algebra.Extension.instModuleCotangent 📋 Mathlib.RingTheory.Extension.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 - Algebra.Extension.Cotangent.ext 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {x y : P.Cotangent} (e : x.val = y.val) : x = y - Algebra.Extension.Cotangent.ext_iff 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {x y : P.Cotangent} : x = y ↔ x.val = y.val - Algebra.Extension.Cotangent.finite 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (hP : P.ker.FG) : Module.Finite S P.Cotangent - Algebra.Extension.Cotangent.map 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u_1} {S' : Type u_2} [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.Cotangent →ₗ[S] P'.Cotangent - Algebra.Extension.Cotangent.map_id 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} : Algebra.Extension.Cotangent.map (Algebra.Extension.Hom.id P) = LinearMap.id - Algebra.Extension.Cotangent.of_zero 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} : Algebra.Extension.Cotangent.of 0 = 0 - Algebra.Extension.Cotangent.val_zero 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} : Algebra.Extension.Cotangent.val 0 = 0 - Algebra.Extension.Cotangent.val_sub 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x y : P.Cotangent) : (x - y).val = x.val - y.val - Algebra.Extension.Cotangent.val_add 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x y : P.Cotangent) : (x + y).val = x.val + y.val - Algebra.Extension.Cotangent.of_add 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (w z : P.ker.Cotangent) : Algebra.Extension.Cotangent.of (w + z) = Algebra.Extension.Cotangent.of w + Algebra.Extension.Cotangent.of z - Algebra.Extension.cotangentEquivCotangentKer 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} : P.Cotangent ≃ₗ[P.Ring] P.ker.Cotangent - Algebra.Extension.Cotangent.val_smul 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (r : S) (x : P.Cotangent) : (r • x).val = P.σ r • x.val - Algebra.Extension.Cotangent.val_smul'' 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (r : R) (x : P.Cotangent) : (r • x).val = r • x.val - Algebra.Extension.Cotangent.val_smul''' 📋 Mathlib.RingTheory.Extension.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] (r : R₀) (x : P.Cotangent) : (r • x).val = P.σ ((algebraMap R₀ S) r) • x.val - Algebra.Extension.instIsScalarTowerCotangent 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R₁ : Type u_1} {R₂ : Type u_2} [CommRing R₁] [CommRing R₂] [Algebra R₁ S] [Algebra R₂ S] [Algebra R₁ R₂] [IsScalarTower R₁ R₂ S] : IsScalarTower R₁ R₂ P.Cotangent - Algebra.Extension.Cotangent.val_smul' 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (r : P.Ring) (x : P.Cotangent) : (r • x).val = r • x.val - Algebra.Extension.Cotangent.mk 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} : ↥P.ker →ₗ[P.Ring] P.Cotangent - Algebra.Extension.Cotangent.map_surjective_of_comap_eq 📋 Mathlib.RingTheory.Extension.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'} (h : Function.Surjective ⇑f) (eq : Ideal.comap f.toRingHom P'.ker = RingHom.ker f.toRingHom ⊔ P.ker) : Function.Surjective ⇑(Algebra.Extension.Cotangent.map f) - Algebra.Extension.cotangentEquivCotangentKer_apply 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x : P.Cotangent) : Algebra.Extension.cotangentEquivCotangentKer x = x.val - Algebra.Extension.Cotangent.map_comp 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u_1} {S' : Type u_2} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} {R'' : Type u_4} {S'' : Type u_5} [CommRing R''] [CommRing S''] [Algebra R'' S''] (P'' : Algebra.Extension 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 R' S'] [Algebra R R''] [IsScalarTower R R' R''] [IsScalarTower R' R'' S''] [Algebra R S''] [IsScalarTower R R'' S''] [IsScalarTower S S' S''] (f : P.Hom P') (g : P'.Hom P'') : Algebra.Extension.Cotangent.map (g.comp f) = ↑S (Algebra.Extension.Cotangent.map g) ∘ₗ Algebra.Extension.Cotangent.map f - Algebra.Extension.cotangentEquiv 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : TensorProduct P.Ring S ↥P.ker ≃ₗ[S] P.Cotangent - Algebra.Extension.cotangentEquivCotangentKer_symm_apply 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x : P.ker.Cotangent) : Algebra.Extension.cotangentEquivCotangentKer.symm x = Algebra.Extension.Cotangent.of x - Algebra.Extension.Cotangent.mk_surjective 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} : Function.Surjective ⇑Algebra.Extension.Cotangent.mk - Algebra.Extension.Cotangent.span_eq_top_of_span_eq_ker 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {ι : Type u_1} (s : ι → P.Ring) (hs : Ideal.span (Set.range s) = P.ker) : Submodule.span S (Set.range fun i => Algebra.Extension.Cotangent.mk ⟨s i, ⋯⟩) = ⊤ - Algebra.Extension.Cotangent.mk_eq_zero_iff 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x : ↥P.ker) : Algebra.Extension.Cotangent.mk x = 0 ↔ ↑x ∈ P.ker ^ 2 - Algebra.Extension.Cotangent.map_ker_of_surjective 📋 Mathlib.RingTheory.Extension.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'} (h : Function.Surjective ⇑f) (eq : Ideal.comap f.toRingHom P'.ker = RingHom.ker f.toRingHom ⊔ P.ker) : Submodule.restrictScalars P.Ring (Algebra.Extension.Cotangent.map f).ker = Submodule.map Algebra.Extension.Cotangent.mk (Submodule.comap (Submodule.subtype P.ker) (RingHom.ker f.toRingHom ⊓ P.ker)) - Algebra.Extension.Cotangent.val_mk 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x : ↥P.ker) : (Algebra.Extension.Cotangent.mk x).val = P.ker.toCotangent x - Algebra.Extension.Cotangent.map_mk 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u_1} {S' : Type u_2} [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.ker) : (Algebra.Extension.Cotangent.map f) (Algebra.Extension.Cotangent.mk x) = Algebra.Extension.Cotangent.mk ⟨f.toAlgHom ↑x, ⋯⟩ - Algebra.Extension.Cotangent.mk_eq_mk_iff_sub_mem 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x y : ↥P.ker) : Algebra.Extension.Cotangent.mk x = Algebra.Extension.Cotangent.mk y ↔ ↑x - ↑y ∈ P.ker ^ 2 - Algebra.Extension.Cotangent.ker_mk 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : Algebra.Extension.Cotangent.mk.ker = P.ker • ⊤ - Algebra.Extension.contangentEquiv_tmul 📋 Mathlib.RingTheory.Extension.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (s : S) (x : ↥P.ker) : P.cotangentEquiv (s ⊗ₜ[P.Ring] x) = s • Algebra.Extension.Cotangent.mk 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.Extension.h1Cotangentι 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} : P.H1Cotangent →ₗ[S] P.Cotangent - Algebra.Extension.h1Cotangentι_injective 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} : Function.Injective ⇑Algebra.Extension.h1Cotangentι - Algebra.Extension.instSMulH1CotangentOfIsScalarTowerCotangent 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u_3} {S : Type u_4} [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] : SMul R₀ P.H1Cotangent - Algebra.Extension.instModuleH1CotangentOfIsScalarTowerCotangent 📋 Mathlib.RingTheory.Extension.Cotangent.Basic
{R : Type u_3} {S : Type u_4} [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] : Module R₀ P.H1Cotangent - 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.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.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.instIsScalarTowerH1CotangentOfCotangent 📋 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} {R₂ : Type u_2} [CommRing R₁] [CommRing R₂] [Algebra R₁ R₂] [Algebra R₁ S] [Algebra R₂ S] [Module R₁ P.Cotangent] [IsScalarTower R₁ S P.Cotangent] [Module R₂ P.Cotangent] [IsScalarTower R₂ S P.Cotangent] [IsScalarTower R₁ R₂ P.Cotangent] : IsScalarTower R₁ R₂ P.H1Cotangent - 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.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.Cotangent.map_comp_h1Cotangentι 📋 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.Cotangent.map f ∘ₗ Algebra.Extension.h1Cotangentι = ↑S Algebra.Extension.h1Cotangentι ∘ₗ Algebra.Extension.H1Cotangent.map f - 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.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.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.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) - 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.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.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.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.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.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.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.Cotangent.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.Cotangent.map P.toInfinitesimal) - 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.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.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.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.δ_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.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.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.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.Extension.tensorCotangentInvFun 📋 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] {P : Algebra.Extension R S} {Q : Algebra.Extension R T} (f : P.Hom Q) [alg : Algebra P.Ring Q.Ring] (halg : algebraMap P.Ring Q.Ring = f.toRingHom) (H : Function.Bijective ⇑(LinearMap.liftBaseChange Q.Ring (f.mapKer halg))) : Q.Cotangent →+ TensorProduct S T P.Cotangent - Algebra.Extension.tensorCotangent 📋 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] {P : Algebra.Extension R S} {Q : Algebra.Extension R T} (f : P.Hom Q) [alg : Algebra P.Ring Q.Ring] (halg : algebraMap P.Ring Q.Ring = f.toRingHom) (H : Function.Bijective ⇑(LinearMap.liftBaseChange Q.Ring (f.mapKer halg))) : TensorProduct S T P.Cotangent ≃ₗ[T] Q.Cotangent - Algebra.Extension.tensorCotangentInvFun_smul_mk 📋 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] {P : Algebra.Extension R S} {Q : Algebra.Extension R T} (f : P.Hom Q) [alg : Algebra P.Ring Q.Ring] (halg : algebraMap P.Ring Q.Ring = f.toRingHom) (H : Function.Bijective ⇑(LinearMap.liftBaseChange Q.Ring (f.mapKer halg))) (x : Q.Ring) (y : ↥P.ker) : (Algebra.Extension.tensorCotangentInvFun f halg H) (x • Algebra.Extension.Cotangent.mk ⟨f.toRingHom ↑y, ⋯⟩) = x • 1 ⊗ₜ[S] Algebra.Extension.Cotangent.mk y - Algebra.FormallySmooth.iff_injective_lTensor_residueField 📋 Mathlib.RingTheory.Smooth.Local
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [IsLocalRing S] [Algebra R S] (P : Algebra.Extension R S) [Algebra.FormallySmooth R P.Ring] [Module.Free P.Ring Ω[P.Ring⁄R]] [Module.Finite P.Ring Ω[P.Ring⁄R]] (h' : P.ker.FG) : Algebra.FormallySmooth R S ↔ Function.Injective ⇑(LinearMap.lTensor (IsLocalRing.ResidueField S) P.cotangentComplex) - 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.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.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.Extension.tensorCotangentOfFlat 📋 Mathlib.RingTheory.Extension.Cotangent.BaseChange
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) (T : Type u_3) [CommRing T] [Algebra R T] [Module.Flat R T] : TensorProduct R T P.Cotangent ≃ₗ[T] P.baseChange.Cotangent - Algebra.Extension.tensorCotangentOfFlat_tmul 📋 Mathlib.RingTheory.Extension.Cotangent.BaseChange
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) (T : Type u_3) [CommRing T] [Algebra R T] [Module.Flat R T] (t : T) (x : P.Cotangent) : (P.tensorCotangentOfFlat T) (t ⊗ₜ[R] x) = t • (Algebra.Extension.Cotangent.map (Algebra.Extension.toBaseChange T)) x - Algebra.Extension.tensorToH1Cotangent_tmul 📋 Mathlib.RingTheory.Extension.Cotangent.BaseChange
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) (T : Type u_3) [CommRing T] [Algebra R T] (t : T) (x : P.H1Cotangent) : ↑((P.tensorToH1Cotangent T) (t ⊗ₜ[R] x)) = t • (Algebra.Extension.Cotangent.map (Algebra.Extension.toBaseChange T)) ↑x - Algebra.Extension.cotangentExtendScalarsEquiv 📋 Mathlib.RingTheory.Extension.ExtendScalars
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) : P.extendScalars.Cotangent ≃ₗ[S] P.Cotangent - Algebra.Extension.h1CotangentEquivOfSurjective 📋 Mathlib.RingTheory.Extension.ExtendScalars
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) (h : Function.Surjective ⇑(algebraMap R P.Ring)) : P.H1Cotangent ≃ₗ[S] P.Cotangent - 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.h1CotangentEquivOfSurjective_toLinearMap 📋 Mathlib.RingTheory.Extension.ExtendScalars
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) (h : Function.Surjective ⇑(algebraMap R P.Ring)) : ↑(P.h1CotangentEquivOfSurjective h) = Algebra.Extension.h1Cotangentι - Algebra.Extension.cotangentExtendScalarsEquiv_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.cotangentExtendScalarsEquiv.symm = Algebra.Extension.Cotangent.map P.toExtendScalars - 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.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