Theorem: PowerSeries.subst_comp_subst (DividedPowers/ForMathlib/MvPowerSeries/Substitutions.lean)

State before:
A : Type u_1
inst✝¹⁷ : CommRing A
R : Type u_2
inst✝¹⁶ : CommRing R
inst✝¹⁵ : Algebra A R
τ : Type u_3
inst✝¹⁴ : DecidableEq τ
S : Type u_4
inst✝¹³ : CommRing S
inst✝¹² : Algebra A S
inst✝¹¹ : Algebra R S
inst✝¹⁰ : IsScalarTower A R S
υ✝ : Type u_5
inst✝⁹ : DecidableEq υ✝
T✝ : Type u_6
inst✝⁸ : CommRing T✝
inst✝⁷ : Algebra R T✝
inst✝⁶ : Algebra S T✝
inst✝⁵ : IsScalarTower R S T✝
a✝ : MvPowerSeries τ S
ha✝ : SubstDomain a✝
υ : Type u_7
inst✝⁴ : DecidableEq υ
T : Type u_8
inst✝³ : CommRing T
inst✝² : Algebra R T
inst✝¹ : Algebra S T
inst✝ : IsScalarTower R S T
a : S⟦X⟧
ha : SubstDomain a
b : MvPowerSeries υ T
hb : SubstDomain b
a' : MvPowerSeries τ S
ha' : SubstDomain a'
b' : τ → MvPowerSeries υ T
hb' : MvPowerSeries.SubstDomain b'
⊢ subst b ∘ subst a = subst (subst b a)
Tactic:
have h := substAlgHom_comp_substAlgHom (R := R) ha hb
State after:
A : Type u_1
inst✝¹⁷ : CommRing A
R : Type u_2
inst✝¹⁶ : CommRing R
inst✝¹⁵ : Algebra A R
τ : Type u_3
inst✝¹⁴ : DecidableEq τ
S : Type u_4
inst✝¹³ : CommRing S
inst✝¹² : Algebra A S
inst✝¹¹ : Algebra R S
inst✝¹⁰ : IsScalarTower A R S
υ✝ : Type u_5
inst✝⁹ : DecidableEq υ✝
T✝ : Type u_6
inst✝⁸ : CommRing T✝
inst✝⁷ : Algebra R T✝
inst✝⁶ : Algebra S T✝
inst✝⁵ : IsScalarTower R S T✝
a✝ : MvPowerSeries τ S
ha✝ : SubstDomain a✝
υ : Type u_7
inst✝⁴ : DecidableEq υ
T : Type u_8
inst✝³ : CommRing T
inst✝² : Algebra R T
inst✝¹ : Algebra S T
inst✝ : IsScalarTower R S T
a : S⟦X⟧
ha : SubstDomain a
b : MvPowerSeries υ T
hb : SubstDomain b
a' : MvPowerSeries τ S
ha' : SubstDomain a'
b' : τ → MvPowerSeries υ T
hb' : MvPowerSeries.SubstDomain b'
h : (AlgHom.restrictScalars R (substAlgHom hb)).comp (substAlgHom ha) = substAlgHom ⋯
⊢ subst b ∘ subst a = subst (subst b a)

State before:
A : Type u_1
inst✝¹⁷ : CommRing A
R : Type u_2
inst✝¹⁶ : CommRing R
inst✝¹⁵ : Algebra A R
τ : Type u_3
inst✝¹⁴ : DecidableEq τ
S : Type u_4
inst✝¹³ : CommRing S
inst✝¹² : Algebra A S
inst✝¹¹ : Algebra R S
inst✝¹⁰ : IsScalarTower A R S
υ✝ : Type u_5
inst✝⁹ : DecidableEq υ✝
T✝ : Type u_6
inst✝⁸ : CommRing T✝
inst✝⁷ : Algebra R T✝
inst✝⁶ : Algebra S T✝
inst✝⁵ : IsScalarTower R S T✝
a✝ : MvPowerSeries τ S
ha✝ : SubstDomain a✝
υ : Type u_7
inst✝⁴ : DecidableEq υ
T : Type u_8
inst✝³ : CommRing T
inst✝² : Algebra R T
inst✝¹ : Algebra S T
inst✝ : IsScalarTower R S T
a : S⟦X⟧
ha : SubstDomain a
b : MvPowerSeries υ T
hb : SubstDomain b
a' : MvPowerSeries τ S
ha' : SubstDomain a'
b' : τ → MvPowerSeries υ T
hb' : MvPowerSeries.SubstDomain b'
h : (AlgHom.restrictScalars R (substAlgHom hb)).comp (substAlgHom ha) = substAlgHom ⋯
⊢ subst b ∘ subst a = subst (subst b a)
Tactic:
simp only [DFunLike.ext_iff, AlgHom.coe_comp, AlgHom.coe_restrictScalars', Function.comp_apply] at h
State after:
A : Type u_1
inst✝¹⁷ : CommRing A
R : Type u_2
inst✝¹⁶ : CommRing R
inst✝¹⁵ : Algebra A R
τ : Type u_3
inst✝¹⁴ : DecidableEq τ
S : Type u_4
inst✝¹³ : CommRing S
inst✝¹² : Algebra A S
inst✝¹¹ : Algebra R S
inst✝¹⁰ : IsScalarTower A R S
υ✝ : Type u_5
inst✝⁹ : DecidableEq υ✝
T✝ : Type u_6
inst✝⁸ : CommRing T✝
inst✝⁷ : Algebra R T✝
inst✝⁶ : Algebra S T✝
inst✝⁵ : IsScalarTower R S T✝
a✝ : MvPowerSeries τ S
ha✝ : SubstDomain a✝
υ : Type u_7
inst✝⁴ : DecidableEq υ
T : Type u_8
inst✝³ : CommRing T
inst✝² : Algebra R T
inst✝¹ : Algebra S T
inst✝ : IsScalarTower R S T
a : S⟦X⟧
ha : SubstDomain a
b : MvPowerSeries υ T
hb : SubstDomain b
a' : MvPowerSeries τ S
ha' : SubstDomain a'
b' : τ → MvPowerSeries υ T
hb' : MvPowerSeries.SubstDomain b'
h : ∀ (x : R⟦X⟧), (substAlgHom hb) ((substAlgHom ha) x) = (substAlgHom ⋯) x
⊢ subst b ∘ subst a = subst (subst b a)

State before:
A : Type u_1
inst✝¹⁷ : CommRing A
R : Type u_2
inst✝¹⁶ : CommRing R
inst✝¹⁵ : Algebra A R
τ : Type u_3
inst✝¹⁴ : DecidableEq τ
S : Type u_4
inst✝¹³ : CommRing S
inst✝¹² : Algebra A S
inst✝¹¹ : Algebra R S
inst✝¹⁰ : IsScalarTower A R S
υ✝ : Type u_5
inst✝⁹ : DecidableEq υ✝
T✝ : Type u_6
inst✝⁸ : CommRing T✝
inst✝⁷ : Algebra R T✝
inst✝⁶ : Algebra S T✝
inst✝⁵ : IsScalarTower R S T✝
a✝ : MvPowerSeries τ S
ha✝ : SubstDomain a✝
υ : Type u_7
inst✝⁴ : DecidableEq υ
T : Type u_8
inst✝³ : CommRing T
inst✝² : Algebra R T
inst✝¹ : Algebra S T
inst✝ : IsScalarTower R S T
a : S⟦X⟧
ha : SubstDomain a
b : MvPowerSeries υ T
hb : SubstDomain b
a' : MvPowerSeries τ S
ha' : SubstDomain a'
b' : τ → MvPowerSeries υ T
hb' : MvPowerSeries.SubstDomain b'
h : ∀ (x : R⟦X⟧), (substAlgHom hb) ((substAlgHom ha) x) = (substAlgHom ⋯) x
⊢ subst b ∘ subst a = subst (subst b a)
Tactic:
exact funext h
State after:
no goals