awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Module: Mathlib.RingTheory.Kaehler.JacobiZariski
Goal:
R : Type u₁
S : Type u₂
inst : CommRing R
inst_1 : CommRing S
inst_2 : Algebra R S
T : Type u₃
inst_3 : CommRing T
inst_4 : Algebra R T
inst_5 : Algebra S T
inst_6 : IsScalarTower R S T
ι : Type w₁
σ : Type w₂
Q : Generators S T ι
P : Generators R S σ
x : ↥Q.ker
hx :
  Membership.mem (α := Q.toExtension.Cotangent) Q.toExtension.cotangentComplex.ker
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
y : Extension.Cotangent (toExtension (Q.comp P)) :=
  (Extension.Cotangent.mk : (a : ↥(Q.comp P).toExtension.ker) → (Q.comp P).toExtension.Cotangent)
    (Q.kerCompPreimage P x)
⊢ (Extension.Hom.toAlgHom (Hom.toExtensionHom (Q.ofComp P)) : (a : (Q.comp P).toExtension.Ring) → Q.toExtension.Ring)
      (↑(Q.kerCompPreimage P x) : (Q.comp P).toExtension.Ring) =
    (↑x : Q.toExtension.Ring)

Tactic:
ofComp_kerCompPreimage Q P x

Premises used: Algebra.Generators.ofComp_kerCompPreimage, AddMonoidAlgebra
-- Module: Mathlib.RingTheory.Kaehler.JacobiZariski
Goal:
R : Type u₁
S : Type u₂
inst : CommRing R
inst_1 : CommRing S
inst_2 : Algebra R S
T : Type u₃
inst_3 : CommRing T
inst_4 : Algebra R T
inst_5 : Algebra S T
inst_6 : IsScalarTower R S T
ι : Type w₁
σ : Type w₂
Q : Generators S T ι
P : Generators R S σ
x : ↥Q.ker
hx :
  Membership.mem (α := Q.toExtension.Cotangent) Q.toExtension.cotangentComplex.ker
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
y : Extension.Cotangent (toExtension (Q.comp P)) :=
  (Extension.Cotangent.mk : (a : ↥(Q.comp P).toExtension.ker) → (Q.comp P).toExtension.Cotangent)
    (Q.kerCompPreimage P x)
⊢ (Extension.Hom.toAlgHom (Hom.toExtensionHom (Q.ofComp P)) : (a : (Q.comp P).toExtension.Ring) → Q.toExtension.Ring)
      (↑(Q.kerCompPreimage P x) : (Q.comp P).toExtension.Ring) =
    (↑x : Q.toExtension.Ring)

Tactic:
exact ofComp_kerCompPreimage Q P x

Premises used: Algebra.Generators.ofComp_kerCompPreimage
-- Module: Mathlib.RingTheory.Kaehler.JacobiZariski
Goal:
R : Type u₁
S : Type u₂
inst : CommRing R
inst_1 : CommRing S
inst_2 : Algebra R S
T : Type u₃
inst_3 : CommRing T
inst_4 : Algebra R T
inst_5 : Algebra S T
inst_6 : IsScalarTower R S T
ι : Type w₁
σ : Type w₂
Q : Generators S T ι
P : Generators R S σ
x : ↥Q.ker
hx :
  Membership.mem (α := Q.toExtension.Cotangent) Q.toExtension.cotangentComplex.ker
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
y : Extension.Cotangent (toExtension (Q.comp P)) :=
  (Extension.Cotangent.mk : (a : ↥(Q.comp P).toExtension.ker) → (Q.comp P).toExtension.Cotangent)
    (Q.kerCompPreimage P x)
⊢ Eq (α := Q.toExtension.Cotangent)
    ((Extension.Cotangent.map (Hom.toExtensionHom (Q.ofComp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → Q.toExtension.Cotangent)
        y :
      Q.toExtension.Cotangent)
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)

Tactic:
have hy : (Extension.Cotangent.map (Q.ofComp P).toExtensionHom) y = Extension.Cotangent.mk x := by
    simp only [y, Extension.Cotangent.map_mk]
    congr
    exact ofComp_kerCompPreimage Q P x
-- Module: Mathlib.RingTheory.Kaehler.JacobiZariski
Goal:
R : Type u₁
S : Type u₂
inst : CommRing R
inst_1 : CommRing S
inst_2 : Algebra R S
T : Type u₃
inst_3 : CommRing T
inst_4 : Algebra R T
inst_5 : Algebra S T
inst_6 : IsScalarTower R S T
ι : Type w₁
σ : Type w₂
Q : Generators S T ι
P : Generators R S σ
x : ↥Q.ker
hx :
  Membership.mem (α := Q.toExtension.Cotangent) Q.toExtension.cotangentComplex.ker
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
y : Extension.Cotangent (toExtension (Q.comp P)) :=
  (Extension.Cotangent.mk : (a : ↥(Q.comp P).toExtension.ker) → (Q.comp P).toExtension.Cotangent)
    (Q.kerCompPreimage P x)
hy :
  Eq (α := Q.toExtension.Cotangent)
    ((Extension.Cotangent.map (Hom.toExtensionHom (Q.ofComp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → Q.toExtension.Cotangent)
        y :
      Q.toExtension.Cotangent)
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
z : T ⊗[S] P.toExtension.CotangentSpace :=
  ((CotangentSpace.compEquiv Q P :
        (a : (Q.comp P).toExtension.CotangentSpace) →
          Q.toExtension.CotangentSpace × T ⊗[S] P.toExtension.CotangentSpace)
      ((Extension.cotangentComplex (toExtension (Q.comp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → (Q.comp P).toExtension.CotangentSpace)
        y)).2
rw :
  Eq (α := T ⊗[S] Ω[S⁄R])
    ((LinearMap.baseChange T P.toExtension.toKaehler : (a : T ⊗[S] P.toExtension.CotangentSpace) → T ⊗[S] Ω[S⁄R]) z :
      T ⊗[S] Ω[S⁄R])
    ((δAux R Q : (a : Q.Ring) → T ⊗[S] Ω[S⁄R]) (↑x : Q.Ring) : T ⊗[S] Ω[S⁄R])
hy₁ :
  Eq (α := Q.toExtension.Cotangent)
    ((Extension.Cotangent.map (Hom.toExtensionHom (Q.ofComp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → Q.toExtension.Cotangent)
        y :
      Q.toExtension.Cotangent)
    ((↑(Subtype.mk (p := fun (x : Q.toExtension.Cotangent) ↦ x ∈ Q.toExtension.cotangentComplex.ker)
            ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x) hx) :
        Q.toExtension.Cotangent) :
      Q.toExtension.Cotangent)
hz :
  Eq (α := Extension.CotangentSpace (toExtension (Q.comp P)))
    ((LinearMap.liftBaseChange T (Extension.CotangentSpace.map (Hom.toExtensionHom (Q.toComp P))) :
          (a : T ⊗[S] P.toExtension.CotangentSpace) → (Q.comp P).toExtension.CotangentSpace)
        z :
      Extension.CotangentSpace (toExtension (Q.comp P)))
    ((Extension.cotangentComplex (toExtension (Q.comp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → (Q.comp P).toExtension.CotangentSpace)
        y :
      Extension.CotangentSpace (toExtension (Q.comp P)))
⊢ Eq (α := T ⊗[S] Ω[S⁄R])
    ((δ Q P : (a : Q.toExtension.H1Cotangent) → T ⊗[S] Ω[S⁄R])
        (Subtype.mk (p := fun (x : Q.toExtension.Cotangent) ↦ x ∈ Q.toExtension.cotangentComplex.ker)
          ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x) hx) :
      T ⊗[S] Ω[S⁄R])
    ((δAux R Q : (a : Q.Ring) → T ⊗[S] Ω[S⁄R]) (↑x : Q.Ring) : T ⊗[S] Ω[S⁄R])

Tactic:
rw [H1Cotangent.δ_eq (y := y) (z := z)]

Premises used: Algebra.Generators.H1Cotangent.δ_eq
-- Module: Mathlib.RingTheory.Kaehler.JacobiZariski
Goal:
R : Type u₁
S : Type u₂
inst : CommRing R
inst_1 : CommRing S
inst_2 : Algebra R S
T : Type u₃
inst_3 : CommRing T
inst_4 : Algebra R T
inst_5 : Algebra S T
inst_6 : IsScalarTower R S T
ι : Type w₁
σ : Type w₂
Q : Generators S T ι
P : Generators R S σ
x : ↥Q.ker
hx :
  Membership.mem (α := Q.toExtension.Cotangent) Q.toExtension.cotangentComplex.ker
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
y : Extension.Cotangent (toExtension (Q.comp P)) :=
  (Extension.Cotangent.mk : (a : ↥(Q.comp P).toExtension.ker) → (Q.comp P).toExtension.Cotangent)
    (Q.kerCompPreimage P x)
hy :
  Eq (α := Q.toExtension.Cotangent)
    ((Extension.Cotangent.map (Hom.toExtensionHom (Q.ofComp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → Q.toExtension.Cotangent)
        y :
      Q.toExtension.Cotangent)
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
z : T ⊗[S] P.toExtension.CotangentSpace :=
  ((CotangentSpace.compEquiv Q P :
        (a : (Q.comp P).toExtension.CotangentSpace) →
          Q.toExtension.CotangentSpace × T ⊗[S] P.toExtension.CotangentSpace)
      ((Extension.cotangentComplex (toExtension (Q.comp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → (Q.comp P).toExtension.CotangentSpace)
        y)).2
rw :
  Eq (α := T ⊗[S] Ω[S⁄R])
    ((LinearMap.baseChange T P.toExtension.toKaehler : (a : T ⊗[S] P.toExtension.CotangentSpace) → T ⊗[S] Ω[S⁄R]) z :
      T ⊗[S] Ω[S⁄R])
    ((LinearMap.baseChange T P.toExtension.toKaehler : (a : T ⊗[S] P.toExtension.CotangentSpace) → T ⊗[S] Ω[S⁄R])
        ((CotangentSpace.compEquiv Q P :
              (a : (Q.comp P).toExtension.CotangentSpace) →
                Q.toExtension.CotangentSpace × T ⊗[S] P.toExtension.CotangentSpace)
            (1 ⊗ₜ[Generators.Ring (Q.comp P)]
              (D R (Generators.Ring (Q.comp P)) : (a : (Q.comp P).Ring) → Ω[(Q.comp P).Ring⁄R])
                (↑(Q.kerCompPreimage P x) : (Q.comp P).Ring))).2 :
      T ⊗[S] Ω[S⁄R])
⊢ Eq (α := T ⊗[S] Ω[S⁄R])
    ((LinearMap.baseChange T P.toExtension.toKaehler : (a : T ⊗[S] P.toExtension.CotangentSpace) → T ⊗[S] Ω[S⁄R]) z :
      T ⊗[S] Ω[S⁄R])
    ((δAux R Q : (a : Q.Ring) → T ⊗[S] Ω[S⁄R]) (↑x : Q.Ring) : T ⊗[S] Ω[S⁄R])

Tactic:
rw [← ofComp_kerCompPreimage Q P x, δAux_ofComp]

Premises used: Algebra.Generators.H1Cotangent.δAux_ofComp, Algebra.Generators.ofComp_kerCompPreimage
-- Module: Mathlib.RingTheory.Kaehler.JacobiZariski
Goal:
R : Type u₁
S : Type u₂
inst : CommRing R
inst_1 : CommRing S
inst_2 : Algebra R S
T : Type u₃
inst_3 : CommRing T
inst_4 : Algebra R T
inst_5 : Algebra S T
inst_6 : IsScalarTower R S T
ι : Type w₁
σ : Type w₂
Q : Generators S T ι
P : Generators R S σ
x : ↥Q.ker
hx :
  Membership.mem (α := Q.toExtension.Cotangent) Q.toExtension.cotangentComplex.ker
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
y : Extension.Cotangent (toExtension (Q.comp P)) :=
  (Extension.Cotangent.mk : (a : ↥(Q.comp P).toExtension.ker) → (Q.comp P).toExtension.Cotangent)
    (Q.kerCompPreimage P x)
hy :
  Eq (α := Q.toExtension.Cotangent)
    ((Extension.Cotangent.map (Hom.toExtensionHom (Q.ofComp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → Q.toExtension.Cotangent)
        y :
      Q.toExtension.Cotangent)
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
z : T ⊗[S] P.toExtension.CotangentSpace :=
  ((CotangentSpace.compEquiv Q P :
        (a : (Q.comp P).toExtension.CotangentSpace) →
          Q.toExtension.CotangentSpace × T ⊗[S] P.toExtension.CotangentSpace)
      ((Extension.cotangentComplex (toExtension (Q.comp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → (Q.comp P).toExtension.CotangentSpace)
        y)).2
⊢ Eq (α := T ⊗[S] Ω[S⁄R])
    ((LinearMap.baseChange T P.toExtension.toKaehler : (a : T ⊗[S] P.toExtension.CotangentSpace) → T ⊗[S] Ω[S⁄R]) z :
      T ⊗[S] Ω[S⁄R])
    ((LinearMap.baseChange T P.toExtension.toKaehler : (a : T ⊗[S] P.toExtension.CotangentSpace) → T ⊗[S] Ω[S⁄R])
        ((CotangentSpace.compEquiv Q P :
              (a : (Q.comp P).toExtension.CotangentSpace) →
                Q.toExtension.CotangentSpace × T ⊗[S] P.toExtension.CotangentSpace)
            (1 ⊗ₜ[Generators.Ring (Q.comp P)]
              (D R (Generators.Ring (Q.comp P)) : (a : (Q.comp P).Ring) → Ω[(Q.comp P).Ring⁄R])
                (↑(Q.kerCompPreimage P x) : (Q.comp P).Ring))).2 :
      T ⊗[S] Ω[S⁄R])

Tactic:
rfl
-- Module: Mathlib.RingTheory.Kaehler.JacobiZariski
Goal:
R : Type u₁
S : Type u₂
inst : CommRing R
inst_1 : CommRing S
inst_2 : Algebra R S
T : Type u₃
inst_3 : CommRing T
inst_4 : Algebra R T
inst_5 : Algebra S T
inst_6 : IsScalarTower R S T
ι : Type w₁
σ : Type w₂
Q : Generators S T ι
P : Generators R S σ
x : ↥Q.ker
hx :
  Membership.mem (α := Q.toExtension.Cotangent) Q.toExtension.cotangentComplex.ker
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
y : Extension.Cotangent (toExtension (Q.comp P)) :=
  (Extension.Cotangent.mk : (a : ↥(Q.comp P).toExtension.ker) → (Q.comp P).toExtension.Cotangent)
    (Q.kerCompPreimage P x)
hy :
  Eq (α := Q.toExtension.Cotangent)
    ((Extension.Cotangent.map (Hom.toExtensionHom (Q.ofComp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → Q.toExtension.Cotangent)
        y :
      Q.toExtension.Cotangent)
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
z : T ⊗[S] P.toExtension.CotangentSpace :=
  ((CotangentSpace.compEquiv Q P :
        (a : (Q.comp P).toExtension.CotangentSpace) →
          Q.toExtension.CotangentSpace × T ⊗[S] P.toExtension.CotangentSpace)
      ((Extension.cotangentComplex (toExtension (Q.comp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → (Q.comp P).toExtension.CotangentSpace)
        y)).2
⊢ Eq (α := Q.toExtension.Cotangent)
    ((Extension.Cotangent.map (Hom.toExtensionHom (Q.ofComp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → Q.toExtension.Cotangent)
        y :
      Q.toExtension.Cotangent)
    ((↑(Subtype.mk (p := fun (x : Q.toExtension.Cotangent) ↦ x ∈ Q.toExtension.cotangentComplex.ker)
            ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x) hx) :
        Q.toExtension.Cotangent) :
      Q.toExtension.Cotangent)

Tactic:
hy
-- Module: Mathlib.RingTheory.Kaehler.JacobiZariski
Goal:
R : Type u₁
S : Type u₂
inst : CommRing R
inst_1 : CommRing S
inst_2 : Algebra R S
T : Type u₃
inst_3 : CommRing T
inst_4 : Algebra R T
inst_5 : Algebra S T
inst_6 : IsScalarTower R S T
ι : Type w₁
σ : Type w₂
Q : Generators S T ι
P : Generators R S σ
x : ↥Q.ker
hx :
  Membership.mem (α := Q.toExtension.Cotangent) Q.toExtension.cotangentComplex.ker
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
y : Extension.Cotangent (toExtension (Q.comp P)) :=
  (Extension.Cotangent.mk : (a : ↥(Q.comp P).toExtension.ker) → (Q.comp P).toExtension.Cotangent)
    (Q.kerCompPreimage P x)
hy :
  Eq (α := Q.toExtension.Cotangent)
    ((Extension.Cotangent.map (Hom.toExtensionHom (Q.ofComp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → Q.toExtension.Cotangent)
        y :
      Q.toExtension.Cotangent)
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
z : T ⊗[S] P.toExtension.CotangentSpace :=
  ((CotangentSpace.compEquiv Q P :
        (a : (Q.comp P).toExtension.CotangentSpace) →
          Q.toExtension.CotangentSpace × T ⊗[S] P.toExtension.CotangentSpace)
      ((Extension.cotangentComplex (toExtension (Q.comp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → (Q.comp P).toExtension.CotangentSpace)
        y)).2
⊢ Eq (α := Q.toExtension.Cotangent)
    ((Extension.Cotangent.map (Hom.toExtensionHom (Q.ofComp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → Q.toExtension.Cotangent)
        y :
      Q.toExtension.Cotangent)
    ((↑(Subtype.mk (p := fun (x : Q.toExtension.Cotangent) ↦ x ∈ Q.toExtension.cotangentComplex.ker)
            ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x) hx) :
        Q.toExtension.Cotangent) :
      Q.toExtension.Cotangent)

Tactic:
exact hy
-- Module: Mathlib.RingTheory.Kaehler.JacobiZariski
Goal:
R : Type u₁
S : Type u₂
inst : CommRing R
inst_1 : CommRing S
inst_2 : Algebra R S
T : Type u₃
inst_3 : CommRing T
inst_4 : Algebra R T
inst_5 : Algebra S T
inst_6 : IsScalarTower R S T
ι : Type w₁
σ : Type w₂
Q : Generators S T ι
P : Generators R S σ
x : ↥Q.ker
hx :
  Membership.mem (α := Q.toExtension.Cotangent) Q.toExtension.cotangentComplex.ker
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
y : Extension.Cotangent (toExtension (Q.comp P)) :=
  (Extension.Cotangent.mk : (a : ↥(Q.comp P).toExtension.ker) → (Q.comp P).toExtension.Cotangent)
    (Q.kerCompPreimage P x)
hy :
  Eq (α := Q.toExtension.Cotangent)
    ((Extension.Cotangent.map (Hom.toExtensionHom (Q.ofComp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → Q.toExtension.Cotangent)
        y :
      Q.toExtension.Cotangent)
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
z : T ⊗[S] P.toExtension.CotangentSpace :=
  ((CotangentSpace.compEquiv Q P :
        (a : (Q.comp P).toExtension.CotangentSpace) →
          Q.toExtension.CotangentSpace × T ⊗[S] P.toExtension.CotangentSpace)
      ((Extension.cotangentComplex (toExtension (Q.comp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → (Q.comp P).toExtension.CotangentSpace)
        y)).2
hz :
  Eq (α := Extension.CotangentSpace (toExtension (Q.comp P)))
    (((↑(LinearEquiv.symm (CotangentSpace.compEquiv Q P)) :
              Q.toExtension.CotangentSpace × T ⊗[S] P.toExtension.CotangentSpace →ₗ[T]
                (Q.comp P).toExtension.CotangentSpace) ∘ₗ
            LinearMap.inr T Q.toExtension.CotangentSpace (T ⊗[S] P.toExtension.CotangentSpace) :
          (a : T ⊗[S] P.toExtension.CotangentSpace) → (Q.comp P).toExtension.CotangentSpace)
        z :
      Extension.CotangentSpace (toExtension (Q.comp P)))
    ((Extension.cotangentComplex (toExtension (Q.comp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → (Q.comp P).toExtension.CotangentSpace)
        y :
      Extension.CotangentSpace (toExtension (Q.comp P)))
⊢ Eq (α := Extension.CotangentSpace (toExtension (Q.comp P)))
    ((LinearMap.liftBaseChange T (Extension.CotangentSpace.map (Hom.toExtensionHom (Q.toComp P))) :
          (a : T ⊗[S] P.toExtension.CotangentSpace) → (Q.comp P).toExtension.CotangentSpace)
        z :
      Extension.CotangentSpace (toExtension (Q.comp P)))
    ((Extension.cotangentComplex (toExtension (Q.comp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → (Q.comp P).toExtension.CotangentSpace)
        y :
      Extension.CotangentSpace (toExtension (Q.comp P)))

Tactic:
rw [← CotangentSpace.compEquiv_symm_inr]

Premises used: Algebra.Generators.CotangentSpace.compEquiv_symm_inr
-- Module: Mathlib.RingTheory.Kaehler.JacobiZariski
Goal:
R : Type u₁
S : Type u₂
inst : CommRing R
inst_1 : CommRing S
inst_2 : Algebra R S
T : Type u₃
inst_3 : CommRing T
inst_4 : Algebra R T
inst_5 : Algebra S T
inst_6 : IsScalarTower R S T
ι : Type w₁
σ : Type w₂
Q : Generators S T ι
P : Generators R S σ
x : ↥Q.ker
hx :
  Membership.mem (α := Q.toExtension.Cotangent) Q.toExtension.cotangentComplex.ker
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
y : Extension.Cotangent (toExtension (Q.comp P)) :=
  (Extension.Cotangent.mk : (a : ↥(Q.comp P).toExtension.ker) → (Q.comp P).toExtension.Cotangent)
    (Q.kerCompPreimage P x)
hy :
  Eq (α := Q.toExtension.Cotangent)
    ((Extension.Cotangent.map (Hom.toExtensionHom (Q.ofComp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → Q.toExtension.Cotangent)
        y :
      Q.toExtension.Cotangent)
    ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)
z : T ⊗[S] P.toExtension.CotangentSpace :=
  ((CotangentSpace.compEquiv Q P :
        (a : (Q.comp P).toExtension.CotangentSpace) →
          Q.toExtension.CotangentSpace × T ⊗[S] P.toExtension.CotangentSpace)
      ((Extension.cotangentComplex (toExtension (Q.comp P)) :
          (a : (Q.comp P).toExtension.Cotangent) → (Q.comp P).toExtension.CotangentSpace)
        y)).2
⊢ Eq (α := T ⊗[S] P.toExtension.CotangentSpace)
    (0,
        ((CotangentSpace.compEquiv Q P :
              (a : (Q.comp P).toExtension.CotangentSpace) →
                Q.toExtension.CotangentSpace × T ⊗[S] P.toExtension.CotangentSpace)
            ((Extension.cotangentComplex (toExtension (Q.comp P)) :
                (a : (Q.comp P).toExtension.Cotangent) → (Q.comp P).toExtension.CotangentSpace)
              y)).2).2
    ((CotangentSpace.compEquiv Q P :
          (a : (Q.comp P).toExtension.CotangentSpace) →
            Q.toExtension.CotangentSpace × T ⊗[S] P.toExtension.CotangentSpace)
        ((Extension.cotangentComplex (toExtension (Q.comp P)) :
            (a : (Q.comp P).toExtension.Cotangent) → (Q.comp P).toExtension.CotangentSpace)
          y)).2

Tactic:
rfl
-- Module: Mathlib.RingTheory.Kaehler.JacobiZariski
Goal:
R : Type u₁
S : Type u₂
inst : CommRing R
inst_1 : CommRing S
inst_2 : Algebra R S
T : Type u₃
inst_3 : CommRing T
inst_4 : Algebra R T
inst_5 : Algebra S T
inst_6 : IsScalarTower R S T
ι : Type w₁
σ : Type w₂
σ' : Type w₄
Q : Generators S T ι
P : Generators R S σ
P' : Generators R S σ'
h :
  ∀ (x : Q.toExtension.Cotangent) (hx : x ∈ Q.toExtension.cotangentComplex.ker),
    Eq (α := T ⊗[S] Ω[S⁄R])
      ((δ Q P : (a : Q.toExtension.H1Cotangent) → T ⊗[S] Ω[S⁄R])
          (Subtype.mk (p := fun (x : Q.toExtension.Cotangent) ↦ x ∈ Q.toExtension.cotangentComplex.ker) x hx) :
        T ⊗[S] Ω[S⁄R])
      ((δ Q P' : (a : Q.toExtension.H1Cotangent) → T ⊗[S] Ω[S⁄R])
          (Subtype.mk (p := fun (x : Q.toExtension.Cotangent) ↦ x ∈ Q.toExtension.cotangentComplex.ker) x hx) :
        T ⊗[S] Ω[S⁄R])
⊢ δ Q P = δ Q P'

Tactic:
ext ⟨x, hx⟩
-- Module: Mathlib.RingTheory.Kaehler.JacobiZariski
Goal:
R : Type u₁
S : Type u₂
inst : CommRing R
inst_1 : CommRing S
inst_2 : Algebra R S
T : Type u₃
inst_3 : CommRing T
inst_4 : Algebra R T
inst_5 : Algebra S T
inst_6 : IsScalarTower R S T
ι : Type w₁
σ : Type w₂
σ' : Type w₄
Q : Generators S T ι
P : Generators R S σ
P' : Generators R S σ'
x : Q.toExtension.Cotangent
hx : x ∈ Q.toExtension.cotangentComplex.ker
h :
  ∀ (x : ↥Q.toExtension.ker)
    (hx :
      Membership.mem (α := Q.toExtension.Cotangent) Q.toExtension.cotangentComplex.ker
        ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x : Q.toExtension.Cotangent)),
    Eq (α := T ⊗[S] Ω[S⁄R])
      ((δ Q P : (a : Q.toExtension.H1Cotangent) → T ⊗[S] Ω[S⁄R])
          (Subtype.mk (p := fun (x : Q.toExtension.Cotangent) ↦ x ∈ Q.toExtension.cotangentComplex.ker)
            ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x) hx) :
        T ⊗[S] Ω[S⁄R])
      ((δ Q P' : (a : Q.toExtension.H1Cotangent) → T ⊗[S] Ω[S⁄R])
          (Subtype.mk (p := fun (x : Q.toExtension.Cotangent) ↦ x ∈ Q.toExtension.cotangentComplex.ker)
            ((Extension.Cotangent.mk : (a : ↥Q.toExtension.ker) → Q.toExtension.Cotangent) x) hx) :
        T ⊗[S] Ω[S⁄R])
⊢ Eq (α := T ⊗[S] Ω[S⁄R])
    ((δ Q P : (a : Q.toExtension.H1Cotangent) → T ⊗[S] Ω[S⁄R])
        (Subtype.mk (p := fun (x : Q.toExtension.Cotangent) ↦ x ∈ Q.toExtension.cotangentComplex.ker) x hx) :
      T ⊗[S] Ω[S⁄R])
    ((δ Q P' : (a : Q.toExtension.H1Cotangent) → T ⊗[S] Ω[S⁄R])
        (Subtype.mk (p := fun (x : Q.toExtension.Cotangent) ↦ x ∈ Q.toExtension.cotangentComplex.ker) x hx) :
      T ⊗[S] Ω[S⁄R])

Tactic:
obtain ⟨x, rfl⟩ := Extension.Cotangent.mk_surjective x

Premises used: Algebra.Extension.Cotangent.mk_surjective, rfl