-- 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 :
  (⋯ + ⋯ + 9 * HPow.hPow (β := ℕ) W'.a₂ 2 * HPow.hPow (β := ℕ) (P x) 4 - ⋯ * HPow.hPow (β := ℕ) (P y) 2 * P z -
                                                                                                  ⋯ *
                                                                                                        HPow.hPow (β :=
                                                                                                          ℕ) (P x) 2 *
                                                                                                      P y *
                                                                                                    P z +
                                                                                                9 * W'.a₂ * W'.a₄ *
                                                                                                    HPow.hPow (β := ℕ)
                                                                                                      (P x) 3 *
                                                                                                  P z -
                                                                                              4 * W'.a₂ * W'.a₄ *
                                                                                                  HPow.hPow (β := ℕ)
                                                                                                    (P y) 2 *
                                                                                                HPow.hPow (β := ℕ) (P z)
                                                                                                  2 -
                                                                                            27 * W'.a₂ * W'.a₆ *
                                                                                                HPow.hPow (β := ℕ) (P x)
                                                                                                  2 *
                                                                                              HPow.hPow (β := ℕ) (P z)
                                                                                                2 -
                                                                                          9 *
                                                                                                HPow.hPow (β := ℕ) W'.a₃
                                                                                                  2 *
                                                                                              HPow.hPow (β := ℕ) (P x)
                                                                                                3 *
                                                                                            P z +
                                                                                        6 * HPow.hPow (β := ℕ) W'.a₃ 2 *
                                                                                            HPow.hPow (β := ℕ) (P y) 2 *
                                                                                          HPow.hPow (β := ℕ) (P z) 2 -
                                                                                      12 * W'.a₃ * W'.a₄ * P x * P y *
                                                                                        HPow.hPow (β := ℕ) (P z) 2 +
                                                                                    9 * HPow.hPow (β := ℕ) W'.a₄ 2 *
                                                                                        HPow.hPow (β := ℕ) (P x) 2 *
                                                                                      HPow.hPow (β := ℕ) (P z) 2 -
                                                                                  2 * HPow.hPow (β := ℕ) W'.a₁ 3 *
                                                                                      HPow.hPow (β := ℕ) (P x) 3 *
                                                                                    P y +
                                                                                HPow.hPow (β := ℕ) W'.a₁ 3 *
                                                                                    HPow.hPow (β := ℕ) (P y) 3 *
                                                                                  P z +
                                                                              3 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₂ *
                                                                                HPow.hPow (β := ℕ) (P x) 4 +
                                                                            2 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₂ *
                                                                                  P x *
                                                                                HPow.hPow (β := ℕ) (P y) 2 *
                                                                              P z +
                                                                          3 * 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 x) 3 *
                                                                          P z -
                                                                      HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₄ *
                                                                          HPow.hPow (β := ℕ) (P y) 2 *
                                                                        HPow.hPow (β := ℕ) (P z) 2 -
                                                                    12 * W'.a₁ * HPow.hPow (β := ℕ) W'.a₂ 2 *
                                                                          HPow.hPow (β := ℕ) (P x) 2 *
                                                                        P y *
                                                                      P z -
                                                                  6 * W'.a₁ * W'.a₂ * W'.a₃ *
                                                                      HPow.hPow (β := ℕ) (P x) 3 *
                                                                    P z +
                                                                4 * W'.a₁ * W'.a₂ * W'.a₃ * HPow.hPow (β := ℕ) (P y) 2 *
                                                                  HPow.hPow (β := ℕ) (P z) 2 -
                                                              8 * W'.a₁ * W'.a₂ * W'.a₄ * P x * P y *
                                                                HPow.hPow (β := ℕ) (P z) 2 +
                                                            6 * W'.a₁ * HPow.hPow (β := ℕ) W'.a₃ 2 * P x * P y *
                                                              HPow.hPow (β := ℕ) (P z) 2 -
                                                          W'.a₁ * HPow.hPow (β := ℕ) W'.a₄ 2 * P y *
                                                            HPow.hPow (β := ℕ) (P z) 3 +
                                                        8 * HPow.hPow (β := ℕ) W'.a₂ 3 * HPow.hPow (β := ℕ) (P x) 3 *
                                                          P z -
                                                      8 * HPow.hPow (β := ℕ) W'.a₂ 2 * W'.a₃ * P x * P y *
                                                        HPow.hPow (β := ℕ) (P z) 2 +
                                                    12 * HPow.hPow (β := ℕ) W'.a₂ 2 * W'.a₄ *
                                                        HPow.hPow (β := ℕ) (P x) 2 *
                                                      HPow.hPow (β := ℕ) (P z) 2 -
                                                  9 * W'.a₂ * HPow.hPow (β := ℕ) W'.a₃ 2 * HPow.hPow (β := ℕ) (P x) 2 *
                                                    HPow.hPow (β := ℕ) (P z) 2 -
                                                4 * W'.a₂ * W'.a₃ * W'.a₄ * P y * HPow.hPow (β := ℕ) (P z) 3 +
                                              6 * W'.a₂ * HPow.hPow (β := ℕ) W'.a₄ 2 * P x *
                                                HPow.hPow (β := ℕ) (P z) 3 +
                                            HPow.hPow (β := ℕ) W'.a₃ 3 * P y * HPow.hPow (β := ℕ) (P z) 3 -
                                          3 * HPow.hPow (β := ℕ) W'.a₃ 2 * W'.a₄ * P x * HPow.hPow (β := ℕ) (P z) 3 +
                                        HPow.hPow (β := ℕ) W'.a₄ 3 * HPow.hPow (β := ℕ) (P z) 4 +
                                      HPow.hPow (β := ℕ) W'.a₁ 4 * P x * HPow.hPow (β := ℕ) (P y) 2 * P z -
                                    3 * HPow.hPow (β := ℕ) W'.a₁ 3 * W'.a₂ * HPow.hPow (β := ℕ) (P x) 2 * P y * P z +
                                  HPow.hPow (β := ℕ) W'.a₁ 3 * W'.a₃ * HPow.hPow (β := ℕ) (P y) 2 *
                                    HPow.hPow (β := ℕ) (P z) 2 -
                                2 * HPow.hPow (β := ℕ) W'.a₁ 3 * W'.a₄ * P x * P y * HPow.hPow (β := ℕ) (P z) 2 +
                              2 * HPow.hPow (β := ℕ) W'.a₁ 2 * HPow.hPow (β := ℕ) W'.a₂ 2 * HPow.hPow (β := ℕ) (P x) 3 *
                                P z -
                            2 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₂ * W'.a₃ * P x * P y * HPow.hPow (β := ℕ) (P z) 2 +
                          3 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₂ * W'.a₄ * HPow.hPow (β := ℕ) (P x) 2 *
                            HPow.hPow (β := ℕ) (P z) 2 -
                        2 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₃ * W'.a₄ * P y * HPow.hPow (β := ℕ) (P z) 3 +
                      HPow.hPow (β := ℕ) W'.a₁ 2 * HPow.hPow (β := ℕ) W'.a₄ 2 * P x * HPow.hPow (β := ℕ) (P z) 3 +
                    W'.a₁ * W'.a₂ * HPow.hPow (β := ℕ) W'.a₃ 2 * P y * HPow.hPow (β := ℕ) (P z) 3 +
                  2 * W'.a₁ * W'.a₂ * W'.a₃ * W'.a₄ * P x * HPow.hPow (β := ℕ) (P z) 3 +
                W'.a₁ * W'.a₃ * HPow.hPow (β := ℕ) W'.a₄ 2 * HPow.hPow (β := ℕ) (P z) 4 -
              2 * HPow.hPow (β := ℕ) W'.a₂ 2 * HPow.hPow (β := ℕ) W'.a₃ 2 * P x * HPow.hPow (β := ℕ) (P z) 3 -
            W'.a₂ * HPow.hPow (β := ℕ) W'.a₃ 2 * W'.a₄ * HPow.hPow (β := ℕ) (P z) 4) *
          HPow.hPow (β := ℕ) (P z) 2 +
        -9 *
            (HPow.hPow (β := ℕ) (P y) 2 * P z + 2 * W'.a₁ * P x * P y * P z - 3 * HPow.hPow (β := ℕ) (P x) 3 -
              3 * W'.a₂ * HPow.hPow (β := ℕ) (P x) 2 * P z) *
          0 -
      (-(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)) *
            (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 x * P z * HPow.hPow (β := ℕ) (P y - (-P y - W'.a₁ * P x - W'.a₃ * P z)) 2) +
          P y * HPow.hPow (β := ℕ) (P z) 2 * HPow.hPow (β := ℕ) (P y - (-P y - W'.a₁ * P x - W'.a₃ * P z)) 3 +
        -9 *
            (HPow.hPow (β := ℕ) (P y) 2 * P z + 2 * W'.a₁ * P x * P y * P z - 3 * HPow.hPow (β := ℕ) (P x) 3 -
              3 * W'.a₂ * HPow.hPow (β := ℕ) (P x) 2 * P z) *
          (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'.negDblY P * HPow.hPow (β := ℕ) (P z) 2 +
        -9 *
            (HPow.hPow (β := ℕ) (P y) 2 * P z + 2 * W'.a₁ * P x * P y * P z - 3 * HPow.hPow (β := ℕ) (P x) 3 -
              3 * W'.a₂ * HPow.hPow (β := ℕ) (P x) 2 * P z) *
          0 -
      (HMul.hMul (α := R) (-(eval P : (a : MvPolynomial (Fin 3) R) → R) W'.polynomialX : R)
            (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 x * P z * HPow.hPow (β := ℕ) (P y - W'.negY P) 2) +
          P y * HPow.hPow (β := ℕ) (P z) 2 * HPow.hPow (β := ℕ) (P y - W'.negY P) 3 +
        -9 *
            (HPow.hPow (β := ℕ) (P y) 2 * P z + 2 * W'.a₁ * P x * P y * P z - 3 * HPow.hPow (β := ℕ) (P x) 3 -
              3 * W'.a₂ * HPow.hPow (β := ℕ) (P x) 2 * P z) *
          (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 [negDblY, eval_polynomialX, negY]

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