have : ∀ (x) (_ : x ∈ p.support),
    (fun j : ι →₀ ℕ => j + Finsupp.single i (p.totalDegree - j.sum fun (_x : ι) (m : ℕ) => m))
        x = x := by
  intro x hx
  simp only [add_right_eq_self, Finsupp.single_eq_same, tsub_eq_zero_iff_le, Finsupp.single_tsub,
    Finsupp.single_le_iff]
  rw [← hp (mem_support_iff.mp hx), weightedDegree_one]
  exact le_refl _
case neg
R : Type u_1
ι : Type u_2
inst✝ : CommSemiring R
i : ι
p : MvPolynomial ι R
hpn : ¬p = 0
hp : IsWeightedHomogeneous 1 p p.totalDegree
⊢ Finsupp.mapDomain (fun j => j + Finsupp.single i (p.totalDegree - j.sum fun x m => m)) p = p
case neg
R : Type u_1
ι : Type u_2
inst✝ : CommSemiring R
i : ι
p : MvPolynomial ι R
hpn : ¬p = 0
hp : IsWeightedHomogeneous 1 p p.totalDegree
this : ∀ x ∈ p.support, (fun j => j + Finsupp.single i (p.totalDegree - j.sum fun _x m => m)) x = x
⊢ Finsupp.mapDomain (fun j => j + Finsupp.single i (p.totalDegree - j.sum fun x m => m)) p = p