-- Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean
@[simp]
lemma map_dblX (P : Fin 3 → R) : (W'.map f).toProjective.dblX (f ∘ P) = f (W'.dblX P)

Proof state:
R : Type r
inst✝¹ : CommRing R
W' : Projective R
S : Type v
inst✝ : CommRing S
f : R →+* S
P : Fin 3 → R
⊢ (map W' f).toProjective.dblX (⇑f ∘ P) = f (W'.dblX P)

Tactic:
simp only [dblX, map_dblU, map_negY]

Result:
R : Type r
inst✝¹ : CommRing R
W' : Projective R
S : Type v
inst✝ : CommRing S
f : R →+* S
P : Fin 3 → R
⊢ 2 * (⇑f ∘ P) x * (⇑f ∘ P) y ^ 3 + 3 * (map W' f).toProjective.a₁ * ⋯ ^ 2 * (⇑f ∘ P) y ^ 2 +
                                                                                                6 *
                                                                                                      (map W'
                                                                                                            f).toProjective.a₂ *
                                                                                                    (⇑f ∘ P) x ^ 3 *
                                                                                                  (⇑f ∘ P) y -
                                                                                              8 *
                                                                                                    (map W'
                                                                                                          f).toProjective.a₂ *
                                                                                                  (⇑f ∘ P) y ^ 3 *
                                                                                                (⇑f ∘ P) z +
                                                                                            9 *
                                                                                                (map W'
                                                                                                      f).toProjective.a₃ *
                                                                                              (⇑f ∘ P) x ^ 4 -
                                                                                          6 *
                                                                                                  (map W'
                                                                                                        f).toProjective.a₃ *
                                                                                                (⇑f ∘ P) x *
                                                                                              (⇑f ∘ P) y ^ 2 *
                                                                                            (⇑f ∘ P) z -
                                                                                        6 * (map W' f).toProjective.a₄ *
                                                                                              (⇑f ∘ P) x ^ 2 *
                                                                                            (⇑f ∘ P) y *
                                                                                          (⇑f ∘ P) z -
                                                                                      18 * (map W' f).toProjective.a₆ *
                                                                                            (⇑f ∘ P) x *
                                                                                          (⇑f ∘ P) y *
                                                                                        (⇑f ∘ P) z ^ 2 +
                                                                                    3 * (map W' f).toProjective.a₁ ^ 2 *
                                                                                        (⇑f ∘ P) x ^ 3 *
                                                                                      (⇑f ∘ P) y -
                                                                                  2 * (map W' f).toProjective.a₁ ^ 2 *
                                                                                      (⇑f ∘ P) y ^ 3 *
                                                                                    (⇑f ∘ P) z +
                                                                                3 * (map W' f).toProjective.a₁ *
                                                                                    (map W' f).toProjective.a₂ *
                                                                                  (⇑f ∘ P) x ^ 4 -
                                                                              12 * (map W' f).toProjective.a₁ *
                                                                                      (map W' f).toProjective.a₂ *
                                                                                    (⇑f ∘ P) x *
                                                                                  (⇑f ∘ P) y ^ 2 *
                                                                                (⇑f ∘ P) z -
                                                                            9 * (map W' f).toProjective.a₁ *
                                                                                    (map W' f).toProjective.a₃ *
                                                                                  (⇑f ∘ P) x ^ 2 *
                                                                                (⇑f ∘ P) y *
                                                                              (⇑f ∘ P) z -
                                                                          3 * (map W' f).toProjective.a₁ *
                                                                                (map W' f).toProjective.a₄ *
                                                                              (⇑f ∘ P) x ^ 3 *
                                                                            (⇑f ∘ P) z -
                                                                        9 * (map W' f).toProjective.a₁ *
                                                                              (map W' f).toProjective.a₆ *
                                                                            (⇑f ∘ P) x ^ 2 *
                                                                          (⇑f ∘ P) z ^ 2 +
                                                                      8 * (map W' f).toProjective.a₂ ^ 2 *
                                                                            (⇑f ∘ P) x ^ 2 *
                                                                          (⇑f ∘ P) y *
                                                                        (⇑f ∘ P) z +
                                                                    12 * (map W' f).toProjective.a₂ *
                                                                          (map W' f).toProjective.a₃ *
                                                                        (⇑f ∘ P) x ^ 3 *
                                                                      (⇑f ∘ P) z -
                                                                  12 * (map W' f).toProjective.a₂ *
                                                                        (map W' f).toProjective.a₃ *
                                                                      (⇑f ∘ P) y ^ 2 *
                                                                    (⇑f ∘ P) z ^ 2 +
                                                                8 * (map W' f).toProjective.a₂ *
                                                                        (map W' f).toProjective.a₄ *
                                                                      (⇑f ∘ P) x *
                                                                    (⇑f ∘ P) y *
                                                                  (⇑f ∘ P) z ^ 2 -
                                                              12 * (map W' f).toProjective.a₃ ^ 2 * (⇑f ∘ P) x *
                                                                  (⇑f ∘ P) y *
                                                                (⇑f ∘ P) z ^ 2 +
                                                            6 * (map W' f).toProjective.a₃ *
                                                                  (map W' f).toProjective.a₄ *
                                                                (⇑f ∘ P) x ^ 2 *
                                                              (⇑f ∘ P) z ^ 2 +
                                                          2 * (map W' f).toProjective.a₄ ^ 2 * (⇑f ∘ P) y *
                                                            (⇑f ∘ P) z ^ 3 +
                                                        (map W' f).toProjective.a₁ ^ 3 * (⇑f ∘ P) x ^ 4 -
                                                      3 * (map W' f).toProjective.a₁ ^ 3 * (⇑f ∘ P) x * (⇑f ∘ P) y ^ 2 *
                                                        (⇑f ∘ P) z -
                                                    2 * (map W' f).toProjective.a₁ ^ 2 * (map W' f).toProjective.a₂ *
                                                          (⇑f ∘ P) x ^ 2 *
                                                        (⇑f ∘ P) y *
                                                      (⇑f ∘ P) z -
                                                  3 * (map W' f).toProjective.a₁ ^ 2 * (map W' f).toProjective.a₃ *
                                                      (⇑f ∘ P) y ^ 2 *
                                                    (⇑f ∘ P) z ^ 2 +
                                                2 * (map W' f).toProjective.a₁ ^ 2 * (map W' f).toProjective.a₄ *
                                                      (⇑f ∘ P) x *
                                                    (⇑f ∘ P) y *
                                                  (⇑f ∘ P) z ^ 2 +
                                              4 * (map W' f).toProjective.a₁ * (map W' f).toProjective.a₂ ^ 2 *
                                                  (⇑f ∘ P) x ^ 3 *
                                                (⇑f ∘ P) z -
                                            8 * (map W' f).toProjective.a₁ * (map W' f).toProjective.a₂ *
                                                    (map W' f).toProjective.a₃ *
                                                  (⇑f ∘ P) x *
                                                (⇑f ∘ P) y *
                                              (⇑f ∘ P) z ^ 2 +
                                          4 * (map W' f).toProjective.a₁ * (map W' f).toProjective.a₂ *
                                                (map W' f).toProjective.a₄ *
                                              (⇑f ∘ P) x ^ 2 *
                                            (⇑f ∘ P) z ^ 2 -
                                        3 * (map W' f).toProjective.a₁ * (map W' f).toProjective.a₃ ^ 2 *
                                            (⇑f ∘ P) x ^ 2 *
                                          (⇑f ∘ P) z ^ 2 +
                                      2 * (map W' f).toProjective.a₁ * (map W' f).toProjective.a₃ *
                                            (map W' f).toProjective.a₄ *
                                          (⇑f ∘ P) y *
                                        (⇑f ∘ P) z ^ 3 +
                                    (map W' f).toProjective.a₁ * (map W' f).toProjective.a₄ ^ 2 * (⇑f ∘ P) x *
                                      (⇑f ∘ P) z ^ 3 +
                                  4 * (map W' f).toProjective.a₂ ^ 2 * (map W' f).toProjective.a₃ * (⇑f ∘ P) x ^ 2 *
                                    (⇑f ∘ P) z ^ 2 -
                                6 * (map W' f).toProjective.a₂ * (map W' f).toProjective.a₃ ^ 2 * (⇑f ∘ P) y *
                                  (⇑f ∘ P) z ^ 3 +
                              4 * (map W' f).toProjective.a₂ * (map W' f).toProjective.a₃ * (map W' f).toProjective.a₄ *
                                  (⇑f ∘ P) x *
                                (⇑f ∘ P) z ^ 3 -
                            2 * (map W' f).toProjective.a₃ ^ 3 * (⇑f ∘ P) x * (⇑f ∘ P) z ^ 3 +
                          (map W' f).toProjective.a₃ * (map W' f).toProjective.a₄ ^ 2 * (⇑f ∘ P) z ^ 4 -
                        (map W' f).toProjective.a₁ ^ 4 * (⇑f ∘ P) x ^ 2 * (⇑f ∘ P) y * (⇑f ∘ P) z +
                      (map W' f).toProjective.a₁ ^ 3 * (map W' f).toProjective.a₂ * (⇑f ∘ P) x ^ 3 * (⇑f ∘ P) z -
                    2 * (map W' f).toProjective.a₁ ^ 3 * (map W' f).toProjective.a₃ * (⇑f ∘ P) x * (⇑f ∘ P) y *
                      (⇑f ∘ P) z ^ 2 +
                  (map W' f).toProjective.a₁ ^ 3 * (map W' f).toProjective.a₄ * (⇑f ∘ P) x ^ 2 * (⇑f ∘ P) z ^ 2 +
                (map W' f).toProjective.a₁ ^ 2 * (map W' f).toProjective.a₂ * (map W' f).toProjective.a₃ *
                    (⇑f ∘ P) x ^ 2 *
                  (⇑f ∘ P) z ^ 2 -
              (map W' f).toProjective.a₁ ^ 2 * (map W' f).toProjective.a₃ ^ 2 * (⇑f ∘ P) y * (⇑f ∘ P) z ^ 3 +
            2 * (map W' f).toProjective.a₁ ^ 2 * (map W' f).toProjective.a₃ * (map W' f).toProjective.a₄ * (⇑f ∘ P) x *
              (⇑f ∘ P) z ^ 3 -
          (map W' f).toProjective.a₁ * (map W' f).toProjective.a₂ * (map W' f).toProjective.a₃ ^ 2 * (⇑f ∘ P) x *
            (⇑f ∘ P) z ^ 3 -
        (map W' f).toProjective.a₂ * (map W' f).toProjective.a₃ ^ 3 * (⇑f ∘ P) z ^ 4 +
      (map W' f).toProjective.a₁ * (map W' f).toProjective.a₃ ^ 2 * (map W' f).toProjective.a₄ * (⇑f ∘ P) z ^ 4 =
    f
      (2 * P x * P y ^ 3 + 3 * W'.a₁ * P x ^ 2 * P y ^ 2 + 6 * W'.a₂ * P x ^ 3 * P y - 8 * W'.a₂ * P y ^ 3 * P z +
                                                                                              9 * W'.a₃ * P x ^ 4 -
                                                                                            6 * W'.a₃ * P x * P y ^ 2 *
                                                                                              P z -
                                                                                          6 * W'.a₄ * P x ^ 2 * P y *
                                                                                            P z -
                                                                                        18 * W'.a₆ * P x * P y *
                                                                                          P z ^ 2 +
                                                                                      3 * W'.a₁ ^ 2 * P x ^ 3 * P y -
                                                                                    2 * W'.a₁ ^ 2 * P y ^ 3 * P z +
                                                                                  3 * W'.a₁ * W'.a₂ * P x ^ 4 -
                                                                                12 * W'.a₁ * W'.a₂ * P x * P y ^ 2 *
                                                                                  P z -
                                                                              9 * W'.a₁ * W'.a₃ * P x ^ 2 * P y * P z -
                                                                            3 * W'.a₁ * W'.a₄ * P x ^ 3 * P z -
                                                                          9 * W'.a₁ * W'.a₆ * P x ^ 2 * P z ^ 2 +
                                                                        8 * W'.a₂ ^ 2 * P x ^ 2 * P y * P z +
                                                                      12 * W'.a₂ * W'.a₃ * P x ^ 3 * P z -
                                                                    12 * W'.a₂ * W'.a₃ * P y ^ 2 * P z ^ 2 +
                                                                  8 * W'.a₂ * W'.a₄ * P x * P y * P z ^ 2 -
                                                                12 * W'.a₃ ^ 2 * P x * P y * P z ^ 2 +
                                                              6 * W'.a₃ * W'.a₄ * P x ^ 2 * P z ^ 2 +
                                                            2 * W'.a₄ ^ 2 * P y * P z ^ 3 +
                                                          W'.a₁ ^ 3 * P x ^ 4 -
                                                        3 * W'.a₁ ^ 3 * P x * P y ^ 2 * P z -
                                                      2 * W'.a₁ ^ 2 * W'.a₂ * P x ^ 2 * P y * P z -
                                                    3 * W'.a₁ ^ 2 * W'.a₃ * P y ^ 2 * P z ^ 2 +
                                                  2 * W'.a₁ ^ 2 * W'.a₄ * P x * P y * P z ^ 2 +
                                                4 * W'.a₁ * W'.a₂ ^ 2 * P x ^ 3 * P z -
                                              8 * W'.a₁ * W'.a₂ * W'.a₃ * P x * P y * P z ^ 2 +
                                            4 * W'.a₁ * W'.a₂ * W'.a₄ * P x ^ 2 * P z ^ 2 -
                                          3 * W'.a₁ * W'.a₃ ^ 2 * P x ^ 2 * P z ^ 2 +
                                        2 * W'.a₁ * W'.a₃ * W'.a₄ * P y * P z ^ 3 +
                                      W'.a₁ * W'.a₄ ^ 2 * P x * P z ^ 3 +
                                    4 * W'.a₂ ^ 2 * W'.a₃ * P x ^ 2 * P z ^ 2 -
                                  6 * W'.a₂ * W'.a₃ ^ 2 * P y * P z ^ 3 +
                                4 * W'.a₂ * W'.a₃ * W'.a₄ * P x * P z ^ 3 -
                              2 * W'.a₃ ^ 3 * P x * P z ^ 3 +
                            W'.a₃ * W'.a₄ ^ 2 * P z ^ 4 -
                          W'.a₁ ^ 4 * P x ^ 2 * P y * P z +
                        W'.a₁ ^ 3 * W'.a₂ * P x ^ 3 * P z -
                      2 * W'.a₁ ^ 3 * W'.a₃ * P x * P y * P z ^ 2 +
                    W'.a₁ ^ 3 * W'.a₄ * P x ^ 2 * P z ^ 2 +
                  W'.a₁ ^ 2 * W'.a₂ * W'.a₃ * P x ^ 2 * P z ^ 2 -
                W'.a₁ ^ 2 * W'.a₃ ^ 2 * P y * P z ^ 3 +
              2 * W'.a₁ ^ 2 * W'.a₃ * W'.a₄ * P x * P z ^ 3 -
            W'.a₁ * W'.a₂ * W'.a₃ ^ 2 * P x * P z ^ 3 -
          W'.a₂ * W'.a₃ ^ 3 * P z ^ 4 +
        W'.a₁ * W'.a₃ ^ 2 * W'.a₄ * P z ^ 4)