-- Module: Mathlib.RingTheory.Polynomial.UniversalFactorizationRing
Goal:
R : Type u_1
inst : CommRing R
m k : ℕ
this : Algebra (MvPolynomial (Fin (m + k)) R) (MvPolynomial (Fin m) R ⊗[R] MvPolynomial (Fin k) R) :=
  RingHom.toAlgebra (AlgHom.toRingHom (universalFactorizationMap R (m + k) m k ⋯))
j : Fin (m + k)
i : Fin k
a :
  ∀ (i_1 : Fin m),
    Eq (α :=
      Algebra.Generators.Ring (R := MvPolynomial (Fin (m + k)) R)
        (Algebra.Presentation.toGenerators
          (Algebra.PreSubmersivePresentation.toPresentation (universalFactorizationMapPresentation R (m + k) m k ⋯))))
      ((pderiv
              (Algebra.PreSubmersivePresentation.map (R := MvPolynomial (Fin (m + k)) R)
                (universalFactorizationMapPresentation R (m + k) m k ⋯)
                ((finSumFinEquiv : (a : Fin m ⊕ Fin k) → Fin (m + k)) (Sum.inr i))) :
            (a : MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R)) →
              MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
          (Algebra.Presentation.relation
            (Algebra.PreSubmersivePresentation.toPresentation (universalFactorizationMapPresentation R (m + k) m k ⋯))
            (Fin.castAdd k i_1)) :
        MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
      (-Fin.addCases (motive := fun (x : Fin (m + k)) ↦ MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
            (fun (j₁ : Fin m) ↦
              if (↑(Fin.castAdd k i_1) : ℕ) ∈ Set.Icc (↑j₁ : ℕ) ((↑j₁ : ℕ) + k) then
                Polynomial.coeff
                  (Polynomial.map
                    (↑(AlgHom.comp (mapAlgHom (Algebra.ofId R (MvPolynomial (Fin (m + k)) R))) (rename Sum.inr)) :
                      MvPolynomial (Fin k) R →+* MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
                    (freeMonic R k))
                  ((↑(Fin.castAdd k i_1) : ℕ) - (↑j₁ : ℕ))
              else 0)
            (fun (j₁ : Fin k) ↦
              if (↑(Fin.castAdd k i_1) : ℕ) ∈ Set.Icc (↑j₁ : ℕ) ((↑j₁ : ℕ) + m) then
                Polynomial.coeff
                  (Polynomial.map
                    (↑(AlgHom.comp (mapAlgHom (Algebra.ofId R (MvPolynomial (Fin (m + k)) R))) (rename Sum.inl)) :
                      MvPolynomial (Fin m) R →+* MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
                    (freeMonic R m))
                  ((↑(Fin.castAdd k i_1) : ℕ) - (↑j₁ : ℕ))
              else 0)
            ((finSumFinEquiv : (a : Fin m ⊕ Fin k) → Fin (m + k)) (Sum.inr i)) :
        MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
a₁ :
  ∀ (i_1 : Fin k),
    Eq (α :=
      Algebra.Generators.Ring (R := MvPolynomial (Fin (m + k)) R)
        (Algebra.Presentation.toGenerators
          (Algebra.PreSubmersivePresentation.toPresentation (universalFactorizationMapPresentation R (m + k) m k ⋯))))
      ((pderiv
              (Algebra.PreSubmersivePresentation.map (R := MvPolynomial (Fin (m + k)) R)
                (universalFactorizationMapPresentation R (m + k) m k ⋯)
                ((finSumFinEquiv : (a : Fin m ⊕ Fin k) → Fin (m + k)) (Sum.inr i))) :
            (a : MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R)) →
              MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
          (Algebra.Presentation.relation
            (Algebra.PreSubmersivePresentation.toPresentation (universalFactorizationMapPresentation R (m + k) m k ⋯))
            (Fin.natAdd m i_1)) :
        MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
      (-Fin.addCases (motive := fun (x : Fin (m + k)) ↦ MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
            (fun (j₁ : Fin m) ↦
              if (↑(Fin.natAdd m i_1) : ℕ) ∈ Set.Icc (↑j₁ : ℕ) ((↑j₁ : ℕ) + k) then
                Polynomial.coeff
                  (Polynomial.map
                    (↑(AlgHom.comp (mapAlgHom (Algebra.ofId R (MvPolynomial (Fin (m + k)) R))) (rename Sum.inr)) :
                      MvPolynomial (Fin k) R →+* MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
                    (freeMonic R k))
                  ((↑(Fin.natAdd m i_1) : ℕ) - (↑j₁ : ℕ))
              else 0)
            (fun (j₁ : Fin k) ↦
              if (↑(Fin.natAdd m i_1) : ℕ) ∈ Set.Icc (↑j₁ : ℕ) ((↑j₁ : ℕ) + m) then
                Polynomial.coeff
                  (Polynomial.map
                    (↑(AlgHom.comp (mapAlgHom (Algebra.ofId R (MvPolynomial (Fin (m + k)) R))) (rename Sum.inl)) :
                      MvPolynomial (Fin m) R →+* MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
                    (freeMonic R m))
                  ((↑(Fin.natAdd m i_1) : ℕ) - (↑j₁ : ℕ))
              else 0)
            ((finSumFinEquiv : (a : Fin m ⊕ Fin k) → Fin (m + k)) (Sum.inr i)) :
        MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
⊢ Eq (α :=
    Algebra.Generators.Ring (R := MvPolynomial (Fin (m + k)) R)
      (Algebra.Presentation.toGenerators
        (Algebra.PreSubmersivePresentation.toPresentation (universalFactorizationMapPresentation R (m + k) m k ⋯))))
    ((pderiv
            (Algebra.PreSubmersivePresentation.map (R := MvPolynomial (Fin (m + k)) R)
              (universalFactorizationMapPresentation R (m + k) m k ⋯)
              ((finSumFinEquiv : (a : Fin m ⊕ Fin k) → Fin (m + k)) (Sum.inr i))) :
          (a : MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R)) →
            MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
        (Algebra.Presentation.relation
          (Algebra.PreSubmersivePresentation.toPresentation (universalFactorizationMapPresentation R (m + k) m k ⋯))
          j) :
      MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
    (-Fin.addCases (motive := fun (x : Fin (m + k)) ↦ MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
          (fun (j₁ : Fin m) ↦
            if (↑j : ℕ) ∈ Set.Icc (↑j₁ : ℕ) ((↑j₁ : ℕ) + k) then
              Polynomial.coeff
                (Polynomial.map
                  (↑(AlgHom.comp (mapAlgHom (Algebra.ofId R (MvPolynomial (Fin (m + k)) R))) (rename Sum.inr)) :
                    MvPolynomial (Fin k) R →+* MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
                  (freeMonic R k))
                ((↑j : ℕ) - (↑j₁ : ℕ))
            else 0)
          (fun (j₁ : Fin k) ↦
            if (↑j : ℕ) ∈ Set.Icc (↑j₁ : ℕ) ((↑j₁ : ℕ) + m) then
              Polynomial.coeff
                (Polynomial.map
                  (↑(AlgHom.comp (mapAlgHom (Algebra.ofId R (MvPolynomial (Fin (m + k)) R))) (rename Sum.inl)) :
                    MvPolynomial (Fin m) R →+* MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))
                  (freeMonic R m))
                ((↑j : ℕ) - (↑j₁ : ℕ))
            else 0)
          ((finSumFinEquiv : (a : Fin m ⊕ Fin k) → Fin (m + k)) (Sum.inr i)) :
      MvPolynomial (Fin m ⊕ Fin k) (MvPolynomial (Fin (m + k)) R))

Tactic:
induction j using Fin.addCases