-- Lean 4 proof step from Mathlib.AlgebraicGeometry.EllipticCurve.Projective.Formula (goal)
Goal:
R : Type r
inst : CommRing R
W' : Projective R
inst_1 : NoZeroDivisors R
P : Fin 3 → R
hP : W'.Equation P
hPz : P z = 0
⊢ W'.dblX P = 0
have rw : HMul.hMul (α := R) 2 0 * HPow.hPow (β := ℕ) (P y) 3 +
                                                                                                3 * W'.a₁ *
                                                                                                    HPow.hPow (α := R)
                                                                                                      (β := ℕ) 0 2 *
                                                                                                  HPow.hPow (β := ℕ)
                                                                                                    (P y) 2 +
                                                                                              6 * W'.a₂ *
                                                                                                  HPow.hPow (α := R)
                                                                                                    (β := ℕ) 0 3 *
                                                                                                P y -
                                                                                            8 * W'.a₂ *
                                                                                                HPow.hPow (β := ℕ) (P y)
                                                                                                  3 *
                                                                                              0 +
                                                                                          9 * W'.a₃ *
                                                                                            HPow.hPow (α := R) (β := ℕ)
                                                                                              0 4 -
                                                                                        6 * W'.a₃ * 0 *
                                                                                            HPow.hPow (β := ℕ) (P y) 2 *
                                                                                          0 -
                                                                                      6 * W'.a₄ *
                                                                                            HPow.hPow (α := R) (β := ℕ)
                                                                                              0 2 *
                                                                                          P y *
                                                                                        0 -
                                                                                    18 * W'.a₆ * 0 * P y *
                                                                                      HPow.hPow (α := R) (β := ℕ) 0 2 +
                                                                                  3 * HPow.hPow (β := ℕ) W'.a₁ 2 *
                                                                                      HPow.hPow (α := R) (β := ℕ) 0 3 *
                                                                                    P y -
                                                                                2 * HPow.hPow (β := ℕ) W'.a₁ 2 *
                                                                                    HPow.hPow (β := ℕ) (P y) 3 *
                                                                                  0 +
                                                                              3 * W'.a₁ * W'.a₂ *
                                                                                HPow.hPow (α := R) (β := ℕ) 0 4 -
                                                                            12 * W'.a₁ * W'.a₂ * 0 *
                                                                                HPow.hPow (β := ℕ) (P y) 2 *
                                                                              0 -
                                                                          9 * W'.a₁ * W'.a₃ *
                                                                                HPow.hPow (α := R) (β := ℕ) 0 2 *
                                                                              P y *
                                                                            0 -
                                                                        3 * W'.a₁ * W'.a₄ *
                                                                            HPow.hPow (α := R) (β := ℕ) 0 3 *
                                                                          0 -
                                                                      9 * W'.a₁ * W'.a₆ *
                                                                          HPow.hPow (α := R) (β := ℕ) 0 2 *
                                                                        HPow.hPow (α := R) (β := ℕ) 0 2 +
                                                                    8 * HPow.hPow (β := ℕ) W'.a₂ 2 *
                                                                          HPow.hPow (α := R) (β := ℕ) 0 2 *
                                                                        P y *
                                                                      0 +
                                                                  12 * W'.a₂ * W'.a₃ * HPow.hPow (α := R) (β := ℕ) 0 3 *
                                                                    0 -
                                                                12 * W'.a₂ * W'.a₃ * HPow.hPow (β := ℕ) (P y) 2 *
                                                                  HPow.hPow (α := R) (β := ℕ) 0 2 +
                                                              8 * W'.a₂ * W'.a₄ * 0 * P y *
                                                                HPow.hPow (α := R) (β := ℕ) 0 2 -
                                                            12 * HPow.hPow (β := ℕ) W'.a₃ 2 * 0 * P y *
                                                              HPow.hPow (α := R) (β := ℕ) 0 2 +
                                                          6 * W'.a₃ * W'.a₄ * HPow.hPow (α := R) (β := ℕ) 0 2 *
                                                            HPow.hPow (α := R) (β := ℕ) 0 2 +
                                                        2 * HPow.hPow (β := ℕ) W'.a₄ 2 * P y *
                                                          HPow.hPow (α := R) (β := ℕ) 0 3 +
                                                      HPow.hPow (β := ℕ) W'.a₁ 3 * HPow.hPow (α := R) (β := ℕ) 0 4 -
                                                    3 * HPow.hPow (β := ℕ) W'.a₁ 3 * 0 * HPow.hPow (β := ℕ) (P y) 2 *
                                                      0 -
                                                  2 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₂ *
                                                        HPow.hPow (α := R) (β := ℕ) 0 2 *
                                                      P y *
                                                    0 -
                                                3 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₃ * HPow.hPow (β := ℕ) (P y) 2 *
                                                  HPow.hPow (α := R) (β := ℕ) 0 2 +
                                              2 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₄ * 0 * P y *
                                                HPow.hPow (α := R) (β := ℕ) 0 2 +
                                            4 * W'.a₁ * HPow.hPow (β := ℕ) W'.a₂ 2 * HPow.hPow (α := R) (β := ℕ) 0 3 *
                                              0 -
                                          8 * W'.a₁ * W'.a₂ * W'.a₃ * 0 * P y * HPow.hPow (α := R) (β := ℕ) 0 2 +
                                        4 * W'.a₁ * W'.a₂ * W'.a₄ * HPow.hPow (α := R) (β := ℕ) 0 2 *
                                          HPow.hPow (α := R) (β := ℕ) 0 2 -
                                      3 * W'.a₁ * HPow.hPow (β := ℕ) W'.a₃ 2 * HPow.hPow (α := R) (β := ℕ) 0 2 *
                                        HPow.hPow (α := R) (β := ℕ) 0 2 +
                                    2 * W'.a₁ * W'.a₃ * W'.a₄ * P y * HPow.hPow (α := R) (β := ℕ) 0 3 +
                                  W'.a₁ * HPow.hPow (β := ℕ) W'.a₄ 2 * 0 * HPow.hPow (α := R) (β := ℕ) 0 3 +
                                4 * HPow.hPow (β := ℕ) W'.a₂ 2 * W'.a₃ * HPow.hPow (α := R) (β := ℕ) 0 2 *
                                  HPow.hPow (α := R) (β := ℕ) 0 2 -
                              6 * W'.a₂ * HPow.hPow (β := ℕ) W'.a₃ 2 * P y * HPow.hPow (α := R) (β := ℕ) 0 3 +
                            4 * W'.a₂ * W'.a₃ * W'.a₄ * 0 * HPow.hPow (α := R) (β := ℕ) 0 3 -
                          2 * HPow.hPow (β := ℕ) W'.a₃ 3 * 0 * HPow.hPow (α := R) (β := ℕ) 0 3 +
                        W'.a₃ * HPow.hPow (β := ℕ) W'.a₄ 2 * HPow.hPow (α := R) (β := ℕ) 0 4 -
                      HPow.hPow (β := ℕ) W'.a₁ 4 * HPow.hPow (α := R) (β := ℕ) 0 2 * P y * 0 +
                    HPow.hPow (β := ℕ) W'.a₁ 3 * W'.a₂ * HPow.hPow (α := R) (β := ℕ) 0 3 * 0 -
                  2 * HPow.hPow (β := ℕ) W'.a₁ 3 * W'.a₃ * 0 * P y * HPow.hPow (α := R) (β := ℕ) 0 2 +
                HPow.hPow (β := ℕ) W'.a₁ 3 * W'.a₄ * HPow.hPow (α := R) (β := ℕ) 0 2 * HPow.hPow (α := R) (β := ℕ) 0 2 +
              HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₂ * W'.a₃ * HPow.hPow (α := R) (β := ℕ) 0 2 *
                HPow.hPow (α := R) (β := ℕ) 0 2 -
            HPow.hPow (β := ℕ) W'.a₁ 2 * HPow.hPow (β := ℕ) W'.a₃ 2 * P y * HPow.hPow (α := R) (β := ℕ) 0 3 +
          2 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₃ * W'.a₄ * 0 * HPow.hPow (α := R) (β := ℕ) 0 3 -
        W'.a₁ * W'.a₂ * HPow.hPow (β := ℕ) W'.a₃ 2 * 0 * HPow.hPow (α := R) (β := ℕ) 0 3 -
      W'.a₂ * HPow.hPow (β := ℕ) W'.a₃ 3 * HPow.hPow (α := R) (β := ℕ) 0 4 +
    W'.a₁ * HPow.hPow (β := ℕ) W'.a₃ 2 * W'.a₄ * HPow.hPow (α := R) (β := ℕ) 0 4 =
  0
Tactic: rw [dblX, hPz, X_eq_zero_of_Z_eq_zero hP hPz]