Theorem: Algebra.Generators.CotangentSpace.map_sub_map
File: Mathlib/RingTheory/Kaehler/CotangentComplex.lean

Proof steps:
state_before: R : Type u
S : Type v
inst✝¹⁴ : CommRing R
inst✝¹³ : CommRing S
inst✝¹² : Algebra R S
P : Generators R S
R' : Type u'
S' : Type v'
inst✝¹¹ : CommRing R'
inst✝¹⁰ : CommRing S'
inst✝⁹ : Algebra R' S'
P' : Generators R' S'
inst✝⁸ : Algebra R R'
inst✝⁷ : Algebra S S'
inst✝⁶ : Algebra R S'
inst✝⁵ : IsScalarTower R R' S'
inst✝⁴ : IsScalarTower R S S'
T : Type uT
inst✝³ : CommRing T
inst✝² : Algebra R T
inst✝¹ : Algebra S T
inst✝ : IsScalarTower R S T
f g : P.Hom P'
⊢ CotangentSpace.map f - CotangentSpace.map g = ↑S P'.cotangentComplex ∘ₗ f.sub g
state_after: R : Type u
S : Type v
inst✝¹⁴ : CommRing R
inst✝¹³ : CommRing S
inst✝¹² : Algebra R S
P : Generators R S
R' : Type u'
S' : Type v'
inst✝¹¹ : CommRing R'
inst✝¹⁰ : CommRing S'
inst✝⁹ : Algebra R' S'
P' : Generators R' S'
inst✝⁸ : Algebra R R'
inst✝⁷ : Algebra S S'
inst✝⁶ : Algebra R S'
inst✝⁵ : IsScalarTower R R' S'
inst✝⁴ : IsScalarTower R S S'
T : Type uT
inst✝³ : CommRing T
inst✝² : Algebra R T
inst✝¹ : Algebra S T
inst✝ : IsScalarTower R S T
f g : P.Hom P'
⊢ ∀ (i : P.vars),
    (CotangentSpace.map f - CotangentSpace.map g) (P.cotangentSpaceBasis i) =
      (↑S P'.cotangentComplex ∘ₗ f.sub g) (P.cotangentSpaceBasis i)
tactic: apply P.cotangentSpaceBasis.ext
state_before: R : Type u
S : Type v
inst✝¹⁴ : CommRing R
inst✝¹³ : CommRing S
inst✝¹² : Algebra R S
P : Generators R S
R' : Type u'
S' : Type v'
inst✝¹¹ : CommRing R'
inst✝¹⁰ : CommRing S'
inst✝⁹ : Algebra R' S'
P' : Generators R' S'
inst✝⁸ : Algebra R R'
inst✝⁷ : Algebra S S'
inst✝⁶ : Algebra R S'
inst✝⁵ : IsScalarTower R R' S'
inst✝⁴ : IsScalarTower R S S'
T : Type uT
inst✝³ : CommRing T
inst✝² : Algebra R T
inst✝¹ : Algebra S T
inst✝ : IsScalarTower R S T
f g : P.Hom P'
⊢ ∀ (i : P.vars),
    (CotangentSpace.map f - CotangentSpace.map g) (P.cotangentSpaceBasis i) =
      (↑S P'.cotangentComplex ∘ₗ f.sub g) (P.cotangentSpaceBasis i)
state_after: R : Type u
S : Type v
inst✝¹⁴ : CommRing R
inst✝¹³ : CommRing S
inst✝¹² : Algebra R S
P : Generators R S
R' : Type u'
S' : Type v'
inst✝¹¹ : CommRing R'
inst✝¹⁰ : CommRing S'
inst✝⁹ : Algebra R' S'
P' : Generators R' S'
inst✝⁸ : Algebra R R'
inst✝⁷ : Algebra S S'
inst✝⁶ : Algebra R S'
inst✝⁵ : IsScalarTower R R' S'
inst✝⁴ : IsScalarTower R S S'
T : Type uT
inst✝³ : CommRing T
inst✝² : Algebra R T
inst✝¹ : Algebra S T
inst✝ : IsScalarTower R S T
f g : P.Hom P'
i : P.vars
⊢ (CotangentSpace.map f - CotangentSpace.map g) (P.cotangentSpaceBasis i) =
    (↑S P'.cotangentComplex ∘ₗ f.sub g) (P.cotangentSpaceBasis i)
tactic: intro i
state_before: R : Type u
S : Type v
inst✝¹⁴ : CommRing R
inst✝¹³ : CommRing S
inst✝¹² : Algebra R S
P : Generators R S
R' : Type u'
S' : Type v'
inst✝¹¹ : CommRing R'
inst✝¹⁰ : CommRing S'
inst✝⁹ : Algebra R' S'
P' : Generators R' S'
inst✝⁸ : Algebra R R'
inst✝⁷ : Algebra S S'
inst✝⁶ : Algebra R S'
inst✝⁵ : IsScalarTower R R' S'
inst✝⁴ : IsScalarTower R S S'
T : Type uT
inst✝³ : CommRing T
inst✝² : Algebra R T
inst✝¹ : Algebra S T
inst✝ : IsScalarTower R S T
f g : P.Hom P'
i : P.vars
⊢ (CotangentSpace.map f - CotangentSpace.map g) (P.cotangentSpaceBasis i) =
    (↑S P'.cotangentComplex ∘ₗ f.sub g) (P.cotangentSpaceBasis i)
state_after: no goals
tactic: simp only [cotangentSpaceBasis_apply, LinearMap.sub_apply, map_tmul, _root_.map_one,
    Hom.toAlgHom_X, LinearMap.coe_comp, LinearMap.coe_restrictScalars, Function.comp_apply,
    Hom.sub_one_tmul, cotangentComplex_mk, Hom.subToKer_apply_coe, map_sub, tmul_sub]