Theorem: Matrix.toMvPolynomial_one
File: Mathlib/Algebra/Module/LinearMap/Polynomial.lean

tactic: ext i : 1
state_before: m : Type u_1
n : Type u_2
o : Type u_3
R : Type u_4
S : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : DecidableEq n
⊢ toMvPolynomial 1 = X
state_after: case h
m : Type u_1
n : Type u_2
o : Type u_3
R : Type u_4
S : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : DecidableEq n
i : n
⊢ toMvPolynomial 1 i = X i

tactic: rw [toMvPolynomial, Finset.sum_eq_single i]
state_before: case h
m : Type u_1
n : Type u_2
o : Type u_3
R : Type u_4
S : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : DecidableEq n
i : n
⊢ toMvPolynomial 1 i = X i
state_after: case h
m : Type u_1
n : Type u_2
o : Type u_3
R : Type u_4
S : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : DecidableEq n
i : n
⊢ (monomial (Finsupp.single i 1)) (1 i i) = X i

case h.h₀
m : Type u_1
n : Type u_2
o : Type u_3
R : Type u_4
S : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : DecidableEq n
i : n
⊢ ∀ b ∈ Finset.univ, b ≠ i → (monomial (Finsupp.single b 1)) (1 i b) = 0

case h.h₁
m : Type u_1
n : Type u_2
o : Type u_3
R : Type u_4
S : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : DecidableEq n
i : n
⊢ i ∉ Finset.univ → (monomial (Finsupp.single i 1)) (1 i i) = 0

tactic: simp only [one_apply_eq, ← C_mul_X_eq_monomial, C_1, one_mul]
state_before: case h
m : Type u_1
n : Type u_2
o : Type u_3
R : Type u_4
S : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : DecidableEq n
i : n
⊢ (monomial (Finsupp.single i 1)) (1 i i) = X i
state_after: no goals

tactic: rintro j - hj
state_before: case h.h₀
m : Type u_1
n : Type u_2
o : Type u_3
R : Type u_4
S : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : DecidableEq n
i : n
⊢ ∀ b ∈ Finset.univ, b ≠ i → (monomial (Finsupp.single b 1)) (1 i b) = 0
state_after: case h.h₀
m : Type u_1
n : Type u_2
o : Type u_3
R : Type u_4
S : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : DecidableEq n
i j : n
hj : j ≠ i
⊢ (monomial (Finsupp.single j 1)) (1 i j) = 0

tactic: simp only [one_apply_ne hj.symm, map_zero]
state_before: case h.h₀
m : Type u_1
n : Type u_2
o : Type u_3
R : Type u_4
S : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : DecidableEq n
i j : n
hj : j ≠ i
⊢ (monomial (Finsupp.single j 1)) (1 i j) = 0
state_after: no goals

tactic: intro h
state_before: case h.h₁
m : Type u_1
n : Type u_2
o : Type u_3
R : Type u_4
S : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : DecidableEq n
i : n
⊢ i ∉ Finset.univ → (monomial (Finsupp.single i 1)) (1 i i) = 0
state_after: case h.h₁
m : Type u_1
n : Type u_2
o : Type u_3
R : Type u_4
S : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : DecidableEq n
i : n
h : i ∉ Finset.univ
⊢ (monomial (Finsupp.single i 1)) (1 i i) = 0

tactic: exact (h (Finset.mem_univ _)).elim
state_before: case h.h₁
m : Type u_1
n : Type u_2
o : Type u_3
R : Type u_4
S : Type u_5
inst✝⁴ : Fintype n
inst✝³ : Fintype o
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : DecidableEq n
i : n
h : i ∉ Finset.univ
⊢ (monomial (Finsupp.single i 1)) (1 i i) = 0
state_after: no goals