R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_2
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q : MvPolynomial σ R
f✝ : σ → R
τ : Type u_1
f : σ → MvPolynomial τ R
g : τ → R
p : MvPolynomial σ R
⊢ ↑(eval (↑(eval g) ∘ f)) p = eval₂ (RingHom.comp (eval g) C) (↑(eval g) ∘ f) p
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_2
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q : MvPolynomial σ R
f✝ : σ → R
τ : Type u_1
f : σ → MvPolynomial τ R
g : τ → R
p : MvPolynomial σ R
⊢ ↑(eval (↑(eval g) ∘ f)) p = ↑(eval g) (eval₂ C f p)
rw [eval₂_comp_left (eval g)]
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_2
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q : MvPolynomial σ R
f✝ : σ → R
τ : Type u_1
f : σ → MvPolynomial τ R
g : τ → R
p : MvPolynomial σ R
⊢ ↑(eval₂Hom (RingHom.id R) (↑(eval₂Hom (RingHom.id R) g) ∘ f)) p =
    eval₂ (RingHom.comp (eval₂Hom (RingHom.id R) g) C) (↑(eval₂Hom (RingHom.id R) g) ∘ f) p
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_2
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q : MvPolynomial σ R
f✝ : σ → R
τ : Type u_1
f : σ → MvPolynomial τ R
g : τ → R
p : MvPolynomial σ R
⊢ ↑(eval (↑(eval g) ∘ f)) p = eval₂ (RingHom.comp (eval g) C) (↑(eval g) ∘ f) p
unfold eval
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_2
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q : MvPolynomial σ R
f✝ : σ → R
τ : Type u_1
f : σ → MvPolynomial τ R
g : τ → R
p : MvPolynomial σ R
⊢ eval₂ (RingHom.id R) (eval₂ (RingHom.id R) g ∘ f) p =
    eval₂ (RingHom.comp (eval₂Hom (RingHom.id R) g) C) (eval₂ (RingHom.id R) g ∘ f) p
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_2
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q : MvPolynomial σ R
f✝ : σ → R
τ : Type u_1
f : σ → MvPolynomial τ R
g : τ → R
p : MvPolynomial σ R
⊢ ↑(eval₂Hom (RingHom.id R) (↑(eval₂Hom (RingHom.id R) g) ∘ f)) p =
    eval₂ (RingHom.comp (eval₂Hom (RingHom.id R) g) C) (↑(eval₂Hom (RingHom.id R) g) ∘ f) p
simp only [coe_eval₂Hom]
case e_f.a
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_2
a✝ a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q : MvPolynomial σ R
f✝ : σ → R
τ : Type u_1
f : σ → MvPolynomial τ R
g : τ → R
p : MvPolynomial σ R
a : R
⊢ ↑(RingHom.id R) a = ↑(RingHom.comp (eval₂Hom (RingHom.id R) g) C) a
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_2
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q : MvPolynomial σ R
f✝ : σ → R
τ : Type u_1
f : σ → MvPolynomial τ R
g : τ → R
p : MvPolynomial σ R
⊢ eval₂ (RingHom.id R) (eval₂ (RingHom.id R) g ∘ f) p =
    eval₂ (RingHom.comp (eval₂Hom (RingHom.id R) g) C) (eval₂ (RingHom.id R) g ∘ f) p
congr with a
no goals
case e_f.a
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_2
a✝ a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q : MvPolynomial σ R
f✝ : σ → R
τ : Type u_1
f : σ → MvPolynomial τ R
g : τ → R
p : MvPolynomial σ R
a : R
⊢ ↑(RingHom.id R) a = ↑(RingHom.comp (eval₂Hom (RingHom.id R) g) C) a
simp