ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- WeierstrassCurve.preΨ'_two
@[simp]
lemma preΨ'_two : W.preΨ' 2 = 1 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.preΨ' 2 = 1
-- WeierstrassCurve.preΨ'_three
@[simp]
lemma preΨ'_three : W.preΨ' 3 = W.Ψ₃ 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.preΨ' 3 = W.Ψ₃
-- WeierstrassCurve.preΨ'_four
@[simp]
lemma preΨ'_four : W.preΨ' 4 = W.preΨ₄ 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.preΨ' 4 = W.preΨ₄
-- WeierstrassCurve.preΨ'_odd
lemma preΨ'_odd (m : ℕ) : W.preΨ' (2 * (m + 2) + 1) =
    W.preΨ' (m + 4) * W.preΨ' (m + 2) ^ 3 * (if Even m then W.Ψ₂Sq ^ 2 else 1) -
      W.preΨ' (m + 1) * W.preΨ' (m + 3) ^ 3 * (if Even m then 1 else W.Ψ₂Sq ^ 2) 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (m : ℕ)
Goal: W.preΨ' (2 * (m + 2) + 1) =
  (W.preΨ' (m + 4) * W.preΨ' (m + 2) ^ 3 * if Even m then W.Ψ₂Sq ^ 2 else 1) -
    W.preΨ' (m + 1) * W.preΨ' (m + 3) ^ 3 * if Even m then 1 else W.Ψ₂Sq ^ 2
-- WeierstrassCurve.preΨ'_even
lemma preΨ'_even (m : ℕ) : W.preΨ' (2 * (m + 3)) =
    W.preΨ' (m + 2) ^ 2 * W.preΨ' (m + 3) * W.preΨ' (m + 5) -
      W.preΨ' (m + 1) * W.preΨ' (m + 3) * W.preΨ' (m + 4) ^ 2 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (m : ℕ)
Goal: W.preΨ' (2 * (m + 3)) =
  W.preΨ' (m + 2) ^ 2 * W.preΨ' (m + 3) * W.preΨ' (m + 5) - W.preΨ' (m + 1) * W.preΨ' (m + 3) * W.preΨ' (m + 4) ^ 2
-- WeierstrassCurve.preΨ_ofNat
@[simp]
lemma preΨ_ofNat (n : ℕ) : W.preΨ n = W.preΨ' n 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (n : ℕ)
Goal: W.preΨ ↑n = W.preΨ' n
-- WeierstrassCurve.preΨ_zero
@[simp]
lemma preΨ_zero : W.preΨ 0 = 0 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.preΨ 0 = 0
-- WeierstrassCurve.preΨ_one
@[simp]
lemma preΨ_one : W.preΨ 1 = 1 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.preΨ 1 = 1
-- WeierstrassCurve.preΨ_two
@[simp]
lemma preΨ_two : W.preΨ 2 = 1 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.preΨ 2 = 1
-- WeierstrassCurve.preΨ_three
@[simp]
lemma preΨ_three : W.preΨ 3 = W.Ψ₃ 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.preΨ 3 = W.Ψ₃
-- WeierstrassCurve.preΨ_four
@[simp]
lemma preΨ_four : W.preΨ 4 = W.preΨ₄ 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.preΨ 4 = W.preΨ₄
-- WeierstrassCurve.preΨ_odd
lemma preΨ_odd (m : ℕ) : W.preΨ (2 * (m + 2) + 1) =
    W.preΨ (m + 4) * W.preΨ (m + 2) ^ 3 * (if Even m then W.Ψ₂Sq ^ 2 else 1) -
      W.preΨ (m + 1) * W.preΨ (m + 3) ^ 3 * (if Even m then 1 else W.Ψ₂Sq ^ 2) 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (m : ℕ)
Goal: W.preΨ (2 * (↑m + 2) + 1) =
  (W.preΨ (↑m + 4) * W.preΨ (↑m + 2) ^ 3 * if Even m then W.Ψ₂Sq ^ 2 else 1) -
    W.preΨ (↑m + 1) * W.preΨ (↑m + 3) ^ 3 * if Even m then 1 else W.Ψ₂Sq ^ 2
-- WeierstrassCurve.preΨ_even
lemma preΨ_even (m : ℕ) : W.preΨ (2 * (m + 3)) =
    W.preΨ (m + 2) ^ 2 * W.preΨ (m + 3) * W.preΨ (m + 5) -
      W.preΨ (m + 1) * W.preΨ (m + 3) * W.preΨ (m + 4) ^ 2 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (m : ℕ)
Goal: W.preΨ (2 * (↑m + 3)) =
  W.preΨ (↑m + 2) ^ 2 * W.preΨ (↑m + 3) * W.preΨ (↑m + 5) - W.preΨ (↑m + 1) * W.preΨ (↑m + 3) * W.preΨ (↑m + 4) ^ 2
-- WeierstrassCurve.preΨ_neg
@[simp]
lemma preΨ_neg (n : ℤ) : W.preΨ (-n) = -W.preΨ n 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (n : ℤ)
Goal: W.preΨ (-n) = -W.preΨ n
-- WeierstrassCurve.ΨSq_ofNat
@[simp]
lemma ΨSq_ofNat (n : ℕ) : W.ΨSq n = W.preΨ' n ^ 2 * if Even n then W.Ψ₂Sq else 1 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (n : ℕ)
Goal: W.ΨSq ↑n = W.preΨ' n ^ 2 * if Even n then W.Ψ₂Sq else 1
-- WeierstrassCurve.ΨSq_zero
@[simp]
lemma ΨSq_zero : W.ΨSq 0 = 0 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.ΨSq 0 = 0
-- WeierstrassCurve.ΨSq_one
@[simp]
lemma ΨSq_one : W.ΨSq 1 = 1 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.ΨSq 1 = 1
-- WeierstrassCurve.ΨSq_two
@[simp]
lemma ΨSq_two : W.ΨSq 2 = W.Ψ₂Sq 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.ΨSq 2 = W.Ψ₂Sq
-- WeierstrassCurve.ΨSq_three
@[simp]
lemma ΨSq_three : W.ΨSq 3 = W.Ψ₃ ^ 2 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.ΨSq 3 = W.Ψ₃ ^ 2
-- WeierstrassCurve.ΨSq_four
@[simp]
lemma ΨSq_four : W.ΨSq 4 = W.preΨ₄ ^ 2 * W.Ψ₂Sq 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.ΨSq 4 = W.preΨ₄ ^ 2 * W.Ψ₂Sq
-- WeierstrassCurve.ΨSq_odd
lemma ΨSq_odd (m : ℕ) : W.ΨSq (2 * (m + 2) + 1) =
    (W.preΨ' (m + 4) * W.preΨ' (m + 2) ^ 3 * (if Even m then W.Ψ₂Sq ^ 2 else 1) -
      W.preΨ' (m + 1) * W.preΨ' (m + 3) ^ 3 * (if Even m then 1 else W.Ψ₂Sq ^ 2)) ^ 2 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (m : ℕ)
Goal: W.ΨSq (2 * (↑m + 2) + 1) =
  ((W.preΨ' (m + 4) * W.preΨ' (m + 2) ^ 3 * if Even m then W.Ψ₂Sq ^ 2 else 1) -
      W.preΨ' (m + 1) * W.preΨ' (m + 3) ^ 3 * if Even m then 1 else W.Ψ₂Sq ^ 2) ^
    2
-- WeierstrassCurve.ΨSq_even
lemma ΨSq_even (m : ℕ) : W.ΨSq (2 * (m + 3)) =
    (W.preΨ' (m + 2) ^ 2 * W.preΨ' (m + 3) * W.preΨ' (m + 5) -
      W.preΨ' (m + 1) * W.preΨ' (m + 3) * W.preΨ' (m + 4) ^ 2) ^ 2 * W.Ψ₂Sq 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (m : ℕ)
Goal: W.ΨSq (2 * (↑m + 3)) =
  (W.preΨ' (m + 2) ^ 2 * W.preΨ' (m + 3) * W.preΨ' (m + 5) - W.preΨ' (m + 1) * W.preΨ' (m + 3) * W.preΨ' (m + 4) ^ 2) ^
      2 *
    W.Ψ₂Sq
-- WeierstrassCurve.ΨSq_neg
@[simp]
lemma ΨSq_neg (n : ℤ) : W.ΨSq (-n) = W.ΨSq n 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (n : ℤ)
Goal: W.ΨSq (-n) = W.ΨSq n
-- WeierstrassCurve.Ψ_ofNat
@[simp]
lemma Ψ_ofNat (n : ℕ) : W.Ψ n = C (W.preΨ' n) * if Even n then W.ψ₂ else 1 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (n : ℕ)
Goal: W.Ψ ↑n = Polynomial.C (W.preΨ' n) * if Even n then W.ψ₂ else 1
-- WeierstrassCurve.Ψ_zero
@[simp]
lemma Ψ_zero : W.Ψ 0 = 0 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.Ψ 0 = 0
-- WeierstrassCurve.Ψ_one
@[simp]
lemma Ψ_one : W.Ψ 1 = 1 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.Ψ 1 = 1
-- WeierstrassCurve.Ψ_two
@[simp]
lemma Ψ_two : W.Ψ 2 = W.ψ₂ 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.Ψ 2 = W.ψ₂
-- WeierstrassCurve.Ψ_three
@[simp]
lemma Ψ_three : W.Ψ 3 = C W.Ψ₃ 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.Ψ 3 = Polynomial.C W.Ψ₃
-- WeierstrassCurve.Ψ_four
@[simp]
lemma Ψ_four : W.Ψ 4 = C W.preΨ₄ * W.ψ₂ 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.Ψ 4 = Polynomial.C W.preΨ₄ * W.ψ₂
-- WeierstrassCurve.Ψ_odd
lemma Ψ_odd (m : ℕ) : W.Ψ (2 * (m + 2) + 1) =
    W.Ψ (m + 4) * W.Ψ (m + 2) ^ 3 - W.Ψ (m + 1) * W.Ψ (m + 3) ^ 3 +
      W.toAffine.polynomial * (16 * W.toAffine.polynomial - 8 * W.ψ₂ ^ 2) * C
        (if Even m then W.preΨ' (m + 4) * W.preΨ' (m + 2) ^ 3
          else -W.preΨ' (m + 1) * W.preΨ' (m + 3) ^ 3) 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (m : ℕ)
Goal: W.Ψ (2 * (↑m + 2) + 1) =
  W.Ψ (↑m + 4) * W.Ψ (↑m + 2) ^ 3 - W.Ψ (↑m + 1) * W.Ψ (↑m + 3) ^ 3 +
    W.toAffine.polynomial * (16 * W.toAffine.polynomial - 8 * W.ψ₂ ^ 2) *
      Polynomial.C (if Even m then W.preΨ' (m + 4) * W.preΨ' (m + 2) ^ 3 else -W.preΨ' (m + 1) * W.preΨ' (m + 3) ^ 3)
-- WeierstrassCurve.Ψ_even
lemma Ψ_even (m : ℕ) : W.Ψ (2 * (m + 3)) * W.ψ₂ =
    W.Ψ (m + 2) ^ 2 * W.Ψ (m + 3) * W.Ψ (m + 5) - W.Ψ (m + 1) * W.Ψ (m + 3) * W.Ψ (m + 4) ^ 2 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (m : ℕ)
Goal: W.Ψ (2 * (↑m + 3)) * W.ψ₂ =
  W.Ψ (↑m + 2) ^ 2 * W.Ψ (↑m + 3) * W.Ψ (↑m + 5) - W.Ψ (↑m + 1) * W.Ψ (↑m + 3) * W.Ψ (↑m + 4) ^ 2
-- WeierstrassCurve.Ψ_neg
@[simp]
lemma Ψ_neg (n : ℤ) : W.Ψ (-n) = -W.Ψ n 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (n : ℤ)
Goal: W.Ψ (-n) = -W.Ψ n
-- WeierstrassCurve.Affine.CoordinateRing.mk_Ψ_sq
lemma Affine.CoordinateRing.mk_Ψ_sq (n : ℤ) : mk W (W.Ψ n) ^ 2 = mk W (C <| W.ΨSq n) 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (n : ℤ)
Goal: (WeierstrassCurve.Affine.CoordinateRing.mk W) (W.Ψ n) ^ 2 =
  (WeierstrassCurve.Affine.CoordinateRing.mk W) (Polynomial.C (W.ΨSq n))
-- WeierstrassCurve.Φ_ofNat
@[simp]
lemma Φ_ofNat (n : ℕ) : W.Φ (n + 1) =
    X * W.preΨ' (n + 1) ^ 2 * (if Even n then 1 else W.Ψ₂Sq) -
      W.preΨ' (n + 2) * W.preΨ' n * (if Even n then W.Ψ₂Sq else 1) 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (n : ℕ)
Goal: W.Φ (↑n + 1) =
  (Polynomial.X * W.preΨ' (n + 1) ^ 2 * if Even n then 1 else W.Ψ₂Sq) -
    W.preΨ' (n + 2) * W.preΨ' n * if Even n then W.Ψ₂Sq else 1
-- WeierstrassCurve.Φ_zero
@[simp]
lemma Φ_zero : W.Φ 0 = 1 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.Φ 0 = 1
-- WeierstrassCurve.Φ_one
@[simp]
lemma Φ_one : W.Φ 1 = X 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.Φ 1 = Polynomial.X
-- WeierstrassCurve.Φ_two
@[simp]
lemma Φ_two : W.Φ 2 = X ^ 4 - C W.b₄ * X ^ 2 - C (2 * W.b₆) * X - C W.b₈ 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.Φ 2 =
  Polynomial.X ^ 4 - Polynomial.C W.b₄ * Polynomial.X ^ 2 - Polynomial.C (2 * W.b₆) * Polynomial.X - Polynomial.C W.b₈
-- WeierstrassCurve.Φ_three
@[simp]
lemma Φ_three : W.Φ 3 = X * W.Ψ₃ ^ 2 - W.preΨ₄ * W.Ψ₂Sq 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.Φ 3 = Polynomial.X * W.Ψ₃ ^ 2 - W.preΨ₄ * W.Ψ₂Sq
-- WeierstrassCurve.Φ_four
@[simp]
lemma Φ_four : W.Φ 4 = X * W.preΨ₄ ^ 2 * W.Ψ₂Sq - W.Ψ₃ * (W.preΨ₄ * W.Ψ₂Sq ^ 2 - W.Ψ₃ ^ 3) 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.Φ 4 = Polynomial.X * W.preΨ₄ ^ 2 * W.Ψ₂Sq - W.Ψ₃ * (W.preΨ₄ * W.Ψ₂Sq ^ 2 - W.Ψ₃ ^ 3)
-- WeierstrassCurve.Φ_neg
@[simp]
lemma Φ_neg (n : ℤ) : W.Φ (-n) = W.Φ n 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (n : ℤ)
Goal: W.Φ (-n) = W.Φ n
-- WeierstrassCurve.ψ_zero
@[simp]
lemma ψ_zero : W.ψ 0 = 0 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.ψ 0 = 0
-- WeierstrassCurve.ψ_one
@[simp]
lemma ψ_one : W.ψ 1 = 1 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.ψ 1 = 1
-- WeierstrassCurve.ψ_two
@[simp]
lemma ψ_two : W.ψ 2 = W.ψ₂ 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.ψ 2 = W.ψ₂
-- WeierstrassCurve.ψ_three
@[simp]
lemma ψ_three : W.ψ 3 = C W.Ψ₃ 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.ψ 3 = Polynomial.C W.Ψ₃
-- WeierstrassCurve.ψ_four
@[simp]
lemma ψ_four : W.ψ 4 = C W.preΨ₄ * W.ψ₂ 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.ψ 4 = Polynomial.C W.preΨ₄ * W.ψ₂
-- WeierstrassCurve.ψ_odd
lemma ψ_odd (m : ℕ) : W.ψ (2 * (m + 2) + 1) =
    W.ψ (m + 4) * W.ψ (m + 2) ^ 3 - W.ψ (m + 1) * W.ψ (m + 3) ^ 3 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (m : ℕ)
Goal: W.ψ (2 * (↑m + 2) + 1) = W.ψ (↑m + 4) * W.ψ (↑m + 2) ^ 3 - W.ψ (↑m + 1) * W.ψ (↑m + 3) ^ 3
-- WeierstrassCurve.ψ_even
lemma ψ_even (m : ℕ) : W.ψ (2 * (m + 3)) * W.ψ₂ =
    W.ψ (m + 2) ^ 2 * W.ψ (m + 3) * W.ψ (m + 5) - W.ψ (m + 1) * W.ψ (m + 3) * W.ψ (m + 4) ^ 2 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (m : ℕ)
Goal: W.ψ (2 * (↑m + 3)) * W.ψ₂ =
  W.ψ (↑m + 2) ^ 2 * W.ψ (↑m + 3) * W.ψ (↑m + 5) - W.ψ (↑m + 1) * W.ψ (↑m + 3) * W.ψ (↑m + 4) ^ 2
-- WeierstrassCurve.ψ_neg
@[simp]
lemma ψ_neg (n : ℤ) : W.ψ (-n) = -W.ψ n 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (n : ℤ)
Goal: W.ψ (-n) = -W.ψ n
-- WeierstrassCurve.Affine.CoordinateRing.mk_ψ
lemma Affine.CoordinateRing.mk_ψ (n : ℤ) : mk W (W.ψ n) = mk W (W.Ψ n) 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (n : ℤ)
Goal: (WeierstrassCurve.Affine.CoordinateRing.mk W) (W.ψ n) = (WeierstrassCurve.Affine.CoordinateRing.mk W) (W.Ψ n)
-- WeierstrassCurve.φ_zero
@[simp]
lemma φ_zero : W.φ 0 = 1 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.φ 0 = 1
-- WeierstrassCurve.φ_one
@[simp]
lemma φ_one : W.φ 1 = C X 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.φ 1 = Polynomial.C Polynomial.X
-- WeierstrassCurve.φ_two
@[simp]
lemma φ_two : W.φ 2 = C X * W.ψ₂ ^ 2 - C W.Ψ₃ 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.φ 2 = Polynomial.C Polynomial.X * W.ψ₂ ^ 2 - Polynomial.C W.Ψ₃
-- WeierstrassCurve.φ_three
@[simp]
lemma φ_three : W.φ 3 = C X * C W.Ψ₃ ^ 2 - C W.preΨ₄ * W.ψ₂ ^ 2 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.φ 3 = Polynomial.C Polynomial.X * Polynomial.C W.Ψ₃ ^ 2 - Polynomial.C W.preΨ₄ * W.ψ₂ ^ 2
-- WeierstrassCurve.φ_four
@[simp]
lemma φ_four :
    W.φ 4 = C X * C W.preΨ₄ ^ 2 * W.ψ₂ ^ 2 - C W.preΨ₄ * W.ψ₂ ^ 4 * C W.Ψ₃ + C W.Ψ₃ ^ 4 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R)
Goal: W.φ 4 =
  Polynomial.C Polynomial.X * Polynomial.C W.preΨ₄ ^ 2 * W.ψ₂ ^ 2 -
      Polynomial.C W.preΨ₄ * W.ψ₂ ^ 4 * Polynomial.C W.Ψ₃ +
    Polynomial.C W.Ψ₃ ^ 4
-- WeierstrassCurve.φ_neg
@[simp]
lemma φ_neg (n : ℤ) : W.φ (-n) = W.φ n 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (n : ℤ)
Goal: W.φ (-n) = W.φ n
-- WeierstrassCurve.Affine.CoordinateRing.mk_φ
lemma Affine.CoordinateRing.mk_φ (n : ℤ) : mk W (W.φ n) = mk W (C <| W.Φ n) 
Arguments: {R : Type r} [CommRing R] (W : WeierstrassCurve R) (n : ℤ)
Goal: (WeierstrassCurve.Affine.CoordinateRing.mk W) (W.φ n) =
  (WeierstrassCurve.Affine.CoordinateRing.mk W) (Polynomial.C (W.Φ n))
-- WeierstrassCurve.map_ψ₂
lemma map_ψ₂ : (W.map f).ψ₂ = W.ψ₂.map (mapRingHom f) 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) (f : R →+* S)
Goal: (W.map f).ψ₂ = Polynomial.map (Polynomial.mapRingHom f) W.ψ₂
-- WeierstrassCurve.map_Ψ₂Sq
lemma map_Ψ₂Sq : (W.map f).Ψ₂Sq = W.Ψ₂Sq.map f 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) (f : R →+* S)
Goal: (W.map f).Ψ₂Sq = Polynomial.map f W.Ψ₂Sq
-- WeierstrassCurve.map_Ψ₃
lemma map_Ψ₃ : (W.map f).Ψ₃ = W.Ψ₃.map f 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) (f : R →+* S)
Goal: (W.map f).Ψ₃ = Polynomial.map f W.Ψ₃
-- WeierstrassCurve.map_preΨ₄
lemma map_preΨ₄ : (W.map f).preΨ₄ = W.preΨ₄.map f 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) (f : R →+* S)
Goal: (W.map f).preΨ₄ = Polynomial.map f W.preΨ₄
-- WeierstrassCurve.map_preΨ'
lemma map_preΨ' (n : ℕ) : (W.map f).preΨ' n = (W.preΨ' n).map f 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) (f : R →+* S) (n : ℕ)
Goal: (W.map f).preΨ' n = Polynomial.map f (W.preΨ' n)
-- WeierstrassCurve.map_preΨ
lemma map_preΨ (n : ℤ) : (W.map f).preΨ n = (W.preΨ n).map f 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) (f : R →+* S) (n : ℤ)
Goal: (W.map f).preΨ n = Polynomial.map f (W.preΨ n)
-- WeierstrassCurve.map_ΨSq
lemma map_ΨSq (n : ℤ) : (W.map f).ΨSq n = (W.ΨSq n).map f 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) (f : R →+* S) (n : ℤ)
Goal: (W.map f).ΨSq n = Polynomial.map f (W.ΨSq n)
-- WeierstrassCurve.map_Ψ
lemma map_Ψ (n : ℤ) : (W.map f).Ψ n = (W.Ψ n).map (mapRingHom f) 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) (f : R →+* S) (n : ℤ)
Goal: (W.map f).Ψ n = Polynomial.map (Polynomial.mapRingHom f) (W.Ψ n)
-- WeierstrassCurve.map_Φ
lemma map_Φ (n : ℤ) : (W.map f).Φ n = (W.Φ n).map f 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) (f : R →+* S) (n : ℤ)
Goal: (W.map f).Φ n = Polynomial.map f (W.Φ n)
-- WeierstrassCurve.map_ψ
lemma map_ψ (n : ℤ) : (W.map f).ψ n = (W.ψ n).map (mapRingHom f) 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) (f : R →+* S) (n : ℤ)
Goal: (W.map f).ψ n = Polynomial.map (Polynomial.mapRingHom f) (W.ψ n)
-- WeierstrassCurve.map_φ
lemma map_φ (n : ℤ) : (W.map f).φ n = (W.φ n).map (mapRingHom f) 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) (f : R →+* S) (n : ℤ)
Goal: (W.map f).φ n = Polynomial.map (Polynomial.mapRingHom f) (W.φ n)
-- WeierstrassCurve.baseChange_ψ₂
lemma baseChange_ψ₂ : (W.baseChange B).ψ₂ = (W.baseChange A).ψ₂.map (mapRingHom f) 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) [Algebra R S] {A : Type u} [CommRing A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] {B : Type v} [CommRing B] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A →ₐ[S] B)
Goal: (W.baseChange B).ψ₂ = Polynomial.map (Polynomial.mapRingHom ↑f) (W.baseChange A).ψ₂
-- WeierstrassCurve.baseChange_Ψ₂Sq
lemma baseChange_Ψ₂Sq : (W.baseChange B).Ψ₂Sq = (W.baseChange A).Ψ₂Sq.map f 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) [Algebra R S] {A : Type u} [CommRing A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] {B : Type v} [CommRing B] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A →ₐ[S] B)
Goal: (W.baseChange B).Ψ₂Sq = Polynomial.map (↑f) (W.baseChange A).Ψ₂Sq
-- WeierstrassCurve.baseChange_Ψ₃
lemma baseChange_Ψ₃ : (W.baseChange B).Ψ₃ = (W.baseChange A).Ψ₃.map f 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) [Algebra R S] {A : Type u} [CommRing A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] {B : Type v} [CommRing B] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A →ₐ[S] B)
Goal: (W.baseChange B).Ψ₃ = Polynomial.map (↑f) (W.baseChange A).Ψ₃
-- WeierstrassCurve.baseChange_preΨ₄
lemma baseChange_preΨ₄ : (W.baseChange B).preΨ₄ = (W.baseChange A).preΨ₄.map f 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) [Algebra R S] {A : Type u} [CommRing A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] {B : Type v} [CommRing B] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A →ₐ[S] B)
Goal: (W.baseChange B).preΨ₄ = Polynomial.map (↑f) (W.baseChange A).preΨ₄
-- WeierstrassCurve.baseChange_preΨ'
lemma baseChange_preΨ' (n : ℕ) : (W.baseChange B).preΨ' n = ((W.baseChange A).preΨ' n).map f 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) [Algebra R S] {A : Type u} [CommRing A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] {B : Type v} [CommRing B] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A →ₐ[S] B) (n : ℕ)
Goal: (W.baseChange B).preΨ' n = Polynomial.map (↑f) ((W.baseChange A).preΨ' n)
-- WeierstrassCurve.baseChange_preΨ
lemma baseChange_preΨ (n : ℤ) : (W.baseChange B).preΨ n = ((W.baseChange A).preΨ n).map f 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) [Algebra R S] {A : Type u} [CommRing A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] {B : Type v} [CommRing B] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A →ₐ[S] B) (n : ℤ)
Goal: (W.baseChange B).preΨ n = Polynomial.map (↑f) ((W.baseChange A).preΨ n)
-- WeierstrassCurve.baseChange_ΨSq
lemma baseChange_ΨSq (n : ℤ) : (W.baseChange B).ΨSq n = ((W.baseChange A).ΨSq n).map f 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) [Algebra R S] {A : Type u} [CommRing A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] {B : Type v} [CommRing B] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A →ₐ[S] B) (n : ℤ)
Goal: (W.baseChange B).ΨSq n = Polynomial.map (↑f) ((W.baseChange A).ΨSq n)
-- WeierstrassCurve.baseChange_Ψ
lemma baseChange_Ψ (n : ℤ) : (W.baseChange B).Ψ n = ((W.baseChange A).Ψ n).map (mapRingHom f) 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) [Algebra R S] {A : Type u} [CommRing A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] {B : Type v} [CommRing B] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A →ₐ[S] B) (n : ℤ)
Goal: (W.baseChange B).Ψ n = Polynomial.map (Polynomial.mapRingHom ↑f) ((W.baseChange A).Ψ n)
-- WeierstrassCurve.baseChange_Φ
lemma baseChange_Φ (n : ℤ) : (W.baseChange B).Φ n = ((W.baseChange A).Φ n).map f 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) [Algebra R S] {A : Type u} [CommRing A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] {B : Type v} [CommRing B] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A →ₐ[S] B) (n : ℤ)
Goal: (W.baseChange B).Φ n = Polynomial.map (↑f) ((W.baseChange A).Φ n)
-- WeierstrassCurve.baseChange_ψ
lemma baseChange_ψ (n : ℤ) : (W.baseChange B).ψ n = ((W.baseChange A).ψ n).map (mapRingHom f) 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) [Algebra R S] {A : Type u} [CommRing A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] {B : Type v} [CommRing B] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A →ₐ[S] B) (n : ℤ)
Goal: (W.baseChange B).ψ n = Polynomial.map (Polynomial.mapRingHom ↑f) ((W.baseChange A).ψ n)
-- WeierstrassCurve.baseChange_φ
lemma baseChange_φ (n : ℤ) : (W.baseChange B).φ n = ((W.baseChange A).φ n).map (mapRingHom f) 
Arguments: {R : Type r} {S : Type s} [CommRing R] [CommRing S] (W : WeierstrassCurve R) [Algebra R S] {A : Type u} [CommRing A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] {B : Type v} [CommRing B] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A →ₐ[S] B) (n : ℤ)
Goal: (W.baseChange B).φ n = Polynomial.map (Polynomial.mapRingHom ↑f) ((W.baseChange A).φ n)
-- Int.mem_range_iff
theorem mem_range_iff {m n r : ℤ} : r ∈ range m n ↔ m ≤ r ∧ r < n 
Arguments: {m n r : ℤ}
Goal: r ∈ m.range n ↔ m ≤ r ∧ r < n
-- Int.le_natCast_sub
theorem le_natCast_sub (m n : ℕ) : (m - n : ℤ) ≤ ↑(m - n : ℕ) 
Arguments: (m n : ℕ)
Goal: ↑m - ↑n ≤ ↑(m - n)
-- Int.succ_natCast_pos
theorem succ_natCast_pos (n : ℕ) : 0 < (n : ℤ) + 1 
Arguments: (n : ℕ)
Goal: 0 < ↑n + 1
-- Int.natAbs_eq_iff_sq_eq
theorem natAbs_eq_iff_sq_eq {a b : ℤ} : a.natAbs = b.natAbs ↔ a ^ 2 = b ^ 2 
Arguments: {a b : ℤ}
Goal: a.natAbs = b.natAbs ↔ a ^ 2 = b ^ 2
-- Int.natAbs_lt_iff_sq_lt
theorem natAbs_lt_iff_sq_lt {a b : ℤ} : a.natAbs < b.natAbs ↔ a ^ 2 < b ^ 2 
Arguments: {a b : ℤ}
Goal: a.natAbs < b.natAbs ↔ a ^ 2 < b ^ 2
-- Int.natAbs_le_iff_sq_le
theorem natAbs_le_iff_sq_le {a b : ℤ} : a.natAbs ≤ b.natAbs ↔ a ^ 2 ≤ b ^ 2 
Arguments: {a b : ℤ}
Goal: a.natAbs ≤ b.natAbs ↔ a ^ 2 ≤ b ^ 2
-- Int.natAbs_inj_of_nonneg_of_nonneg
theorem natAbs_inj_of_nonneg_of_nonneg {a b : ℤ} (ha : 0 ≤ a) (hb : 0 ≤ b) :
    natAbs a = natAbs b ↔ a = b 
Arguments: {a b : ℤ} (ha : 0 ≤ a) (hb : 0 ≤ b)
Goal: a.natAbs = b.natAbs ↔ a = b
-- Int.natAbs_inj_of_nonpos_of_nonpos
theorem natAbs_inj_of_nonpos_of_nonpos {a b : ℤ} (ha : a ≤ 0) (hb : b ≤ 0) :
    natAbs a = natAbs b ↔ a = b 
Arguments: {a b : ℤ} (ha : a ≤ 0) (hb : b ≤ 0)
Goal: a.natAbs = b.natAbs ↔ a = b
-- Int.natAbs_inj_of_nonneg_of_nonpos
theorem natAbs_inj_of_nonneg_of_nonpos {a b : ℤ} (ha : 0 ≤ a) (hb : b ≤ 0) :
    natAbs a = natAbs b ↔ a = -b 
Arguments: {a b : ℤ} (ha : 0 ≤ a) (hb : b ≤ 0)
Goal: a.natAbs = b.natAbs ↔ a = -b
-- Int.natAbs_inj_of_nonpos_of_nonneg
theorem natAbs_inj_of_nonpos_of_nonneg {a b : ℤ} (ha : a ≤ 0) (hb : 0 ≤ b) :
    natAbs a = natAbs b ↔ -a = b 
Arguments: {a b : ℤ} (ha : a ≤ 0) (hb : 0 ≤ b)
Goal: a.natAbs = b.natAbs ↔ -a = b
-- Int.natAbs_coe_sub_coe_le_of_le
theorem natAbs_coe_sub_coe_le_of_le {a b n : ℕ} (a_le_n : a ≤ n) (b_le_n : b ≤ n) :
    natAbs (a - b : ℤ) ≤ n 
Arguments: {a b n : ℕ} (a_le_n : a ≤ n) (b_le_n : b ≤ n)
Goal: (↑a - ↑b).natAbs ≤ n
-- Int.natAbs_coe_sub_coe_lt_of_lt
theorem natAbs_coe_sub_coe_lt_of_lt {a b n : ℕ} (a_lt_n : a < n) (b_lt_n : b < n) :
    natAbs (a - b : ℤ) < n 
Arguments: {a b n : ℕ} (a_lt_n : a < n) (b_lt_n : b < n)
Goal: (↑a - ↑b).natAbs < n
-- Int.strictMonoOn_natAbs
theorem strictMonoOn_natAbs : StrictMonoOn natAbs (Ici 0) 
Goal: StrictMonoOn Int.natAbs (Set.Ici 0)
-- Int.strictAntiOn_natAbs
theorem strictAntiOn_natAbs : StrictAntiOn natAbs (Iic 0) 
Goal: StrictAntiOn Int.natAbs (Set.Iic 0)
-- Int.injOn_natAbs_Ici
theorem injOn_natAbs_Ici : InjOn natAbs (Ici 0) 
Goal: Set.InjOn Int.natAbs (Set.Ici 0)
-- Int.injOn_natAbs_Iic
theorem injOn_natAbs_Iic : InjOn natAbs (Iic 0) 
Goal: Set.InjOn Int.natAbs (Set.Iic 0)
-- Int.toNat_of_nonpos
theorem toNat_of_nonpos : ∀ {z : ℤ}, z ≤ 0 → z.toNat = 0
  
Arguments: {z : ℤ}
Goal: z ≤ 0 → z.toNat = 0