Theorem: AlgebraicClosure.spanEval_ne_top
File: Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean

tactic: rw [Ideal.ne_top_iff_one, spanEval, Ideal.span, ← Set.image_univ,
  Finsupp.mem_span_image_iff_total]
state_before: k : Type u
inst✝ : Field k
⊢ spanEval k ≠ ⊤
state_after: k : Type u
inst✝ : Field k
⊢ ¬∃ l ∈ Finsupp.supported (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k) Set.univ,
      (Finsupp.total (MonicIrreducible k) (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k)
            (evalXSelf k))
          l =
        1

tactic: rintro ⟨v, _, hv⟩
state_before: k : Type u
inst✝ : Field k
⊢ ¬∃ l ∈ Finsupp.supported (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k) Set.univ,
      (Finsupp.total (MonicIrreducible k) (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k)
            (evalXSelf k))
          l =
        1
state_after: case intro.intro
k : Type u
inst✝ : Field k
v : MonicIrreducible k →₀ MvPolynomial (MonicIrreducible k) k
left✝ : v ∈ Finsupp.supported (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k) Set.univ
hv :
  (Finsupp.total (MonicIrreducible k) (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k)
        (evalXSelf k))
      v =
    1
⊢ False

tactic: replace hv := congr_arg (toSplittingField k v.support) hv
state_before: case intro.intro
k : Type u
inst✝ : Field k
v : MonicIrreducible k →₀ MvPolynomial (MonicIrreducible k) k
left✝ : v ∈ Finsupp.supported (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k) Set.univ
hv :
  (Finsupp.total (MonicIrreducible k) (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k)
        (evalXSelf k))
      v =
    1
⊢ False
state_after: case intro.intro
k : Type u
inst✝ : Field k
v : MonicIrreducible k →₀ MvPolynomial (MonicIrreducible k) k
left✝ : v ∈ Finsupp.supported (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k) Set.univ
hv :
  (toSplittingField k v.support)
      ((Finsupp.total (MonicIrreducible k) (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k)
          (evalXSelf k))
        v) =
    (toSplittingField k v.support) 1
⊢ False

tactic: rw [AlgHom.map_one, Finsupp.total_apply, Finsupp.sum, AlgHom.map_sum, Finset.sum_eq_zero] at hv
state_before: case intro.intro
k : Type u
inst✝ : Field k
v : MonicIrreducible k →₀ MvPolynomial (MonicIrreducible k) k
left✝ : v ∈ Finsupp.supported (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k) Set.univ
hv :
  (toSplittingField k v.support)
      ((Finsupp.total (MonicIrreducible k) (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k)
          (evalXSelf k))
        v) =
    (toSplittingField k v.support) 1
⊢ False
state_after: case intro.intro
k : Type u
inst✝ : Field k
v : MonicIrreducible k →₀ MvPolynomial (MonicIrreducible k) k
left✝ : v ∈ Finsupp.supported (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k) Set.univ
hv : 0 = 1
⊢ False

case intro.intro
k : Type u
inst✝ : Field k
v : MonicIrreducible k →₀ MvPolynomial (MonicIrreducible k) k
left✝ : v ∈ Finsupp.supported (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k) Set.univ
hv : ∑ x ∈ v.support, (toSplittingField k v.support) (v x • evalXSelf k x) = 1
⊢ ∀ x ∈ v.support, (toSplittingField k v.support) (v x • evalXSelf k x) = 0

tactic: intro j hj
state_before: case intro.intro
k : Type u
inst✝ : Field k
v : MonicIrreducible k →₀ MvPolynomial (MonicIrreducible k) k
left✝ : v ∈ Finsupp.supported (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k) Set.univ
hv : ∑ x ∈ v.support, (toSplittingField k v.support) (v x • evalXSelf k x) = 1
⊢ ∀ x ∈ v.support, (toSplittingField k v.support) (v x • evalXSelf k x) = 0
state_after: case intro.intro
k : Type u
inst✝ : Field k
v : MonicIrreducible k →₀ MvPolynomial (MonicIrreducible k) k
left✝ : v ∈ Finsupp.supported (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k) Set.univ
hv : ∑ x ∈ v.support, (toSplittingField k v.support) (v x • evalXSelf k x) = 1
j : MonicIrreducible k
hj : j ∈ v.support
⊢ (toSplittingField k v.support) (v j • evalXSelf k j) = 0

tactic: rw [smul_eq_mul, AlgHom.map_mul, toSplittingField_evalXSelf (s := v.support) hj,
  mul_zero]
state_before: case intro.intro
k : Type u
inst✝ : Field k
v : MonicIrreducible k →₀ MvPolynomial (MonicIrreducible k) k
left✝ : v ∈ Finsupp.supported (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k) Set.univ
hv : ∑ x ∈ v.support, (toSplittingField k v.support) (v x • evalXSelf k x) = 1
j : MonicIrreducible k
hj : j ∈ v.support
⊢ (toSplittingField k v.support) (v j • evalXSelf k j) = 0
state_after: no goals

tactic: exact zero_ne_one hv
state_before: case intro.intro
k : Type u
inst✝ : Field k
v : MonicIrreducible k →₀ MvPolynomial (MonicIrreducible k) k
left✝ : v ∈ Finsupp.supported (MvPolynomial (MonicIrreducible k) k) (MvPolynomial (MonicIrreducible k) k) Set.univ
hv : 0 = 1
⊢ False
state_after: no goals