Theorem: PolynomialMap.add_toFun_apply (DividedPowers/PolynomialMap/Basic.lean)

State before:
R✝ : Type u
inst✝¹¹ : CommRing R✝
M✝ : Type u_1
inst✝¹⁰ : AddCommGroup M✝
inst✝⁹ : Module R✝ M✝
N✝ : Type u_2
inst✝⁸ : AddCommGroup N✝
inst✝⁷ : Module R✝ N✝
f✝ : M✝ →ₚ[R✝] N✝
R : Type u
inst✝⁶ : CommRing R
M : Type u_3
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
N : Type u_4
inst✝³ : AddCommGroup N
inst✝² : Module R N
r a b : R
f g : M →ₚ[R] N
S : Type u_5
inst✝¹ : CommRing S
inst✝ : Algebra R S
t : S ⊗[R] M
⊢ (f + g).toFun S t = f.toFun S t + g.toFun S t
Tactic:
obtain ⟨⟨s, p⟩, ha⟩ := π_surjective t
State after:
case intro.mk
R✝ : Type u
inst✝¹¹ : CommRing R✝
M✝ : Type u_1
inst✝¹⁰ : AddCommGroup M✝
inst✝⁹ : Module R✝ M✝
N✝ : Type u_2
inst✝⁸ : AddCommGroup N✝
inst✝⁷ : Module R✝ N✝
f✝ : M✝ →ₚ[R✝] N✝
R : Type u
inst✝⁶ : CommRing R
M : Type u_3
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
N : Type u_4
inst✝³ : AddCommGroup N
inst✝² : Module R N
r a b : R
f g : M →ₚ[R] N
S : Type u_5
inst✝¹ : CommRing S
inst✝ : Algebra R S
t : S ⊗[R] M
s : Finset S
p : MvPolynomial (Fin s.card) R ⊗[R] M
ha : PolynomialMap.π R M S ⟨s, p⟩ = t
⊢ (f + g).toFun S t = f.toFun S t + g.toFun S t

State before:
case intro.mk
R✝ : Type u
inst✝¹¹ : CommRing R✝
M✝ : Type u_1
inst✝¹⁰ : AddCommGroup M✝
inst✝⁹ : Module R✝ M✝
N✝ : Type u_2
inst✝⁸ : AddCommGroup N✝
inst✝⁷ : Module R✝ N✝
f✝ : M✝ →ₚ[R✝] N✝
R : Type u
inst✝⁶ : CommRing R
M : Type u_3
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
N : Type u_4
inst✝³ : AddCommGroup N
inst✝² : Module R N
r a b : R
f g : M →ₚ[R] N
S : Type u_5
inst✝¹ : CommRing S
inst✝ : Algebra R S
t : S ⊗[R] M
s : Finset S
p : MvPolynomial (Fin s.card) R ⊗[R] M
ha : PolynomialMap.π R M S ⟨s, p⟩ = t
⊢ (f + g).toFun S t = f.toFun S t + g.toFun S t
Tactic:
simp only [Pi.add_apply, toFun_eq_toFunLifted_apply _ ha, add_def, map_add]
State after:
no goals