-- Module: Mathlib.AlgebraicGeometry.EllipticCurve.Projective.Formula
Goal:
R : Type r
inst : CommRing R
W' : Projective R
P : Fin 3 → R
hP : W'.Equation P
a :
  (⋯ + ⋯ + ⋯ * P y - 8 * W'.a₂ * HPow.hPow (β := ℕ) (P y) 3 * P z + 9 * W'.a₃ * HPow.hPow (β := ℕ) (P x) 4 -
                                                                                                6 * W'.a₃ * P x *
                                                                                                    HPow.hPow (β := ℕ)
                                                                                                      (P y) 2 *
                                                                                                  P z -
                                                                                              6 * W'.a₄ *
                                                                                                    HPow.hPow (β := ℕ)
                                                                                                      (P x) 2 *
                                                                                                  P y *
                                                                                                P z -
                                                                                            18 * W'.a₆ * P x * P y *
                                                                                              HPow.hPow (β := ℕ) (P z)
                                                                                                2 +
                                                                                          3 *
                                                                                                HPow.hPow (β := ℕ) W'.a₁
                                                                                                  2 *
                                                                                              HPow.hPow (β := ℕ) (P x)
                                                                                                3 *
                                                                                            P y -
                                                                                        2 * HPow.hPow (β := ℕ) W'.a₁ 2 *
                                                                                            HPow.hPow (β := ℕ) (P y) 3 *
                                                                                          P z +
                                                                                      3 * W'.a₁ * W'.a₂ *
                                                                                        HPow.hPow (β := ℕ) (P x) 4 -
                                                                                    12 * W'.a₁ * W'.a₂ * P x *
                                                                                        HPow.hPow (β := ℕ) (P y) 2 *
                                                                                      P z -
                                                                                  9 * W'.a₁ * W'.a₃ *
                                                                                        HPow.hPow (β := ℕ) (P x) 2 *
                                                                                      P y *
                                                                                    P z -
                                                                                3 * W'.a₁ * W'.a₄ *
                                                                                    HPow.hPow (β := ℕ) (P x) 3 *
                                                                                  P z -
                                                                              9 * W'.a₁ * W'.a₆ *
                                                                                  HPow.hPow (β := ℕ) (P x) 2 *
                                                                                HPow.hPow (β := ℕ) (P z) 2 +
                                                                            8 * HPow.hPow (β := ℕ) W'.a₂ 2 *
                                                                                  HPow.hPow (β := ℕ) (P x) 2 *
                                                                                P y *
                                                                              P z +
                                                                          12 * W'.a₂ * W'.a₃ *
                                                                              HPow.hPow (β := ℕ) (P x) 3 *
                                                                            P z -
                                                                        12 * W'.a₂ * W'.a₃ *
                                                                            HPow.hPow (β := ℕ) (P y) 2 *
                                                                          HPow.hPow (β := ℕ) (P z) 2 +
                                                                      8 * W'.a₂ * W'.a₄ * P x * P y *
                                                                        HPow.hPow (β := ℕ) (P z) 2 -
                                                                    12 * HPow.hPow (β := ℕ) W'.a₃ 2 * P x * P y *
                                                                      HPow.hPow (β := ℕ) (P z) 2 +
                                                                  6 * W'.a₃ * W'.a₄ * HPow.hPow (β := ℕ) (P x) 2 *
                                                                    HPow.hPow (β := ℕ) (P z) 2 +
                                                                2 * HPow.hPow (β := ℕ) W'.a₄ 2 * P y *
                                                                  HPow.hPow (β := ℕ) (P z) 3 +
                                                              HPow.hPow (β := ℕ) W'.a₁ 3 * HPow.hPow (β := ℕ) (P x) 4 -
                                                            3 * HPow.hPow (β := ℕ) W'.a₁ 3 * P x *
                                                                HPow.hPow (β := ℕ) (P y) 2 *
                                                              P z -
                                                          2 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₂ *
                                                                HPow.hPow (β := ℕ) (P x) 2 *
                                                              P y *
                                                            P z -
                                                        3 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₃ *
                                                            HPow.hPow (β := ℕ) (P y) 2 *
                                                          HPow.hPow (β := ℕ) (P z) 2 +
                                                      2 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₄ * P x * P y *
                                                        HPow.hPow (β := ℕ) (P z) 2 +
                                                    4 * W'.a₁ * HPow.hPow (β := ℕ) W'.a₂ 2 *
                                                        HPow.hPow (β := ℕ) (P x) 3 *
                                                      P z -
                                                  8 * W'.a₁ * W'.a₂ * W'.a₃ * P x * P y * HPow.hPow (β := ℕ) (P z) 2 +
                                                4 * W'.a₁ * W'.a₂ * W'.a₄ * HPow.hPow (β := ℕ) (P x) 2 *
                                                  HPow.hPow (β := ℕ) (P z) 2 -
                                              3 * W'.a₁ * HPow.hPow (β := ℕ) W'.a₃ 2 * HPow.hPow (β := ℕ) (P x) 2 *
                                                HPow.hPow (β := ℕ) (P z) 2 +
                                            2 * W'.a₁ * W'.a₃ * W'.a₄ * P y * HPow.hPow (β := ℕ) (P z) 3 +
                                          W'.a₁ * HPow.hPow (β := ℕ) W'.a₄ 2 * P x * HPow.hPow (β := ℕ) (P z) 3 +
                                        4 * HPow.hPow (β := ℕ) W'.a₂ 2 * W'.a₃ * HPow.hPow (β := ℕ) (P x) 2 *
                                          HPow.hPow (β := ℕ) (P z) 2 -
                                      6 * W'.a₂ * HPow.hPow (β := ℕ) W'.a₃ 2 * P y * HPow.hPow (β := ℕ) (P z) 3 +
                                    4 * W'.a₂ * W'.a₃ * W'.a₄ * P x * HPow.hPow (β := ℕ) (P z) 3 -
                                  2 * HPow.hPow (β := ℕ) W'.a₃ 3 * P x * HPow.hPow (β := ℕ) (P z) 3 +
                                W'.a₃ * HPow.hPow (β := ℕ) W'.a₄ 2 * HPow.hPow (β := ℕ) (P z) 4 -
                              HPow.hPow (β := ℕ) W'.a₁ 4 * HPow.hPow (β := ℕ) (P x) 2 * P y * P z +
                            HPow.hPow (β := ℕ) W'.a₁ 3 * W'.a₂ * HPow.hPow (β := ℕ) (P x) 3 * P z -
                          2 * HPow.hPow (β := ℕ) W'.a₁ 3 * W'.a₃ * P x * P y * HPow.hPow (β := ℕ) (P z) 2 +
                        HPow.hPow (β := ℕ) W'.a₁ 3 * W'.a₄ * HPow.hPow (β := ℕ) (P x) 2 * HPow.hPow (β := ℕ) (P z) 2 +
                      HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₂ * W'.a₃ * HPow.hPow (β := ℕ) (P x) 2 *
                        HPow.hPow (β := ℕ) (P z) 2 -
                    HPow.hPow (β := ℕ) W'.a₁ 2 * HPow.hPow (β := ℕ) W'.a₃ 2 * P y * HPow.hPow (β := ℕ) (P z) 3 +
                  2 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₃ * W'.a₄ * P x * HPow.hPow (β := ℕ) (P z) 3 -
                W'.a₁ * W'.a₂ * HPow.hPow (β := ℕ) W'.a₃ 2 * P x * HPow.hPow (β := ℕ) (P z) 3 -
              W'.a₂ * HPow.hPow (β := ℕ) W'.a₃ 3 * HPow.hPow (β := ℕ) (P z) 4 +
            W'.a₁ * HPow.hPow (β := ℕ) W'.a₃ 2 * W'.a₄ * HPow.hPow (β := ℕ) (P z) 4) *
          P z +
        9 * (W'.a₁ * HPow.hPow (β := ℕ) (P x) 2 + 2 * P x * P y) * 0 -
      ((HPow.hPow (β := ℕ)
                  (W'.a₁ * P y * P z -
                    (3 * HPow.hPow (β := ℕ) (P x) 2 + 2 * W'.a₂ * P x * P z + W'.a₄ * HPow.hPow (β := ℕ) (P z) 2))
                  2 -
                W'.a₁ *
                      (W'.a₁ * P y * P z -
                        (3 * HPow.hPow (β := ℕ) (P x) 2 + 2 * W'.a₂ * P x * P z + W'.a₄ * HPow.hPow (β := ℕ) (P z) 2)) *
                    P z *
                  (P y - (-P y - W'.a₁ * P x - W'.a₃ * P z)) -
              W'.a₂ * HPow.hPow (β := ℕ) (P z) 2 * HPow.hPow (β := ℕ) (P y - (-P y - W'.a₁ * P x - W'.a₃ * P z)) 2 -
            2 * P x * P z * HPow.hPow (β := ℕ) (P y - (-P y - W'.a₁ * P x - W'.a₃ * P z)) 2) *
          (P y - (-P y - W'.a₁ * P x - W'.a₃ * P z)) +
        9 * (W'.a₁ * HPow.hPow (β := ℕ) (P x) 2 + 2 * P x * P y) *
          (HPow.hPow (β := ℕ) (P y) 2 * P z + W'.a₁ * P x * P y * P z + W'.a₃ * P y * HPow.hPow (β := ℕ) (P z) 2 -
            (HPow.hPow (β := ℕ) (P x) 3 + W'.a₂ * HPow.hPow (β := ℕ) (P x) 2 * P z +
                W'.a₄ * P x * HPow.hPow (β := ℕ) (P z) 2 +
              W'.a₆ * HPow.hPow (β := ℕ) (P z) 3))) =
    0
⊢ W'.dblX P * P z + 9 * (W'.a₁ * HPow.hPow (β := ℕ) (P x) 2 + 2 * P x * P y) * 0 -
      ((HPow.hPow (α := R) (β := ℕ) ((eval P : (a : MvPolynomial (Fin 3) R) → R) W'.polynomialX : R) 2 -
                HMul.hMul (β := R) W'.a₁ ((eval P : (a : MvPolynomial (Fin 3) R) → R) W'.polynomialX : R) * P z *
                  (P y - W'.negY P) -
              W'.a₂ * HPow.hPow (β := ℕ) (P z) 2 * HPow.hPow (β := ℕ) (P y - W'.negY P) 2 -
            2 * P x * P z * HPow.hPow (β := ℕ) (P y - W'.negY P) 2) *
          (P y - W'.negY P) +
        9 * (W'.a₁ * HPow.hPow (β := ℕ) (P x) 2 + 2 * P x * P y) *
          (HPow.hPow (β := ℕ) (P y) 2 * P z + W'.a₁ * P x * P y * P z + W'.a₃ * P y * HPow.hPow (β := ℕ) (P z) 2 -
            (HPow.hPow (β := ℕ) (P x) 3 + W'.a₂ * HPow.hPow (β := ℕ) (P x) 2 * P z +
                W'.a₄ * P x * HPow.hPow (β := ℕ) (P z) 2 +
              W'.a₆ * HPow.hPow (β := ℕ) (P z) 3))) =
    0

Tactic:
rw [dblX, eval_polynomialX, negY]

Premises used: WeierstrassCurve.Projective.negY, WeierstrassCurve.Projective.eval_polynomialX, WeierstrassCurve.Projective.dblX