ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Basis.localizationLocalization_repr_algebraMap
@[simp]
theorem Basis.localizationLocalization_repr_algebraMap {ι : Type*} (b : Basis ι R A) (x i) :
    (b.localizationLocalization Rₛ S Aₛ).repr (algebraMap A Aₛ x) i =
      algebraMap R Rₛ (b.repr x i) 
Arguments: {R : Type u_3} (Rₛ : Type u_4) [CommSemiring R] [CommRing Rₛ] [Algebra R Rₛ] (S : Submonoid R) [hT : IsLocalization S Rₛ] {A : Type u_5} [CommRing A] [Algebra R A] (Aₛ : Type u_6) [CommRing Aₛ] [Algebra A Aₛ] [Algebra Rₛ Aₛ] [Algebra R Aₛ] [IsScalarTower R Rₛ Aₛ] [IsScalarTower R A Aₛ] [hA : IsLocalization (Algebra.algebraMapSubmonoid A S) Aₛ] {ι : Type u_7} (b : Basis ι R A) (x : A) (i : ι)
Goal: ((Basis.localizationLocalization Rₛ S Aₛ b).repr ((algebraMap A Aₛ) x)) i = (algebraMap R Rₛ) ((b.repr x) i)
-- Basis.localizationLocalization_span
theorem Basis.localizationLocalization_span {ι : Type*} (b : Basis ι R A) :
    Submodule.span R (Set.range (b.localizationLocalization Rₛ S Aₛ)) =
      LinearMap.range (IsScalarTower.toAlgHom R A Aₛ) 
Arguments: {R : Type u_3} (Rₛ : Type u_4) [CommSemiring R] [CommRing Rₛ] [Algebra R Rₛ] (S : Submonoid R) [hT : IsLocalization S Rₛ] {A : Type u_5} [CommRing A] [Algebra R A] (Aₛ : Type u_6) [CommRing Aₛ] [Algebra A Aₛ] [Algebra Rₛ Aₛ] [Algebra R Aₛ] [IsScalarTower R Rₛ Aₛ] [IsScalarTower R A Aₛ] [hA : IsLocalization (Algebra.algebraMapSubmonoid A S) Aₛ] {ι : Type u_7} (b : Basis ι R A)
Goal: Submodule.span R (Set.range ⇑(Basis.localizationLocalization Rₛ S Aₛ b)) =
  LinearMap.range (IsScalarTower.toAlgHom R A Aₛ)
-- LinearIndependent.iff_fractionRing
theorem LinearIndependent.iff_fractionRing {ι : Type*} {b : ι → V} :
    LinearIndependent R b ↔ LinearIndependent K b 
Arguments: (R : Type u_3) (K : Type u_4) [CommRing R] [Field K] [Algebra R K] [IsFractionRing R K] {V : Type u_5} [AddCommGroup V] [Module R V] [Module K V] [IsScalarTower R K V] {ι : Type u_6} {b : ι → V}
Goal: LinearIndependent R b ↔ LinearIndependent K b
-- LinearMap.restrictScalars_extendScalarsOfIsLocalization
@[simp] lemma LinearMap.restrictScalars_extendScalarsOfIsLocalization (f : M →ₗ[R] N) :
    (f.extendScalarsOfIsLocalization S A).restrictScalars R = f 
Arguments: {R : Type u_3} [CommSemiring R] (S : Submonoid R) (A : Type u_4) [CommSemiring A] [Algebra R A] [IsLocalization S A] {M : Type u_5} {N : Type u_6} [AddCommMonoid M] [Module R M] [Module A M] [IsScalarTower R A M] [AddCommMonoid N] [Module R N] [Module A N] [IsScalarTower R A N] (f : M →ₗ[R] N)
Goal: ↑R (LinearMap.extendScalarsOfIsLocalization S A f) = f
-- LinearMap.extendScalarsOfIsLocalization_apply
@[simp] lemma LinearMap.extendScalarsOfIsLocalization_apply (f : M →ₗ[A] N) :
    f.extendScalarsOfIsLocalization S A = f 
Arguments: {R : Type u_3} [CommSemiring R] (S : Submonoid R) (A : Type u_4) [CommSemiring A] [Algebra R A] [IsLocalization S A] {M : Type u_5} {N : Type u_6} [AddCommMonoid M] [Module R M] [Module A M] [IsScalarTower R A M] [AddCommMonoid N] [Module R N] [Module A N] [IsScalarTower R A N] (f : M →ₗ[A] N)
Goal: LinearMap.extendScalarsOfIsLocalization S A (↑R f) = f
-- LinearMap.extendScalarsOfIsLocalization_apply'
@[simp] lemma LinearMap.extendScalarsOfIsLocalization_apply' (f : M →ₗ[R] N) (x : M) :
    (f.extendScalarsOfIsLocalization S A) x = f x 
Arguments: {R : Type u_3} [CommSemiring R] (S : Submonoid R) (A : Type u_4) [CommSemiring A] [Algebra R A] [IsLocalization S A] {M : Type u_5} {N : Type u_6} [AddCommMonoid M] [Module R M] [Module A M] [IsScalarTower R A M] [AddCommMonoid N] [Module R N] [Module A N] [IsScalarTower R A N] (f : M →ₗ[R] N) (x : M)
Goal: (LinearMap.extendScalarsOfIsLocalization S A f) x = f x
-- IsLocalization.mem_localizationLocalizationSubmodule
@[simp]
theorem mem_localizationLocalizationSubmodule {x : R} :
    x ∈ localizationLocalizationSubmodule M N ↔
      ∃ (y : N) (z : M), algebraMap R S x = y * algebraMap R S z 
Arguments: {R : Type u_1} [CommSemiring R] {M : Submonoid R} {S : Type u_2} [CommSemiring S] [Algebra R S] {N : Submonoid S} {x : R}
Goal: x ∈ IsLocalization.localizationLocalizationSubmodule M N ↔ ∃ y z, (algebraMap R S) x = ↑y * (algebraMap R S) ↑z
-- IsLocalization.localization_localization_map_units
theorem localization_localization_map_units [IsLocalization N T]
    (y : localizationLocalizationSubmodule M N) : IsUnit (algebraMap R T y) 
Arguments: {R : Type u_1} [CommSemiring R] (M : Submonoid R) {S : Type u_2} [CommSemiring S] [Algebra R S] (N : Submonoid S) (T : Type u_4) [CommSemiring T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] [IsLocalization M S] [IsLocalization N T] (y : ↥(IsLocalization.localizationLocalizationSubmodule M N))
Goal: IsUnit ((algebraMap R T) ↑y)
-- IsLocalization.localization_localization_surj
theorem localization_localization_surj [IsLocalization N T] (x : T) :
    ∃ y : R × localizationLocalizationSubmodule M N,
        x * algebraMap R T y.2 = algebraMap R T y.1 
Arguments: {R : Type u_1} [CommSemiring R] (M : Submonoid R) {S : Type u_2} [CommSemiring S] [Algebra R S] (N : Submonoid S) (T : Type u_4) [CommSemiring T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] [IsLocalization M S] [IsLocalization N T] (x : T)
Goal: ∃ y, x * (algebraMap R T) ↑y.2 = (algebraMap R T) y.1
-- IsLocalization.localization_localization_exists_of_eq
theorem localization_localization_exists_of_eq [IsLocalization N T] (x y : R) :
    algebraMap R T x = algebraMap R T y →
      ∃ c : localizationLocalizationSubmodule M N, ↑c * x = ↑c * y 
Arguments: {R : Type u_1} [CommSemiring R] (M : Submonoid R) {S : Type u_2} [CommSemiring S] [Algebra R S] (N : Submonoid S) (T : Type u_4) [CommSemiring T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] [IsLocalization M S] [IsLocalization N T] (x y : R)
Goal: (algebraMap R T) x = (algebraMap R T) y → ∃ c, ↑c * x = ↑c * y
-- IsLocalization.localization_localization_isLocalization
theorem localization_localization_isLocalization [IsLocalization N T] :
    IsLocalization (localizationLocalizationSubmodule M N) T 
Arguments: {R : Type u_1} [CommSemiring R] (M : Submonoid R) {S : Type u_2} [CommSemiring S] [Algebra R S] (N : Submonoid S) (T : Type u_4) [CommSemiring T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] [IsLocalization M S] [IsLocalization N T]
Goal: IsLocalization (IsLocalization.localizationLocalizationSubmodule M N) T
-- IsLocalization.localization_localization_isLocalization_of_has_all_units
theorem localization_localization_isLocalization_of_has_all_units [IsLocalization N T]
    (H : ∀ x : S, IsUnit x → x ∈ N) : IsLocalization (N.comap (algebraMap R S)) T 
Arguments: {R : Type u_1} [CommSemiring R] (M : Submonoid R) {S : Type u_2} [CommSemiring S] [Algebra R S] (N : Submonoid S) (T : Type u_4) [CommSemiring T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] [IsLocalization M S] [IsLocalization N T] (H : ∀ (x : S), IsUnit x → x ∈ N)
Goal: IsLocalization (Submonoid.comap (algebraMap R S) N) T
-- IsLocalization.isLocalization_isLocalization_atPrime_isLocalization
theorem isLocalization_isLocalization_atPrime_isLocalization (p : Ideal S) [Hp : p.IsPrime]
    [IsLocalization.AtPrime T p] : IsLocalization.AtPrime T (p.comap (algebraMap R S)) 
Arguments: {R : Type u_1} [CommSemiring R] (M : Submonoid R) {S : Type u_2} [CommSemiring S] [Algebra R S] (T : Type u_4) [CommSemiring T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] [IsLocalization M S] (p : Ideal S) [Hp : p.IsPrime] [IsLocalization.AtPrime T p]
Goal: IsLocalization.AtPrime T (Ideal.comap (algebraMap R S) p)
-- IsLocalization.localization_isScalarTower_of_submonoid_le
theorem localization_isScalarTower_of_submonoid_le (M N : Submonoid R) (h : M ≤ N)
    [IsLocalization M S] [IsLocalization N T] :
    @IsScalarTower R S T _ (localizationAlgebraOfSubmonoidLe S T M N h).toSMul _ 
Arguments: {R : Type u_1} [CommSemiring R] (S : Type u_2) [CommSemiring S] [Algebra R S] (T : Type u_4) [CommSemiring T] [Algebra R T] (M N : Submonoid R) (h : M ≤ N) [IsLocalization M S] [IsLocalization N T]
Goal: IsScalarTower R S T
-- IsLocalization.isLocalization_of_submonoid_le
theorem isLocalization_of_submonoid_le (M N : Submonoid R) (h : M ≤ N) [IsLocalization M S]
    [IsLocalization N T] [Algebra S T] [IsScalarTower R S T] :
    IsLocalization (N.map (algebraMap R S)) T 
Arguments: {R : Type u_1} [CommSemiring R] (S : Type u_2) [CommSemiring S] [Algebra R S] (T : Type u_4) [CommSemiring T] [Algebra R T] (M N : Submonoid R) (h : M ≤ N) [IsLocalization M S] [IsLocalization N T] [Algebra S T] [IsScalarTower R S T]
Goal: IsLocalization (Submonoid.map (algebraMap R S) N) T
-- IsLocalization.isLocalization_of_is_exists_mul_mem
theorem isLocalization_of_is_exists_mul_mem (M N : Submonoid R) [IsLocalization M S] (h : M ≤ N)
    (h' : ∀ x : N, ∃ m : R, m * x ∈ M) : IsLocalization N S 
Arguments: {R : Type u_1} [CommSemiring R] (S : Type u_2) [CommSemiring S] [Algebra R S] (M N : Submonoid R) [IsLocalization M S] (h : M ≤ N) (h' : ∀ (x : ↥N), ∃ m, m * ↑x ∈ M)
Goal: IsLocalization N S
-- IsFractionRing.isFractionRing_of_isLocalization
theorem isFractionRing_of_isLocalization (S T : Type*) [CommRing S] [CommRing T] [Algebra R S]
    [Algebra R T] [Algebra S T] [IsScalarTower R S T] [IsLocalization M S] [IsFractionRing R T]
    (hM : M ≤ nonZeroDivisors R) : IsFractionRing S T 
Arguments: {R : Type u_1} [CommRing R] (M : Submonoid R) (S : Type u_3) (T : Type u_4) [CommRing S] [CommRing T] [Algebra R S] [Algebra R T] [Algebra S T] [IsScalarTower R S T] [IsLocalization M S] [IsFractionRing R T] (hM : M ≤ nonZeroDivisors R)
Goal: IsFractionRing S T
-- IsFractionRing.isFractionRing_of_isDomain_of_isLocalization
theorem isFractionRing_of_isDomain_of_isLocalization [IsDomain R] (S T : Type*) [CommRing S]
    [CommRing T] [Algebra R S] [Algebra R T] [Algebra S T] [IsScalarTower R S T]
    [IsLocalization M S] [IsFractionRing R T] : IsFractionRing S T 
Arguments: {R : Type u_1} [CommRing R] (M : Submonoid R) [IsDomain R] (S : Type u_3) (T : Type u_4) [CommRing S] [CommRing T] [Algebra R S] [Algebra R T] [Algebra S T] [IsScalarTower R S T] [IsLocalization M S] [IsFractionRing R T]
Goal: IsFractionRing S T
-- Algebra.FormallyUnramified.iff_subsingleton_kaehlerDifferential
theorem FormallyUnramified.iff_subsingleton_kaehlerDifferential :
    FormallyUnramified R S ↔ Subsingleton (Ω[S⁄R]) 
Arguments: {R S : Type u} [CommRing R] [CommRing S] [Algebra R S]
Goal: Algebra.FormallyUnramified R S ↔ Subsingleton (Ω[S⁄R])
-- Algebra.leftMulMatrix_complex
theorem Algebra.leftMulMatrix_complex (z : ℂ) :
    Algebra.leftMulMatrix Complex.basisOneI z = !![z.re, -z.im; z.im, z.re] 
Arguments: (z : ℂ)
Goal: (Algebra.leftMulMatrix Complex.basisOneI) z = !![z.re, -z.im; z.im, z.re]
-- Algebra.trace_complex_apply
theorem Algebra.trace_complex_apply (z : ℂ) : Algebra.trace ℝ ℂ z = 2 * z.re 
Arguments: (z : ℂ)
Goal: (Algebra.trace ℝ ℂ) z = 2 * z.re
-- Algebra.norm_complex_apply
theorem Algebra.norm_complex_apply (z : ℂ) : Algebra.norm ℝ z = Complex.normSq z 
Arguments: (z : ℂ)
Goal: (Algebra.norm ℝ) z = Complex.normSq z
-- Algebra.norm_complex_eq
theorem Algebra.norm_complex_eq : Algebra.norm ℝ = normSq.toMonoidHom 
Goal: Algebra.norm ℝ = ↑Complex.normSq
-- Algebra.Generators.cotangentSpaceBasis_repr_tmul
@[simp]
lemma cotangentSpaceBasis_repr_tmul (r x i) :
    P.cotangentSpaceBasis.repr (r ⊗ₜ .D _ _ x) i = r * aeval P.val (pderiv i x) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S) (r : S) (x : P.Ring) (i : P.vars)
Goal: (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
lemma cotangentSpaceBasis_repr_one_tmul (x i) :
    P.cotangentSpaceBasis.repr (1 ⊗ₜ .D _ _ x) i = aeval P.val (pderiv i x) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S) (x : P.Ring) (i : P.vars)
Goal: (P.cotangentSpaceBasis.repr (1 ⊗ₜ[P.Ring] (KaehlerDifferential.D R P.Ring) x)) i =
  (MvPolynomial.aeval P.val) ((MvPolynomial.pderiv i) x)
-- Algebra.Generators.cotangentSpaceBasis_apply
lemma cotangentSpaceBasis_apply i :
    P.cotangentSpaceBasis i = 1 ⊗ₜ .D _ _ (.X i) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S) (i : P.vars)
Goal: P.cotangentSpaceBasis i = 1 ⊗ₜ[P.Ring] (KaehlerDifferential.D R P.Ring) (MvPolynomial.X i)
-- Algebra.Generators.cotangentComplex_mk
@[simp]
lemma cotangentComplex_mk (x) : P.cotangentComplex (.mk x) = 1 ⊗ₜ .D _ _ x 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Generators R S) (x : ↥P.ker)
Goal: P.cotangentComplex (Algebra.Generators.Cotangent.mk x) = 1 ⊗ₜ[P.Ring] (KaehlerDifferential.D R P.Ring) ↑x
-- Algebra.Generators.CotangentSpace.map_tmul
@[simp]
lemma map_tmul (f : Hom P P') (x y) :
    CotangentSpace.map f (x ⊗ₜ .D _ _ y) = (algebraMap _ _ x) ⊗ₜ .D _ _ (f.toAlgHom y) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S} {R' : Type u'} {S' : Type v'} [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 : S) (y : P.Ring)
Goal: (Algebra.Generators.CotangentSpace.map f) (x ⊗ₜ[P.Ring] (KaehlerDifferential.D R P.Ring) y) =
  (algebraMap S S') x ⊗ₜ[P'.Ring] (KaehlerDifferential.D R' P'.Ring) (f.toAlgHom y)
-- Algebra.Generators.CotangentSpace.repr_map
@[simp]
lemma repr_map (f : Hom P P') (i j) :
    P'.cotangentSpaceBasis.repr (CotangentSpace.map f (P.cotangentSpaceBasis i)) j =
      aeval P'.val (pderiv j (f.val i)) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S} {R' : Type u'} {S' : Type v'} [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 : P.vars) (j : P'.vars)
Goal: (P'.cotangentSpaceBasis.repr ((Algebra.Generators.CotangentSpace.map f) (P.cotangentSpaceBasis i))) j =
  (MvPolynomial.aeval P'.val) ((MvPolynomial.pderiv j) (f.val i))
-- Algebra.Generators.CotangentSpace.map_id
@[simp]
lemma map_id :
    CotangentSpace.map (.id P) = LinearMap.id 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S}
Goal: Algebra.Generators.CotangentSpace.map (Algebra.Generators.Hom.id P) = LinearMap.id
-- Algebra.Generators.CotangentSpace.map_comp
lemma map_comp (f : Hom P P') (g : Hom P' P'') :
    CotangentSpace.map (g.comp f) =
      (CotangentSpace.map g).restrictScalars S ∘ₗ CotangentSpace.map f 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S} {R' : Type u'} {S' : Type v'} [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'] {R'' : Type u''} {S'' : Type v''} [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''] [Algebra R' R''] [Algebra S' S''] [Algebra R' S''] [IsScalarTower R' R'' S''] [IsScalarTower R' S' S''] [IsScalarTower S S' S''] (f : P.Hom P') (g : P'.Hom P'')
Goal: Algebra.Generators.CotangentSpace.map (g.comp f) =
  ↑S (Algebra.Generators.CotangentSpace.map g) ∘ₗ Algebra.Generators.CotangentSpace.map f
-- Algebra.Generators.CotangentSpace.map_comp_apply
lemma map_comp_apply (f : Hom P P') (g : Hom P' P'') (x) :
    CotangentSpace.map (g.comp f) x = .map g (.map f x) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S} {R' : Type u'} {S' : Type v'} [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'] {R'' : Type u''} {S'' : Type v''} [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''] [Algebra R' R''] [Algebra S' S''] [Algebra R' S''] [IsScalarTower R' R'' S''] [IsScalarTower R' S' S''] [IsScalarTower S S' S''] (f : P.Hom P') (g : P'.Hom P'') (x : P.CotangentSpace)
Goal: (Algebra.Generators.CotangentSpace.map (g.comp f)) x =
  (Algebra.Generators.CotangentSpace.map g) ((Algebra.Generators.CotangentSpace.map f) x)
-- Algebra.Generators.CotangentSpace.map_cotangentComplex
lemma map_cotangentComplex (f : Hom P P') (x) :
    CotangentSpace.map f (P.cotangentComplex x) = P'.cotangentComplex (.map f x) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S} {R' : Type u'} {S' : Type v'} [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.Cotangent)
Goal: (Algebra.Generators.CotangentSpace.map f) (P.cotangentComplex x) =
  P'.cotangentComplex ((Algebra.Generators.Cotangent.map f) x)
-- Algebra.Generators.CotangentSpace.map_comp_cotangentComplex
lemma map_comp_cotangentComplex (f : Hom P P') :
    CotangentSpace.map f ∘ₗ P.cotangentComplex =
      P'.cotangentComplex.restrictScalars S ∘ₗ Cotangent.map f 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S} {R' : Type u'} {S' : Type v'} [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')
Goal: Algebra.Generators.CotangentSpace.map f ∘ₗ P.cotangentComplex =
  ↑S P'.cotangentComplex ∘ₗ Algebra.Generators.Cotangent.map f
-- Algebra.Generators.Hom.sub_aux
lemma Hom.sub_aux (f g : Hom P P') (x y) :
    letI := ((algebraMap S S').comp (algebraMap P.Ring S)).toAlgebra
    f.toAlgHom (x * y) - g.toAlgHom (x * y) -
        (P'.σ ((algebraMap P.Ring S') x) * (f.toAlgHom y - g.toAlgHom y) +
          P'.σ ((algebraMap P.Ring S') y) * (f.toAlgHom x - g.toAlgHom x)) ∈
      P'.ker ^ 2 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S} {R' : Type u'} {S' : Type v'} [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 g : P.Hom P') (x y : P.Ring)
Goal: f.toAlgHom (x * y) - g.toAlgHom (x * y) -
    (P'.σ ((algebraMap P.Ring S') x) * (f.toAlgHom y - g.toAlgHom y) +
      P'.σ ((algebraMap P.Ring S') y) * (f.toAlgHom x - g.toAlgHom x)) ∈
  P'.ker ^ 2
-- Algebra.Generators.Hom.subToKer_apply_coe
@[simps! apply_coe]
noncomputable
def Hom.subToKer (f g : Hom P P') : P.Ring →ₗ[R] P'.ker 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S} {R' : Type u'} {S' : Type v'} [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 g : P.Hom P') (c : P.Ring)
Goal: ↑((f.subToKer g) c) = f.toAlgHom c - g.toAlgHom c
-- Algebra.Generators.Hom.sub_one_tmul
lemma Hom.sub_one_tmul (f g : Hom P P') (x) :
    f.sub g (1 ⊗ₜ .D _ _ x) = Cotangent.mk (f.subToKer g x) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S} {R' : Type u'} {S' : Type v'} [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 g : P.Hom P') (x : P.Ring)
Goal: (f.sub g) (1 ⊗ₜ[P.Ring] (KaehlerDifferential.D R P.Ring) x) = Algebra.Generators.Cotangent.mk ((f.subToKer g) x)
-- Algebra.Generators.Hom.sub_tmul
@[simp]
lemma Hom.sub_tmul (f g : Hom P P') (r x) :
    f.sub g (r ⊗ₜ .D _ _ x) = r • Cotangent.mk (f.subToKer g x) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S} {R' : Type u'} {S' : Type v'} [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 g : P.Hom P') (r : S) (x : P.Ring)
Goal: (f.sub g) (r ⊗ₜ[P.Ring] (KaehlerDifferential.D R P.Ring) x) = r • Algebra.Generators.Cotangent.mk ((f.subToKer g) x)
-- Algebra.Generators.CotangentSpace.map_sub_map
lemma CotangentSpace.map_sub_map (f g : Hom P P') :
    CotangentSpace.map f - CotangentSpace.map g =
      P'.cotangentComplex.restrictScalars S ∘ₗ (f.sub g) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S} {R' : Type u'} {S' : Type v'} [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 g : P.Hom P')
Goal: Algebra.Generators.CotangentSpace.map f - Algebra.Generators.CotangentSpace.map g = ↑S P'.cotangentComplex ∘ₗ f.sub g
-- Algebra.Generators.Cotangent.map_sub_map
lemma Cotangent.map_sub_map (f g : Hom P P') :
    map f - map g = (f.sub g) ∘ₗ P.cotangentComplex 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S} {R' : Type u'} {S' : Type v'} [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 g : P.Hom P')
Goal: Algebra.Generators.Cotangent.map f - Algebra.Generators.Cotangent.map g = f.sub g ∘ₗ P.cotangentComplex
-- Algebra.Generators.toKaehler_cotangentSpaceBasis
@[simp]
lemma toKaehler_cotangentSpaceBasis (i) :
    P.toKaehler (P.cotangentSpaceBasis i) = D R S (P.val i) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S} (i : P.vars)
Goal: P.toKaehler (P.cotangentSpaceBasis i) = (KaehlerDifferential.D R S) (P.val i)
-- Algebra.Generators.toKaehler_surjective
lemma toKaehler_surjective : Function.Surjective P.toKaehler 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S}
Goal: Function.Surjective ⇑P.toKaehler
-- Algebra.Generators.exact_cotangentComplex_toKaehler
lemma exact_cotangentComplex_toKaehler : Function.Exact P.cotangentComplex P.toKaehler 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Generators R S}
Goal: Function.Exact ⇑P.cotangentComplex ⇑P.toKaehler
-- Algebra.formallyEtale_iff
@[mk_iff]
class FormallyEtale : Prop where
  comp_bijective :
    ∀ ⦃B : Type u⦄ [CommRing B],
      ∀ [Algebra R B] (I : Ideal B) (_ : I ^ 2 = ⊥),
        Function.Bijective ((Ideal.Quotient.mkₐ R I).comp : (A →ₐ[R] B) → A →ₐ[R] B ⧸ I)
Arguments: (R : Type u) [CommSemiring R] (A : Type u) [Semiring A] [Algebra R A]
Goal: Algebra.FormallyEtale R A ↔
  ∀ ⦃B : Type u⦄ [inst : CommRing B] [inst_1 : Algebra R B] (I : Ideal B),
    I ^ 2 = ⊥ → Function.Bijective (Ideal.Quotient.mkₐ R I).comp
-- Algebra.FormallyEtale.comp_bijective
@[mk_iff]
class FormallyEtale : Prop where
  comp_bijective :
    ∀ ⦃B : Type u⦄ [CommRing B],
      ∀ [Algebra R B] (I : Ideal B) (_ : I ^ 2 = ⊥),
        Function.Bijective ((Ideal.Quotient.mkₐ R I).comp : (A →ₐ[R] B) → A →ₐ[R] B ⧸ I)
Arguments: {R : Type u} [CommSemiring R] {A : Type u} [Semiring A] [Algebra R A] [self : Algebra.FormallyEtale R A] ⦃B : Type u⦄ [CommRing B] [Algebra R B] (I : Ideal B)
Goal: I ^ 2 = ⊥ → Function.Bijective (Ideal.Quotient.mkₐ R I).comp
-- Algebra.FormallyEtale.iff_unramified_and_smooth
theorem iff_unramified_and_smooth :
    FormallyEtale R A ↔ FormallyUnramified R A ∧ FormallySmooth R A 
Arguments: {R : Type u} [CommSemiring R] {A : Type u} [Semiring A] [Algebra R A]
Goal: Algebra.FormallyEtale R A ↔ Algebra.FormallyUnramified R A ∧ Algebra.FormallySmooth R A
-- Algebra.FormallyEtale.of_unramified_and_smooth
theorem of_unramified_and_smooth [h₁ : FormallyUnramified R A]
    [h₂ : FormallySmooth R A] : FormallyEtale R A 
Arguments: {R : Type u} [CommSemiring R] {A : Type u} [Semiring A] [Algebra R A] [h₁ : Algebra.FormallyUnramified R A] [h₂ : Algebra.FormallySmooth R A]
Goal: Algebra.FormallyEtale R A