-- Lean 4 proof step from Mathlib.AlgebraicGeometry.EllipticCurve.Projective.Formula (goal)
Goal:
R : Type r
inst : CommRing R
W' : Projective R
P : Fin 3 → R
u : R
⊢ W'.dblX (u • P) = HPow.hPow (β := ℕ) u 4 * W'.dblX P
have simp : 2 * (u * P x) * HPow.hPow (β := ℕ) (u * P y) 3 +
                                                                                                3 * W'.a₁ *
                                                                                                    HPow.hPow (β := ℕ)
                                                                                                      (u * P x) 2 *
                                                                                                  HPow.hPow (β := ℕ)
                                                                                                    (u * P y) 2 +
                                                                                              6 * W'.a₂ *
                                                                                                  HPow.hPow (β := ℕ)
                                                                                                    (u * P x) 3 *
                                                                                                (u * P y) -
                                                                                            8 * W'.a₂ *
                                                                                                HPow.hPow (β := ℕ)
                                                                                                  (u * P y) 3 *
                                                                                              (u * P z) +
                                                                                          9 * W'.a₃ *
                                                                                            HPow.hPow (β := ℕ) (u * P x)
                                                                                              4 -
                                                                                        6 * W'.a₃ * (u * P x) *
                                                                                            HPow.hPow (β := ℕ) (u * P y)
                                                                                              2 *
                                                                                          (u * P z) -
                                                                                      6 * W'.a₄ *
                                                                                            HPow.hPow (β := ℕ) (u * P x)
                                                                                              2 *
                                                                                          (u * P y) *
                                                                                        (u * P z) -
                                                                                    18 * W'.a₆ * (u * P x) * (u * P y) *
                                                                                      HPow.hPow (β := ℕ) (u * P z) 2 +
                                                                                  3 * HPow.hPow (β := ℕ) W'.a₁ 2 *
                                                                                      HPow.hPow (β := ℕ) (u * P x) 3 *
                                                                                    (u * P y) -
                                                                                2 * HPow.hPow (β := ℕ) W'.a₁ 2 *
                                                                                    HPow.hPow (β := ℕ) (u * P y) 3 *
                                                                                  (u * P z) +
                                                                              3 * W'.a₁ * W'.a₂ *
                                                                                HPow.hPow (β := ℕ) (u * P x) 4 -
                                                                            12 * W'.a₁ * W'.a₂ * (u * P x) *
                                                                                HPow.hPow (β := ℕ) (u * P y) 2 *
                                                                              (u * P z) -
                                                                          9 * W'.a₁ * W'.a₃ *
                                                                                HPow.hPow (β := ℕ) (u * P x) 2 *
                                                                              (u * P y) *
                                                                            (u * P z) -
                                                                        3 * W'.a₁ * W'.a₄ *
                                                                            HPow.hPow (β := ℕ) (u * P x) 3 *
                                                                          (u * P z) -
                                                                      9 * W'.a₁ * W'.a₆ *
                                                                          HPow.hPow (β := ℕ) (u * P x) 2 *
                                                                        HPow.hPow (β := ℕ) (u * P z) 2 +
                                                                    8 * HPow.hPow (β := ℕ) W'.a₂ 2 *
                                                                          HPow.hPow (β := ℕ) (u * P x) 2 *
                                                                        (u * P y) *
                                                                      (u * P z) +
                                                                  12 * W'.a₂ * W'.a₃ * HPow.hPow (β := ℕ) (u * P x) 3 *
                                                                    (u * P z) -
                                                                12 * W'.a₂ * W'.a₃ * HPow.hPow (β := ℕ) (u * P y) 2 *
                                                                  HPow.hPow (β := ℕ) (u * P z) 2 +
                                                              8 * W'.a₂ * W'.a₄ * (u * P x) * (u * P y) *
                                                                HPow.hPow (β := ℕ) (u * P z) 2 -
                                                            12 * HPow.hPow (β := ℕ) W'.a₃ 2 * (u * P x) * (u * P y) *
                                                              HPow.hPow (β := ℕ) (u * P z) 2 +
                                                          6 * W'.a₃ * W'.a₄ * HPow.hPow (β := ℕ) (u * P x) 2 *
                                                            HPow.hPow (β := ℕ) (u * P z) 2 +
                                                        2 * HPow.hPow (β := ℕ) W'.a₄ 2 * (u * P y) *
                                                          HPow.hPow (β := ℕ) (u * P z) 3 +
                                                      HPow.hPow (β := ℕ) W'.a₁ 3 * HPow.hPow (β := ℕ) (u * P x) 4 -
                                                    3 * HPow.hPow (β := ℕ) W'.a₁ 3 * (u * P x) *
                                                        HPow.hPow (β := ℕ) (u * P y) 2 *
                                                      (u * P z) -
                                                  2 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₂ *
                                                        HPow.hPow (β := ℕ) (u * P x) 2 *
                                                      (u * P y) *
                                                    (u * P z) -
                                                3 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₃ *
                                                    HPow.hPow (β := ℕ) (u * P y) 2 *
                                                  HPow.hPow (β := ℕ) (u * P z) 2 +
                                              2 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₄ * (u * P x) * (u * P y) *
                                                HPow.hPow (β := ℕ) (u * P z) 2 +
                                            4 * W'.a₁ * HPow.hPow (β := ℕ) W'.a₂ 2 * HPow.hPow (β := ℕ) (u * P x) 3 *
                                              (u * P z) -
                                          8 * W'.a₁ * W'.a₂ * W'.a₃ * (u * P x) * (u * P y) *
                                            HPow.hPow (β := ℕ) (u * P z) 2 +
                                        4 * W'.a₁ * W'.a₂ * W'.a₄ * HPow.hPow (β := ℕ) (u * P x) 2 *
                                          HPow.hPow (β := ℕ) (u * P z) 2 -
                                      3 * W'.a₁ * HPow.hPow (β := ℕ) W'.a₃ 2 * HPow.hPow (β := ℕ) (u * P x) 2 *
                                        HPow.hPow (β := ℕ) (u * P z) 2 +
                                    2 * W'.a₁ * W'.a₃ * W'.a₄ * (u * P y) * HPow.hPow (β := ℕ) (u * P z) 3 +
                                  W'.a₁ * HPow.hPow (β := ℕ) W'.a₄ 2 * (u * P x) * HPow.hPow (β := ℕ) (u * P z) 3 +
                                4 * HPow.hPow (β := ℕ) W'.a₂ 2 * W'.a₃ * HPow.hPow (β := ℕ) (u * P x) 2 *
                                  HPow.hPow (β := ℕ) (u * P z) 2 -
                              6 * W'.a₂ * HPow.hPow (β := ℕ) W'.a₃ 2 * (u * P y) * HPow.hPow (β := ℕ) (u * P z) 3 +
                            4 * W'.a₂ * W'.a₃ * W'.a₄ * (u * P x) * HPow.hPow (β := ℕ) (u * P z) 3 -
                          2 * HPow.hPow (β := ℕ) W'.a₃ 3 * (u * P x) * HPow.hPow (β := ℕ) (u * P z) 3 +
                        W'.a₃ * HPow.hPow (β := ℕ) W'.a₄ 2 * HPow.hPow (β := ℕ) (u * P z) 4 -
                      HPow.hPow (β := ℕ) W'.a₁ 4 * HPow.hPow (β := ℕ) (u * P x) 2 * (u * P y) * (u * P z) +
                    HPow.hPow (β := ℕ) W'.a₁ 3 * W'.a₂ * HPow.hPow (β := ℕ) (u * P x) 3 * (u * P z) -
                  2 * HPow.hPow (β := ℕ) W'.a₁ 3 * W'.a₃ * (u * P x) * (u * P y) * HPow.hPow (β := ℕ) (u * P z) 2 +
                HPow.hPow (β := ℕ) W'.a₁ 3 * W'.a₄ * HPow.hPow (β := ℕ) (u * P x) 2 * HPow.hPow (β := ℕ) (u * P z) 2 +
              HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₂ * W'.a₃ * HPow.hPow (β := ℕ) (u * P x) 2 *
                HPow.hPow (β := ℕ) (u * P z) 2 -
            HPow.hPow (β := ℕ) W'.a₁ 2 * HPow.hPow (β := ℕ) W'.a₃ 2 * (u * P y) * HPow.hPow (β := ℕ) (u * P z) 3 +
          2 * HPow.hPow (β := ℕ) W'.a₁ 2 * W'.a₃ * W'.a₄ * (u * P x) * HPow.hPow (β := ℕ) (u * P z) 3 -
        W'.a₁ * W'.a₂ * HPow.hPow (β := ℕ) W'.a₃ 2 * (u * P x) * HPow.hPow (β := ℕ) (u * P z) 3 -
      W'.a₂ * HPow.hPow (β := ℕ) W'.a₃ 3 * HPow.hPow (β := ℕ) (u * P z) 4 +
    W'.a₁ * HPow.hPow (β := ℕ) W'.a₃ 2 * W'.a₄ * HPow.hPow (β := ℕ) (u * P z) 4 =
  HPow.hPow (β := ℕ) u 4 *
    (2 * P x * HPow.hPow (β := ℕ) (P y) 3 + 3 * W'.a₁ * HPow.hPow (β := ℕ) (P x) 2 * HPow.hPow (β := ℕ) (P y) 2 +
                                                                                                6 * W'.a₂ *
                                                                                                    HPow.hPow (β := ℕ)
                                                                                                      (P x) 3 *
                                                                                                  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)
Tactic: simp only [dblX, smul_fin3_ext]