Module: Mathlib.AlgebraicGeometry.EllipticCurve.Projective.Formula

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

Tactic:
simp only [dblX]

Goal state after:
R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W' : Projective R
f : R →+* S
P : Fin 3 → R
⊢ 2 * (⇑f ∘ P) x * (⇑f ∘ P) y ^ 3 + 3 * (W'.map f).a₁ * ⋯ ^ 2 * (⇑f ∘ P) y ^ 2 +
                                                                                                6 * (W'.map f).a₂ *
                                                                                                    (⇑f ∘ P) x ^ 3 *
                                                                                                  (⇑f ∘ P) y -
                                                                                              8 * (W'.map f).a₂ *
                                                                                                  (⇑f ∘ P) y ^ 3 *
                                                                                                (⇑f ∘ P) z +
                                                                                            9 * (W'.map f).a₃ *
                                                                                              (⇑f ∘ P) x ^ 4 -
                                                                                          6 * (W'.map f).a₃ *
                                                                                                (⇑f ∘ P) x *
                                                                                              (⇑f ∘ P) y ^ 2 *
                                                                                            (⇑f ∘ P) z -
                                                                                        6 * (W'.map f).a₄ *
                                                                                              (⇑f ∘ P) x ^ 2 *
                                                                                            (⇑f ∘ P) y *
                                                                                          (⇑f ∘ P) z -
                                                                                      18 * (W'.map f).a₆ * (⇑f ∘ P) x *
                                                                                          (⇑f ∘ P) y *
                                                                                        (⇑f ∘ P) z ^ 2 +
                                                                                    3 * (W'.map f).a₁ ^ 2 *
                                                                                        (⇑f ∘ P) x ^ 3 *
                                                                                      (⇑f ∘ P) y -
                                                                                  2 * (W'.map f).a₁ ^ 2 *
                                                                                      (⇑f ∘ P) y ^ 3 *
                                                                                    (⇑f ∘ P) z +
                                                                                3 * (W'.map f).a₁ * (W'.map f).a₂ *
                                                                                  (⇑f ∘ P) x ^ 4 -
                                                                              12 * (W'.map f).a₁ * (W'.map f).a₂ *
                                                                                    (⇑f ∘ P) x *
                                                                                  (⇑f ∘ P) y ^ 2 *
                                                                                (⇑f ∘ P) z -
                                                                            9 * (W'.map f).a₁ * (W'.map f).a₃ *
                                                                                  (⇑f ∘ P) x ^ 2 *
                                                                                (⇑f ∘ P) y *
                                                                              (⇑f ∘ P) z -
                                                                          3 * (W'.map f).a₁ * (W'.map f).a₄ *
                                                                              (⇑f ∘ P) x ^ 3 *
                                                                            (⇑f ∘ P) z -
                                                                        9 * (W'.map f).a₁ * (W'.map f).a₆ *
                                                                            (⇑f ∘ P) x ^ 2 *
                                                                          (⇑f ∘ P) z ^ 2 +
                                                                      8 * (W'.map f).a₂ ^ 2 * (⇑f ∘ P) x ^ 2 *
                                                                          (⇑f ∘ P) y *
                                                                        (⇑f ∘ P) z +
                                                                    12 * (W'.map f).a₂ * (W'.map f).a₃ *
                                                                        (⇑f ∘ P) x ^ 3 *
                                                                      (⇑f ∘ P) z -
                                                                  12 * (W'.map f).a₂ * (W'.map f).a₃ * (⇑f ∘ P) y ^ 2 *
                                                                    (⇑f ∘ P) z ^ 2 +
                                                                8 * (W'.map f).a₂ * (W'.map f).a₄ * (⇑f ∘ P) x *
                                                                    (⇑f ∘ P) y *
                                                                  (⇑f ∘ P) z ^ 2 -
                                                              12 * (W'.map f).a₃ ^ 2 * (⇑f ∘ P) x * (⇑f ∘ P) y *
                                                                (⇑f ∘ P) z ^ 2 +
                                                            6 * (W'.map f).a₃ * (W'.map f).a₄ * (⇑f ∘ P) x ^ 2 *
                                                              (⇑f ∘ P) z ^ 2 +
                                                          2 * (W'.map f).a₄ ^ 2 * (⇑f ∘ P) y * (⇑f ∘ P) z ^ 3 +
                                                        (W'.map f).a₁ ^ 3 * (⇑f ∘ P) x ^ 4 -
                                                      3 * (W'.map f).a₁ ^ 3 * (⇑f ∘ P) x * (⇑f ∘ P) y ^ 2 * (⇑f ∘ P) z -
                                                    2 * (W'.map f).a₁ ^ 2 * (W'.map f).a₂ * (⇑f ∘ P) x ^ 2 *
                                                        (⇑f ∘ P) y *
                                                      (⇑f ∘ P) z -
                                                  3 * (W'.map f).a₁ ^ 2 * (W'.map f).a₃ * (⇑f ∘ P) y ^ 2 *
                                                    (⇑f ∘ P) z ^ 2 +
                                                2 * (W'.map f).a₁ ^ 2 * (W'.map f).a₄ * (⇑f ∘ P) x * (⇑f ∘ P) y *
                                                  (⇑f ∘ P) z ^ 2 +
                                              4 * (W'.map f).a₁ * (W'.map f).a₂ ^ 2 * (⇑f ∘ P) x ^ 3 * (⇑f ∘ P) z -
                                            8 * (W'.map f).a₁ * (W'.map f).a₂ * (W'.map f).a₃ * (⇑f ∘ P) x *
                                                (⇑f ∘ P) y *
                                              (⇑f ∘ P) z ^ 2 +
                                          4 * (W'.map f).a₁ * (W'.map f).a₂ * (W'.map f).a₄ * (⇑f ∘ P) x ^ 2 *
                                            (⇑f ∘ P) z ^ 2 -
                                        3 * (W'.map f).a₁ * (W'.map f).a₃ ^ 2 * (⇑f ∘ P) x ^ 2 * (⇑f ∘ P) z ^ 2 +
                                      2 * (W'.map f).a₁ * (W'.map f).a₃ * (W'.map f).a₄ * (⇑f ∘ P) y * (⇑f ∘ P) z ^ 3 +
                                    (W'.map f).a₁ * (W'.map f).a₄ ^ 2 * (⇑f ∘ P) x * (⇑f ∘ P) z ^ 3 +
                                  4 * (W'.map f).a₂ ^ 2 * (W'.map f).a₃ * (⇑f ∘ P) x ^ 2 * (⇑f ∘ P) z ^ 2 -
                                6 * (W'.map f).a₂ * (W'.map f).a₃ ^ 2 * (⇑f ∘ P) y * (⇑f ∘ P) z ^ 3 +
                              4 * (W'.map f).a₂ * (W'.map f).a₃ * (W'.map f).a₄ * (⇑f ∘ P) x * (⇑f ∘ P) z ^ 3 -
                            2 * (W'.map f).a₃ ^ 3 * (⇑f ∘ P) x * (⇑f ∘ P) z ^ 3 +
                          (W'.map f).a₃ * (W'.map f).a₄ ^ 2 * (⇑f ∘ P) z ^ 4 -
                        (W'.map f).a₁ ^ 4 * (⇑f ∘ P) x ^ 2 * (⇑f ∘ P) y * (⇑f ∘ P) z +
                      (W'.map f).a₁ ^ 3 * (W'.map f).a₂ * (⇑f ∘ P) x ^ 3 * (⇑f ∘ P) z -
                    2 * (W'.map f).a₁ ^ 3 * (W'.map f).a₃ * (⇑f ∘ P) x * (⇑f ∘ P) y * (⇑f ∘ P) z ^ 2 +
                  (W'.map f).a₁ ^ 3 * (W'.map f).a₄ * (⇑f ∘ P) x ^ 2 * (⇑f ∘ P) z ^ 2 +
                (W'.map f).a₁ ^ 2 * (W'.map f).a₂ * (W'.map f).a₃ * (⇑f ∘ P) x ^ 2 * (⇑f ∘ P) z ^ 2 -
              (W'.map f).a₁ ^ 2 * (W'.map f).a₃ ^ 2 * (⇑f ∘ P) y * (⇑f ∘ P) z ^ 3 +
            2 * (W'.map f).a₁ ^ 2 * (W'.map f).a₃ * (W'.map f).a₄ * (⇑f ∘ P) x * (⇑f ∘ P) z ^ 3 -
          (W'.map f).a₁ * (W'.map f).a₂ * (W'.map f).a₃ ^ 2 * (⇑f ∘ P) x * (⇑f ∘ P) z ^ 3 -
        (W'.map f).a₂ * (W'.map f).a₃ ^ 3 * (⇑f ∘ P) z ^ 4 +
      (W'.map f).a₁ * (W'.map f).a₃ ^ 2 * (W'.map f).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)