-- Module: Mathlib.AlgebraicGeometry.EllipticCurve.Jacobian.Point
Goal:
R : Type r
inst : CommRing R
W' : Jacobian R
P : Fin 3 → R
hP : W'.Equation P
a :
  -P y * HPow.hPow (β := ℕ) (P x) 3 * HPow.hPow (β := ℕ) (P z) 3 +
                                              2 * P y *
                                                  HPow.hPow (β := ℕ)
                                                    (-P y - W'.a₁ * P x * P z - W'.a₃ * HPow.hPow (β := ℕ) (P z) 3) 2 *
                                                HPow.hPow (β := ℕ) (P z) 3 -
                                            3 * HPow.hPow (β := ℕ) (P x) 2 * P x *
                                                  (-P y - W'.a₁ * P x * P z - W'.a₃ * HPow.hPow (β := ℕ) (P z) 3) *
                                                HPow.hPow (β := ℕ) (P z) 2 *
                                              P z +
                                          3 * P x * P y * HPow.hPow (β := ℕ) (P x) 2 * P z *
                                            HPow.hPow (β := ℕ) (P z) 2 +
                                        HPow.hPow (β := ℕ) (P x) 3 *
                                            (-P y - W'.a₁ * P x * P z - W'.a₃ * HPow.hPow (β := ℕ) (P z) 3) *
                                          HPow.hPow (β := ℕ) (P z) 3 -
                                      2 * HPow.hPow (β := ℕ) (P y) 2 *
                                          (-P y - W'.a₁ * P x * P z - W'.a₃ * HPow.hPow (β := ℕ) (P z) 3) *
                                        HPow.hPow (β := ℕ) (P z) 3 +
                                    W'.a₁ * P x *
                                        HPow.hPow (β := ℕ)
                                          (-P y - W'.a₁ * P x * P z - W'.a₃ * HPow.hPow (β := ℕ) (P z) 3) 2 *
                                      HPow.hPow (β := ℕ) (P z) 4 +
                                  W'.a₁ * P y * P x * (-P y - W'.a₁ * P x * P z - W'.a₃ * HPow.hPow (β := ℕ) (P z) 3) *
                                      HPow.hPow (β := ℕ) (P z) 3 *
                                    P z -
                                W'.a₁ * P x * P y * (-P y - W'.a₁ * P x * P z - W'.a₃ * HPow.hPow (β := ℕ) (P z) 3) *
                                    P z *
                                  HPow.hPow (β := ℕ) (P z) 3 -
                              W'.a₁ * HPow.hPow (β := ℕ) (P y) 2 * P x * HPow.hPow (β := ℕ) (P z) 4 -
                            2 * W'.a₂ * P x * P x * (-P y - W'.a₁ * P x * P z - W'.a₃ * HPow.hPow (β := ℕ) (P z) 3) *
                                HPow.hPow (β := ℕ) (P z) 4 *
                              P z +
                          2 * W'.a₂ * P x * P y * P x * P z * HPow.hPow (β := ℕ) (P z) 4 +
                        W'.a₃ * HPow.hPow (β := ℕ) (-P y - W'.a₁ * P x * P z - W'.a₃ * HPow.hPow (β := ℕ) (P z) 3) 2 *
                          HPow.hPow (β := ℕ) (P z) 6 -
                      W'.a₃ * HPow.hPow (β := ℕ) (P y) 2 * HPow.hPow (β := ℕ) (P z) 6 -
                    W'.a₄ * P x * (-P y - W'.a₁ * P x * P z - W'.a₃ * HPow.hPow (β := ℕ) (P z) 3) *
                        HPow.hPow (β := ℕ) (P z) 6 *
                      P z -
                  W'.a₄ * P x * (-P y - W'.a₁ * P x * P z - W'.a₃ * HPow.hPow (β := ℕ) (P z) 3) *
                      HPow.hPow (β := ℕ) (P z) 4 *
                    HPow.hPow (β := ℕ) (P z) 3 +
                W'.a₄ * P y * P x * HPow.hPow (β := ℕ) (P z) 3 * HPow.hPow (β := ℕ) (P z) 4 +
              W'.a₄ * P x * P y * P z * HPow.hPow (β := ℕ) (P z) 6 -
            2 * W'.a₆ * (-P y - W'.a₁ * P x * P z - W'.a₃ * HPow.hPow (β := ℕ) (P z) 3) * HPow.hPow (β := ℕ) (P z) 6 *
              HPow.hPow (β := ℕ) (P z) 3 +
          2 * W'.a₆ * P y * HPow.hPow (β := ℕ) (P z) 3 * HPow.hPow (β := ℕ) (P z) 6 +
        -2 * HPow.hPow (β := ℕ) (P z) 3 * (P y - (-P y - W'.a₁ * P x * P z - W'.a₃ * HPow.hPow (β := ℕ) (P z) 3)) * 0 -
      (HPow.hPow (β := ℕ) (P z * (P y - (-P y - W'.a₁ * P x * P z - W'.a₃ * HPow.hPow (β := ℕ) (P z) 3))) 3 +
        -2 * HPow.hPow (β := ℕ) (P z) 3 * (P y - (-P y - W'.a₁ * P x * P z - W'.a₃ * HPow.hPow (β := ℕ) (P z) 3)) *
          (HPow.hPow (β := ℕ) (P y) 2 + W'.a₁ * P x * P y * P z + W'.a₃ * P y * HPow.hPow (β := ℕ) (P z) 3 -
            (HPow.hPow (β := ℕ) (P x) 3 + W'.a₂ * HPow.hPow (β := ℕ) (P x) 2 * HPow.hPow (β := ℕ) (P z) 2 +
                W'.a₄ * P x * HPow.hPow (β := ℕ) (P z) 4 +
              W'.a₆ * HPow.hPow (β := ℕ) (P z) 6))) =
    0
⊢ W'.negAddY P (W'.neg P) + -2 * HPow.hPow (β := ℕ) (P z) 3 * (P y - W'.negY P) * 0 -
      (HPow.hPow (β := ℕ) (W'.dblZ P) 3 +
        -2 * HPow.hPow (β := ℕ) (P z) 3 * (P y - W'.negY P) *
          (HPow.hPow (β := ℕ) (P y) 2 + W'.a₁ * P x * P y * P z + W'.a₃ * P y * HPow.hPow (β := ℕ) (P z) 3 -
            (HPow.hPow (β := ℕ) (P x) 3 + W'.a₂ * HPow.hPow (β := ℕ) (P x) 2 * HPow.hPow (β := ℕ) (P z) 2 +
                W'.a₄ * P x * HPow.hPow (β := ℕ) (P z) 4 +
              W'.a₆ * HPow.hPow (β := ℕ) (P z) 6))) =
    0

Tactic:
rw [negAddY, neg_X, neg_Y, neg_Z, dblZ, negY]

Premises used: WeierstrassCurve.Jacobian.negAddY, WeierstrassCurve.Jacobian.negY, WeierstrassCurve.Jacobian.dblZ, WeierstrassCurve.Jacobian.neg_X, WeierstrassCurve.Jacobian.neg_Z, WeierstrassCurve.Jacobian.neg_Y