-- Lean 4 proof step from Mathlib.AlgebraicGeometry.EllipticCurve.Projective.Formula (goal)
Goal:
R : Type r
S : Type s
inst : CommRing R
inst_1 : CommRing S
W' : Projective R
f : R →+* S
P : Fin 3 → R
⊢ (W'.map f).dblX ((⇑f : (a : R) → S) ∘ P) = (f : (a : R) → S) (W'.dblX P)
have simp : HMul.hMul (α := S) 2 (((⇑f : (a : R) → S) ∘ P) x) * HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) y) 3 +
                                                                                                3 * (W'.map f).a₁ *
                                                                                                    HPow.hPow (α := S)
                                                                                                      (β := ℕ) sorry 2 *
                                                                                                  HPow.hPow (α := S)
                                                                                                    (β := ℕ)
                                                                                                    (((⇑f :
                                                                                                          (a : R) → S) ∘
                                                                                                        P)
                                                                                                      y)
                                                                                                    2 +
                                                                                              6 * (W'.map f).a₂ *
                                                                                                  HPow.hPow (α := S)
                                                                                                    (β := ℕ)
                                                                                                    (((⇑f :
                                                                                                          (a : R) → S) ∘
                                                                                                        P)
                                                                                                      x)
                                                                                                    3 *
                                                                                                ((⇑f : (a : R) → S) ∘ P)
                                                                                                  y -
                                                                                            8 * (W'.map f).a₂ *
                                                                                                HPow.hPow (α := S) (β :=
                                                                                                  ℕ)
                                                                                                  (((⇑f : (a : R) → S) ∘
                                                                                                      P)
                                                                                                    y)
                                                                                                  3 *
                                                                                              ((⇑f : (a : R) → S) ∘ P)
                                                                                                z +
                                                                                          9 * (W'.map f).a₃ *
                                                                                            HPow.hPow (α := S) (β := ℕ)
                                                                                              (((⇑f : (a : R) → S) ∘ P)
                                                                                                x)
                                                                                              4 -
                                                                                        6 * (W'.map f).a₃ *
                                                                                              ((⇑f : (a : R) → S) ∘ P)
                                                                                                x *
                                                                                            HPow.hPow (α := S) (β := ℕ)
                                                                                              (((⇑f : (a : R) → S) ∘ P)
                                                                                                y)
                                                                                              2 *
                                                                                          ((⇑f : (a : R) → S) ∘ P) z -
                                                                                      6 * (W'.map f).a₄ *
                                                                                            HPow.hPow (α := S) (β := ℕ)
                                                                                              (((⇑f : (a : R) → S) ∘ P)
                                                                                                x)
                                                                                              2 *
                                                                                          ((⇑f : (a : R) → S) ∘ P) y *
                                                                                        ((⇑f : (a : R) → S) ∘ P) z -
                                                                                    18 * (W'.map f).a₆ *
                                                                                          ((⇑f : (a : R) → S) ∘ P) x *
                                                                                        ((⇑f : (a : R) → S) ∘ P) y *
                                                                                      HPow.hPow (α := S) (β := ℕ)
                                                                                        (((⇑f : (a : R) → S) ∘ P) z) 2 +
                                                                                  3 *
                                                                                        HPow.hPow (β := ℕ) (W'.map f).a₁
                                                                                          2 *
                                                                                      HPow.hPow (α := S) (β := ℕ)
                                                                                        (((⇑f : (a : R) → S) ∘ P) x) 3 *
                                                                                    ((⇑f : (a : R) → S) ∘ P) y -
                                                                                2 * HPow.hPow (β := ℕ) (W'.map f).a₁ 2 *
                                                                                    HPow.hPow (α := S) (β := ℕ)
                                                                                      (((⇑f : (a : R) → S) ∘ P) y) 3 *
                                                                                  ((⇑f : (a : R) → S) ∘ P) z +
                                                                              3 * (W'.map f).a₁ * (W'.map f).a₂ *
                                                                                HPow.hPow (α := S) (β := ℕ)
                                                                                  (((⇑f : (a : R) → S) ∘ P) x) 4 -
                                                                            12 * (W'.map f).a₁ * (W'.map f).a₂ *
                                                                                  ((⇑f : (a : R) → S) ∘ P) x *
                                                                                HPow.hPow (α := S) (β := ℕ)
                                                                                  (((⇑f : (a : R) → S) ∘ P) y) 2 *
                                                                              ((⇑f : (a : R) → S) ∘ P) z -
                                                                          9 * (W'.map f).a₁ * (W'.map f).a₃ *
                                                                                HPow.hPow (α := S) (β := ℕ)
                                                                                  (((⇑f : (a : R) → S) ∘ P) x) 2 *
                                                                              ((⇑f : (a : R) → S) ∘ P) y *
                                                                            ((⇑f : (a : R) → S) ∘ P) z -
                                                                        3 * (W'.map f).a₁ * (W'.map f).a₄ *
                                                                            HPow.hPow (α := S) (β := ℕ)
                                                                              (((⇑f : (a : R) → S) ∘ P) x) 3 *
                                                                          ((⇑f : (a : R) → S) ∘ P) z -
                                                                      9 * (W'.map f).a₁ * (W'.map f).a₆ *
                                                                          HPow.hPow (α := S) (β := ℕ)
                                                                            (((⇑f : (a : R) → S) ∘ P) x) 2 *
                                                                        HPow.hPow (α := S) (β := ℕ)
                                                                          (((⇑f : (a : R) → S) ∘ P) z) 2 +
                                                                    8 * HPow.hPow (β := ℕ) (W'.map f).a₂ 2 *
                                                                          HPow.hPow (α := S) (β := ℕ)
                                                                            (((⇑f : (a : R) → S) ∘ P) x) 2 *
                                                                        ((⇑f : (a : R) → S) ∘ P) y *
                                                                      ((⇑f : (a : R) → S) ∘ P) z +
                                                                  12 * (W'.map f).a₂ * (W'.map f).a₃ *
                                                                      HPow.hPow (α := S) (β := ℕ)
                                                                        (((⇑f : (a : R) → S) ∘ P) x) 3 *
                                                                    ((⇑f : (a : R) → S) ∘ P) z -
                                                                12 * (W'.map f).a₂ * (W'.map f).a₃ *
                                                                    HPow.hPow (α := S) (β := ℕ)
                                                                      (((⇑f : (a : R) → S) ∘ P) y) 2 *
                                                                  HPow.hPow (α := S) (β := ℕ)
                                                                    (((⇑f : (a : R) → S) ∘ P) z) 2 +
                                                              8 * (W'.map f).a₂ * (W'.map f).a₄ *
                                                                    ((⇑f : (a : R) → S) ∘ P) x *
                                                                  ((⇑f : (a : R) → S) ∘ P) y *
                                                                HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z)
                                                                  2 -
                                                            12 * HPow.hPow (β := ℕ) (W'.map f).a₃ 2 *
                                                                  ((⇑f : (a : R) → S) ∘ P) x *
                                                                ((⇑f : (a : R) → S) ∘ P) y *
                                                              HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z)
                                                                2 +
                                                          6 * (W'.map f).a₃ * (W'.map f).a₄ *
                                                              HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) x)
                                                                2 *
                                                            HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 2 +
                                                        2 * HPow.hPow (β := ℕ) (W'.map f).a₄ 2 *
                                                            ((⇑f : (a : R) → S) ∘ P) y *
                                                          HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 3 +
                                                      HPow.hPow (β := ℕ) (W'.map f).a₁ 3 *
                                                        HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) x) 4 -
                                                    3 * HPow.hPow (β := ℕ) (W'.map f).a₁ 3 *
                                                          ((⇑f : (a : R) → S) ∘ P) x *
                                                        HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) y) 2 *
                                                      ((⇑f : (a : R) → S) ∘ P) z -
                                                  2 * HPow.hPow (β := ℕ) (W'.map f).a₁ 2 * (W'.map f).a₂ *
                                                        HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) x) 2 *
                                                      ((⇑f : (a : R) → S) ∘ P) y *
                                                    ((⇑f : (a : R) → S) ∘ P) z -
                                                3 * HPow.hPow (β := ℕ) (W'.map f).a₁ 2 * (W'.map f).a₃ *
                                                    HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) y) 2 *
                                                  HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 2 +
                                              2 * HPow.hPow (β := ℕ) (W'.map f).a₁ 2 * (W'.map f).a₄ *
                                                    ((⇑f : (a : R) → S) ∘ P) x *
                                                  ((⇑f : (a : R) → S) ∘ P) y *
                                                HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 2 +
                                            4 * (W'.map f).a₁ * HPow.hPow (β := ℕ) (W'.map f).a₂ 2 *
                                                HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) x) 3 *
                                              ((⇑f : (a : R) → S) ∘ P) z -
                                          8 * (W'.map f).a₁ * (W'.map f).a₂ * (W'.map f).a₃ *
                                                ((⇑f : (a : R) → S) ∘ P) x *
                                              ((⇑f : (a : R) → S) ∘ P) y *
                                            HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 2 +
                                        4 * (W'.map f).a₁ * (W'.map f).a₂ * (W'.map f).a₄ *
                                            HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) x) 2 *
                                          HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 2 -
                                      3 * (W'.map f).a₁ * HPow.hPow (β := ℕ) (W'.map f).a₃ 2 *
                                          HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) x) 2 *
                                        HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 2 +
                                    2 * (W'.map f).a₁ * (W'.map f).a₃ * (W'.map f).a₄ * ((⇑f : (a : R) → S) ∘ P) y *
                                      HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 3 +
                                  (W'.map f).a₁ * HPow.hPow (β := ℕ) (W'.map f).a₄ 2 * ((⇑f : (a : R) → S) ∘ P) x *
                                    HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 3 +
                                4 * HPow.hPow (β := ℕ) (W'.map f).a₂ 2 * (W'.map f).a₃ *
                                    HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) x) 2 *
                                  HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 2 -
                              6 * (W'.map f).a₂ * HPow.hPow (β := ℕ) (W'.map f).a₃ 2 * ((⇑f : (a : R) → S) ∘ P) y *
                                HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 3 +
                            4 * (W'.map f).a₂ * (W'.map f).a₃ * (W'.map f).a₄ * ((⇑f : (a : R) → S) ∘ P) x *
                              HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 3 -
                          2 * HPow.hPow (β := ℕ) (W'.map f).a₃ 3 * ((⇑f : (a : R) → S) ∘ P) x *
                            HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 3 +
                        (W'.map f).a₃ * HPow.hPow (β := ℕ) (W'.map f).a₄ 2 *
                          HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 4 -
                      HPow.hPow (β := ℕ) (W'.map f).a₁ 4 * HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) x) 2 *
                          ((⇑f : (a : R) → S) ∘ P) y *
                        ((⇑f : (a : R) → S) ∘ P) z +
                    HPow.hPow (β := ℕ) (W'.map f).a₁ 3 * (W'.map f).a₂ *
                        HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) x) 3 *
                      ((⇑f : (a : R) → S) ∘ P) z -
                  2 * HPow.hPow (β := ℕ) (W'.map f).a₁ 3 * (W'.map f).a₃ * ((⇑f : (a : R) → S) ∘ P) x *
                      ((⇑f : (a : R) → S) ∘ P) y *
                    HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 2 +
                HPow.hPow (β := ℕ) (W'.map f).a₁ 3 * (W'.map f).a₄ *
                    HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) x) 2 *
                  HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 2 +
              HPow.hPow (β := ℕ) (W'.map f).a₁ 2 * (W'.map f).a₂ * (W'.map f).a₃ *
                  HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) x) 2 *
                HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 2 -
            HPow.hPow (β := ℕ) (W'.map f).a₁ 2 * HPow.hPow (β := ℕ) (W'.map f).a₃ 2 * ((⇑f : (a : R) → S) ∘ P) y *
              HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 3 +
          2 * HPow.hPow (β := ℕ) (W'.map f).a₁ 2 * (W'.map f).a₃ * (W'.map f).a₄ * ((⇑f : (a : R) → S) ∘ P) x *
            HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 3 -
        (W'.map f).a₁ * (W'.map f).a₂ * HPow.hPow (β := ℕ) (W'.map f).a₃ 2 * ((⇑f : (a : R) → S) ∘ P) x *
          HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 3 -
      (W'.map f).a₂ * HPow.hPow (β := ℕ) (W'.map f).a₃ 3 * HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 4 +
    (W'.map f).a₁ * HPow.hPow (β := ℕ) (W'.map f).a₃ 2 * (W'.map f).a₄ *
      HPow.hPow (α := S) (β := ℕ) (((⇑f : (a : R) → S) ∘ P) z) 4 =
  (f : (a : R) → S)
    (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]