ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Set.eq_univ_of_coe_eq
theorem eq_univ_of_coe_eq (hγ : (γ : Set α) = β) : γ = univ 
Arguments: {α : Type u} {β : Set α} {γ : Set ↑β} (hγ :
  (do
      let a ← γ
      pure ↑a) =
    β)
Goal: γ = Set.univ
-- Set.image_coe_eq_restrict_image
theorem image_coe_eq_restrict_image {δ : Type*} {f : α → δ} : f '' γ = β.restrict f '' γ 
Arguments: {α : Type u} {β : Set α} {γ : Set ↑β} {δ : Type u_1} {f : α → δ}
Goal: (f '' do
    let a ← γ
    pure ↑a) =
  β.restrict f '' γ
-- Set.coe_eq_image_val
theorem coe_eq_image_val (t : Set s) :
    @Lean.Internal.coeM Set s α _ Set.monad t = (t : Set α) 
Arguments: {α : Type u} {s : Set α} (t : Set ↑s)
Goal: Lean.Internal.coeM t = ↑t
-- Set.mem_image_val_of_mem
theorem mem_image_val_of_mem (ha : a ∈ β) (ha' : ⟨a, ha⟩ ∈ γ) : a ∈ (γ : Set α) 
Arguments: {α : Type u} {β : Set α} {γ : Set ↑β} {a : α} (ha : a ∈ β) (ha' : ⟨a, ha⟩ ∈ γ)
Goal: a ∈ ↑γ
-- Set.image_val_subset
theorem image_val_subset : (γ : Set α) ⊆ β 
Arguments: {α : Type u} {β : Set α} {γ : Set ↑β}
Goal: ↑γ ⊆ β
-- Set.mem_of_mem_image_val
theorem mem_of_mem_image_val (ha : a ∈ (γ : Set α)) : ⟨a, image_val_subset ha⟩ ∈ γ 
Arguments: {α : Type u} {β : Set α} {γ : Set ↑β} {a : α} (ha : a ∈ ↑γ)
Goal: ⟨a, ⋯⟩ ∈ γ
-- Set.eq_univ_of_image_val_eq
theorem eq_univ_of_image_val_eq (hγ : (γ : Set α) = β) : γ = univ 
Arguments: {α : Type u} {β : Set α} {γ : Set ↑β} (hγ : ↑γ = β)
Goal: γ = Set.univ
-- Set.image_image_val_eq_restrict_image
theorem image_image_val_eq_restrict_image {δ : Type*} {f : α → δ} : f '' γ = β.restrict f '' γ 
Arguments: {α : Type u} {β : Set α} {γ : Set ↑β} {δ : Type u_1} {f : α → δ}
Goal: f '' ↑γ = β.restrict f '' γ
-- WeierstrassCurve.Affine.CoordinateRing.basis_apply
lemma basis_apply (n : Fin 2) :
    CoordinateRing.basis W n = (AdjoinRoot.powerBasis' W.monic_polynomial).gen ^ (n : ℕ) 
Arguments: {R : Type u} [CommRing R] (W : WeierstrassCurve.Affine R) (n : Fin 2)
Goal: (WeierstrassCurve.Affine.CoordinateRing.basis W) n = (AdjoinRoot.powerBasis' ⋯).gen ^ ↑n
-- WeierstrassCurve.Affine.CoordinateRing.basis_zero
@[simp]
lemma basis_zero : CoordinateRing.basis W 0 = 1 
Arguments: {R : Type u} [CommRing R] (W : WeierstrassCurve.Affine R)
Goal: (WeierstrassCurve.Affine.CoordinateRing.basis W) 0 = 1
-- WeierstrassCurve.Affine.CoordinateRing.basis_one
@[simp]
lemma basis_one : CoordinateRing.basis W 1 = mk W Y 
Arguments: {R : Type u} [CommRing R] (W : WeierstrassCurve.Affine R)
Goal: (WeierstrassCurve.Affine.CoordinateRing.basis W) 1 = (WeierstrassCurve.Affine.CoordinateRing.mk W) Y
-- WeierstrassCurve.Affine.CoordinateRing.coe_basis
lemma coe_basis : (CoordinateRing.basis W : Fin 2 → W.CoordinateRing) = ![1, mk W Y] 
Arguments: {R : Type u} [CommRing R] (W : WeierstrassCurve.Affine R)
Goal: ⇑(WeierstrassCurve.Affine.CoordinateRing.basis W) = ![1, (WeierstrassCurve.Affine.CoordinateRing.mk W) Y]
-- WeierstrassCurve.Affine.CoordinateRing.smul
lemma smul (x : R[X]) (y : W.CoordinateRing) : x • y = mk W (C x) * y 
Arguments: {R : Type u} [CommRing R] {W : WeierstrassCurve.Affine R} (x : R[X]) (y : W.CoordinateRing)
Goal: x • y = (WeierstrassCurve.Affine.CoordinateRing.mk W) (Polynomial.C x) * y
-- WeierstrassCurve.Affine.CoordinateRing.smul_basis_eq_zero
lemma smul_basis_eq_zero {p q : R[X]} (hpq : p • (1 : W.CoordinateRing) + q • mk W Y = 0) :
    p = 0 ∧ q = 0 
Arguments: {R : Type u} [CommRing R] {W : WeierstrassCurve.Affine R} {p q : R[X]} (hpq : p • 1 + q • (WeierstrassCurve.Affine.CoordinateRing.mk W) Y = 0)
Goal: p = 0 ∧ q = 0
-- WeierstrassCurve.Affine.CoordinateRing.exists_smul_basis_eq
lemma exists_smul_basis_eq (x : W.CoordinateRing) :
    ∃ p q : R[X], p • (1 : W.CoordinateRing) + q • mk W Y = x 
Arguments: {R : Type u} [CommRing R] {W : WeierstrassCurve.Affine R} (x : W.CoordinateRing)
Goal: ∃ p q, p • 1 + q • (WeierstrassCurve.Affine.CoordinateRing.mk W) Y = x
-- WeierstrassCurve.Affine.CoordinateRing.smul_basis_mul_C
lemma smul_basis_mul_C (y : R[X]) (p q : R[X]) :
    (p • (1 : W.CoordinateRing) + q • mk W Y) * mk W (C y) =
      (p * y) • (1 : W.CoordinateRing) + (q * y) • mk W Y 
Arguments: {R : Type u} [CommRing R] (W : WeierstrassCurve.Affine R) (y p q : R[X])
Goal: (p • 1 + q • (WeierstrassCurve.Affine.CoordinateRing.mk W) Y) *
    (WeierstrassCurve.Affine.CoordinateRing.mk W) (Polynomial.C y) =
  (p * y) • 1 + (q * y) • (WeierstrassCurve.Affine.CoordinateRing.mk W) Y
-- WeierstrassCurve.Affine.CoordinateRing.smul_basis_mul_Y
lemma smul_basis_mul_Y (p q : R[X]) : (p • (1 : W.CoordinateRing) + q • mk W Y) * mk W Y =
    (q * (X ^ 3 + C W.a₂ * X ^ 2 + C W.a₄ * X + C W.a₆)) • (1 : W.CoordinateRing) +
      (p - q * (C W.a₁ * X + C W.a₃)) • mk W Y 
Arguments: {R : Type u} [CommRing R] (W : WeierstrassCurve.Affine R) (p q : R[X])
Goal: (p • 1 + q • (WeierstrassCurve.Affine.CoordinateRing.mk W) Y) * (WeierstrassCurve.Affine.CoordinateRing.mk W) Y =
  (q *
        (Polynomial.X ^ 3 + Polynomial.C W.a₂ * Polynomial.X ^ 2 + Polynomial.C W.a₄ * Polynomial.X +
          Polynomial.C W.a₆)) •
      1 +
    (p - q * (Polynomial.C W.a₁ * Polynomial.X + Polynomial.C W.a₃)) • (WeierstrassCurve.Affine.CoordinateRing.mk W) Y
-- WeierstrassCurve.Affine.CoordinateRing.map_mk
lemma map_mk (x : R[X][Y]) : map W f (mk W x) = mk (W.map f) (x.map <| mapRingHom f) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] (W : WeierstrassCurve.Affine R) (f : R →+* S) (x : R[X][Y])
Goal: (WeierstrassCurve.Affine.CoordinateRing.map W f) ((WeierstrassCurve.Affine.CoordinateRing.mk W) x) =
  (WeierstrassCurve.Affine.CoordinateRing.mk (WeierstrassCurve.map W f)) (Polynomial.map (Polynomial.mapRingHom f) x)
-- WeierstrassCurve.Affine.CoordinateRing.map_smul
protected lemma map_smul (x : R[X]) (y : W.CoordinateRing) :
    map W f (x • y) = x.map f • map W f y 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] {W : WeierstrassCurve.Affine R} (f : R →+* S) (x : R[X]) (y : W.CoordinateRing)
Goal: (WeierstrassCurve.Affine.CoordinateRing.map W f) (x • y) =
  Polynomial.map f x • (WeierstrassCurve.Affine.CoordinateRing.map W f) y
-- WeierstrassCurve.Affine.CoordinateRing.map_injective
lemma map_injective (hf : Function.Injective f) : Function.Injective <| map W f 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] (W : WeierstrassCurve.Affine R) {f : R →+* S} (hf : Function.Injective ⇑f)
Goal: Function.Injective ⇑(WeierstrassCurve.Affine.CoordinateRing.map W f)
-- WeierstrassCurve.Affine.CoordinateRing.XClass_ne_zero
lemma XClass_ne_zero [Nontrivial R] (x : R) : XClass W x ≠ 0 
Arguments: {R : Type u} [CommRing R] (W : WeierstrassCurve.Affine R) [Nontrivial R] (x : R)
Goal: WeierstrassCurve.Affine.CoordinateRing.XClass W x ≠ 0
-- WeierstrassCurve.Affine.CoordinateRing.YClass_ne_zero
lemma YClass_ne_zero [Nontrivial R] (y : R[X]) : YClass W y ≠ 0 
Arguments: {R : Type u} [CommRing R] (W : WeierstrassCurve.Affine R) [Nontrivial R] (y : R[X])
Goal: WeierstrassCurve.Affine.CoordinateRing.YClass W y ≠ 0
-- WeierstrassCurve.Affine.CoordinateRing.C_addPolynomial
lemma C_addPolynomial (x y L : R) : mk W (C <| W.addPolynomial x y L) =
    mk W ((Y - C (linePolynomial x y L)) * (W.negPolynomial - C (linePolynomial x y L))) 
Arguments: {R : Type u} [CommRing R] (W : WeierstrassCurve.Affine R) (x y L : R)
Goal: (WeierstrassCurve.Affine.CoordinateRing.mk W) (Polynomial.C (W.addPolynomial x y L)) =
  (WeierstrassCurve.Affine.CoordinateRing.mk W)
    ((Y - Polynomial.C (WeierstrassCurve.Affine.linePolynomial x y L)) *
      (W.negPolynomial - Polynomial.C (WeierstrassCurve.Affine.linePolynomial x y L)))
-- WeierstrassCurve.Affine.CoordinateRing.XYIdeal_eq₁
lemma XYIdeal_eq₁ (x y L : R) : XYIdeal W x (C y) = XYIdeal W x (linePolynomial x y L) 
Arguments: {R : Type u} [CommRing R] (W : WeierstrassCurve.Affine R) (x y L : R)
Goal: WeierstrassCurve.Affine.CoordinateRing.XYIdeal W x (Polynomial.C y) =
  WeierstrassCurve.Affine.CoordinateRing.XYIdeal W x (WeierstrassCurve.Affine.linePolynomial x y L)
-- WeierstrassCurve.Affine.CoordinateRing.XYIdeal_add_eq
lemma XYIdeal_add_eq (x₁ x₂ y₁ L : R) : XYIdeal W (W.addX x₁ x₂ L) (C <| W.addY x₁ x₂ y₁ L) =
    span {mk W <| W.negPolynomial - C (linePolynomial x₁ y₁ L)} ⊔ XIdeal W (W.addX x₁ x₂ L) 
Arguments: {R : Type u} [CommRing R] (W : WeierstrassCurve.Affine R) (x₁ x₂ y₁ L : R)
Goal: WeierstrassCurve.Affine.CoordinateRing.XYIdeal W (W.addX x₁ x₂ L) (Polynomial.C (W.addY x₁ x₂ y₁ L)) =
  Ideal.span
      {(WeierstrassCurve.Affine.CoordinateRing.mk W)
          (W.negPolynomial - Polynomial.C (WeierstrassCurve.Affine.linePolynomial x₁ y₁ L))} ⊔
    WeierstrassCurve.Affine.CoordinateRing.XIdeal W (W.addX x₁ x₂ L)
-- WeierstrassCurve.Affine.CoordinateRing.C_addPolynomial_slope
lemma C_addPolynomial_slope {x₁ x₂ y₁ y₂ : F} (h₁ : W.Equation x₁ y₁) (h₂ : W.Equation x₂ y₂)
    (hxy : x₁ = x₂ → y₁ ≠ W.negY x₂ y₂) : mk W (C <| W.addPolynomial x₁ y₁ <| W.slope x₁ x₂ y₁ y₂) =
      -(XClass W x₁ * XClass W x₂ * XClass W (W.addX x₁ x₂ <| W.slope x₁ x₂ y₁ y₂)) 
Arguments: {F : Type u} [Field F] {W : WeierstrassCurve.Affine F} {x₁ x₂ y₁ y₂ : F} (h₁ : W.Equation x₁ y₁) (h₂ : W.Equation x₂ y₂) (hxy : x₁ = x₂ → y₁ ≠ W.negY x₂ y₂)
Goal: (WeierstrassCurve.Affine.CoordinateRing.mk W) (Polynomial.C (W.addPolynomial x₁ y₁ (W.slope x₁ x₂ y₁ y₂))) =
  -(WeierstrassCurve.Affine.CoordinateRing.XClass W x₁ * WeierstrassCurve.Affine.CoordinateRing.XClass W x₂ *
      WeierstrassCurve.Affine.CoordinateRing.XClass W (W.addX x₁ x₂ (W.slope x₁ x₂ y₁ y₂)))
-- WeierstrassCurve.Affine.CoordinateRing.XYIdeal_eq₂
lemma XYIdeal_eq₂ {x₁ x₂ y₁ y₂ : F} (h₁ : W.Equation x₁ y₁)
    (h₂ : W.Equation x₂ y₂) (hxy : x₁ = x₂ → y₁ ≠ W.negY x₂ y₂) :
    XYIdeal W x₂ (C y₂) = XYIdeal W x₂ (linePolynomial x₁ y₁ <| W.slope x₁ x₂ y₁ y₂) 
Arguments: {F : Type u} [Field F] {W : WeierstrassCurve.Affine F} {x₁ x₂ y₁ y₂ : F} (h₁ : W.Equation x₁ y₁) (h₂ : W.Equation x₂ y₂) (hxy : x₁ = x₂ → y₁ ≠ W.negY x₂ y₂)
Goal: WeierstrassCurve.Affine.CoordinateRing.XYIdeal W x₂ (Polynomial.C y₂) =
  WeierstrassCurve.Affine.CoordinateRing.XYIdeal W x₂
    (WeierstrassCurve.Affine.linePolynomial x₁ y₁ (W.slope x₁ x₂ y₁ y₂))
-- WeierstrassCurve.Affine.CoordinateRing.XYIdeal_neg_mul
lemma XYIdeal_neg_mul {x y : F} (h : W.Nonsingular x y) :
    XYIdeal W x (C <| W.negY x y) * XYIdeal W x (C y) = XIdeal W x 
Arguments: {F : Type u} [Field F] {W : WeierstrassCurve.Affine F} {x y : F} (h : W.Nonsingular x y)
Goal: WeierstrassCurve.Affine.CoordinateRing.XYIdeal W x (Polynomial.C (W.negY x y)) *
    WeierstrassCurve.Affine.CoordinateRing.XYIdeal W x (Polynomial.C y) =
  WeierstrassCurve.Affine.CoordinateRing.XIdeal W x
-- _private.Mathlib.AlgebraicGeometry.EllipticCurve.Group.0.WeierstrassCurve.Affine.CoordinateRing.XYIdeal'_mul_inv
private lemma XYIdeal'_mul_inv {x y : F} (h : W.Nonsingular x y) :
    XYIdeal W x (C y) * (XYIdeal W x (C <| W.negY x y) *
        (XIdeal W x : FractionalIdeal W.CoordinateRing⁰ W.FunctionField)⁻¹) = 1 
Arguments: {F : Type u} [Field F] {W : WeierstrassCurve.Affine F} {x y : F} (h : W.Nonsingular x y)
Goal: ↑(WeierstrassCurve.Affine.CoordinateRing.XYIdeal W x (Polynomial.C y)) *
    (↑(WeierstrassCurve.Affine.CoordinateRing.XYIdeal W x (Polynomial.C (W.negY x y))) *
      (↑(WeierstrassCurve.Affine.CoordinateRing.XIdeal W x))⁻¹) =
  1
-- WeierstrassCurve.Affine.CoordinateRing.XYIdeal_mul_XYIdeal
lemma XYIdeal_mul_XYIdeal {x₁ x₂ y₁ y₂ : F} (h₁ : W.Equation x₁ y₁) (h₂ : W.Equation x₂ y₂)
    (hxy : x₁ = x₂ → y₁ ≠ W.negY x₂ y₂) :
    XIdeal W (W.addX x₁ x₂ <| W.slope x₁ x₂ y₁ y₂) * (XYIdeal W x₁ (C y₁) * XYIdeal W x₂ (C y₂)) =
      YIdeal W (linePolynomial x₁ y₁ <| W.slope x₁ x₂ y₁ y₂) *
        XYIdeal W (W.addX x₁ x₂ <| W.slope x₁ x₂ y₁ y₂)
          (C <| W.addY x₁ x₂ y₁ <| W.slope x₁ x₂ y₁ y₂) 
Arguments: {F : Type u} [Field F] {W : WeierstrassCurve.Affine F} {x₁ x₂ y₁ y₂ : F} (h₁ : W.Equation x₁ y₁) (h₂ : W.Equation x₂ y₂) (hxy : x₁ = x₂ → y₁ ≠ W.negY x₂ y₂)
Goal: WeierstrassCurve.Affine.CoordinateRing.XIdeal W (W.addX x₁ x₂ (W.slope x₁ x₂ y₁ y₂)) *
    (WeierstrassCurve.Affine.CoordinateRing.XYIdeal W x₁ (Polynomial.C y₁) *
      WeierstrassCurve.Affine.CoordinateRing.XYIdeal W x₂ (Polynomial.C y₂)) =
  WeierstrassCurve.Affine.CoordinateRing.YIdeal W (WeierstrassCurve.Affine.linePolynomial x₁ y₁ (W.slope x₁ x₂ y₁ y₂)) *
    WeierstrassCurve.Affine.CoordinateRing.XYIdeal W (W.addX x₁ x₂ (W.slope x₁ x₂ y₁ y₂))
      (Polynomial.C (W.addY x₁ x₂ y₁ (W.slope x₁ x₂ y₁ y₂)))
-- WeierstrassCurve.Affine.CoordinateRing.XYIdeal'_eq
lemma XYIdeal'_eq {x y : F} (h : W.Nonsingular x y) :
    (XYIdeal' h : FractionalIdeal W.CoordinateRing⁰ W.FunctionField) = XYIdeal W x (C y) 
Arguments: {F : Type u} [Field F] {W : WeierstrassCurve.Affine F} {x y : F} (h : W.Nonsingular x y)
Goal: ↑(WeierstrassCurve.Affine.CoordinateRing.XYIdeal' h) =
  ↑(WeierstrassCurve.Affine.CoordinateRing.XYIdeal W x (Polynomial.C y))
-- WeierstrassCurve.Affine.CoordinateRing.mk_XYIdeal'_mul_mk_XYIdeal'_of_Yeq
lemma mk_XYIdeal'_mul_mk_XYIdeal'_of_Yeq {x y : F} (h : W.Nonsingular x y) :
    ClassGroup.mk (XYIdeal' <| nonsingular_neg h) * ClassGroup.mk (XYIdeal' h) = 1 
Arguments: {F : Type u} [Field F] {W : WeierstrassCurve.Affine F} {x y : F} (h : W.Nonsingular x y)
Goal: ClassGroup.mk (WeierstrassCurve.Affine.CoordinateRing.XYIdeal' ⋯) *
    ClassGroup.mk (WeierstrassCurve.Affine.CoordinateRing.XYIdeal' h) =
  1
-- WeierstrassCurve.Affine.CoordinateRing.mk_XYIdeal'_mul_mk_XYIdeal'
lemma mk_XYIdeal'_mul_mk_XYIdeal' {x₁ x₂ y₁ y₂ : F} (h₁ : W.Nonsingular x₁ y₁)
    (h₂ : W.Nonsingular x₂ y₂) (hxy : x₁ = x₂ → y₁ ≠ W.negY x₂ y₂) :
    ClassGroup.mk (XYIdeal' h₁) * ClassGroup.mk (XYIdeal' h₂) =
      ClassGroup.mk (XYIdeal' <| nonsingular_add h₁ h₂ hxy) 
Arguments: {F : Type u} [Field F] {W : WeierstrassCurve.Affine F} {x₁ x₂ y₁ y₂ : F} (h₁ : W.Nonsingular x₁ y₁) (h₂ : W.Nonsingular x₂ y₂) (hxy : x₁ = x₂ → y₁ ≠ W.negY x₂ y₂)
Goal: ClassGroup.mk (WeierstrassCurve.Affine.CoordinateRing.XYIdeal' h₁) *
    ClassGroup.mk (WeierstrassCurve.Affine.CoordinateRing.XYIdeal' h₂) =
  ClassGroup.mk (WeierstrassCurve.Affine.CoordinateRing.XYIdeal' ⋯)
-- WeierstrassCurve.Affine.CoordinateRing.norm_smul_basis
lemma norm_smul_basis (p q : R[X]) :
    Algebra.norm R[X] (p • (1 : W.CoordinateRing) + q • mk W Y) =
      p ^ 2 - p * q * (C W.a₁ * X + C W.a₃) -
        q ^ 2 * (X ^ 3 + C W.a₂ * X ^ 2 + C W.a₄ * X + C W.a₆) 
Arguments: {R : Type u} [CommRing R] (W : WeierstrassCurve.Affine R) (p q : R[X])
Goal: (Algebra.norm R[X]) (p • 1 + q • (WeierstrassCurve.Affine.CoordinateRing.mk W) Y) =
  p ^ 2 - p * q * (Polynomial.C W.a₁ * Polynomial.X + Polynomial.C W.a₃) -
    q ^ 2 *
      (Polynomial.X ^ 3 + Polynomial.C W.a₂ * Polynomial.X ^ 2 + Polynomial.C W.a₄ * Polynomial.X + Polynomial.C W.a₆)
-- WeierstrassCurve.Affine.CoordinateRing.coe_norm_smul_basis
lemma coe_norm_smul_basis (p q : R[X]) :
    Algebra.norm R[X] (p • (1 : W.CoordinateRing) + q • mk W Y) =
      mk W ((C p + C q * X) * (C p + C q * (-(Y : R[X][Y]) - C (C W.a₁ * X + C W.a₃)))) 
Arguments: {R : Type u} [CommRing R] (W : WeierstrassCurve.Affine R) (p q : R[X])
Goal: (AdjoinRoot.of W.polynomial) ((Algebra.norm R[X]) (p • 1 + q • (WeierstrassCurve.Affine.CoordinateRing.mk W) Y)) =
  (WeierstrassCurve.Affine.CoordinateRing.mk W)
    ((Polynomial.C p + Polynomial.C q * Y) *
      (Polynomial.C p + Polynomial.C q * (-Y - Polynomial.C (Polynomial.C W.a₁ * Polynomial.X + Polynomial.C W.a₃))))
-- WeierstrassCurve.Affine.CoordinateRing.degree_norm_smul_basis
lemma degree_norm_smul_basis [IsDomain R] (p q : R[X]) :
    (Algebra.norm R[X] <| p • (1 : W.CoordinateRing) + q • mk W Y).degree =
      max (2 • p.degree) (2 • q.degree + 3) 
Arguments: {R : Type u} [CommRing R] (W : WeierstrassCurve.Affine R) [IsDomain R] (p q : R[X])
Goal: ((Algebra.norm R[X]) (p • 1 + q • (WeierstrassCurve.Affine.CoordinateRing.mk W) Y)).degree =
  max (2 • p.degree) (2 • q.degree + 3)
-- WeierstrassCurve.Affine.CoordinateRing.degree_norm_ne_one
lemma degree_norm_ne_one [IsDomain R] (x : W.CoordinateRing) :
    (Algebra.norm R[X] x).degree ≠ 1 
Arguments: {R : Type u} [CommRing R] {W : WeierstrassCurve.Affine R} [IsDomain R] (x : W.CoordinateRing)
Goal: ((Algebra.norm R[X]) x).degree ≠ 1
-- WeierstrassCurve.Affine.CoordinateRing.natDegree_norm_ne_one
lemma natDegree_norm_ne_one [IsDomain R] (x : W.CoordinateRing) :
    (Algebra.norm R[X] x).natDegree ≠ 1 
Arguments: {R : Type u} [CommRing R] {W : WeierstrassCurve.Affine R} [IsDomain R] (x : W.CoordinateRing)
Goal: ((Algebra.norm R[X]) x).natDegree ≠ 1
-- WeierstrassCurve.Affine.Point.toClass_apply
@[simps]
noncomputable def toClass : W.Point →+ Additive (ClassGroup W.CoordinateRing) 
Arguments: {F : Type u} [Field F] {W : WeierstrassCurve.Affine F}
Goal: ∀ (a : W.Point), WeierstrassCurve.Affine.Point.toClass a = a.toClassFun
-- WeierstrassCurve.Affine.Point.toClass_zero
lemma toClass_zero : toClass (0 : W.Point) = 0 
Arguments: {F : Type u} [Field F] {W : WeierstrassCurve.Affine F}
Goal: WeierstrassCurve.Affine.Point.toClass 0 = 0
-- WeierstrassCurve.Affine.Point.toClass_some
lemma toClass_some {x y : F} (h : W.Nonsingular x y) :
    toClass (some h) = ClassGroup.mk (CoordinateRing.XYIdeal' h) 
Arguments: {F : Type u} [Field F] {W : WeierstrassCurve.Affine F} {x y : F} (h : W.Nonsingular x y)
Goal: WeierstrassCurve.Affine.Point.toClass (WeierstrassCurve.Affine.Point.some h) =
  ClassGroup.mk (WeierstrassCurve.Affine.CoordinateRing.XYIdeal' h)
-- _private.Mathlib.AlgebraicGeometry.EllipticCurve.Group.0.WeierstrassCurve.Affine.Point.add_eq_zero
private lemma add_eq_zero (P Q : W.Point) : P + Q = 0 ↔ P = -Q 
Arguments: {F : Type u} [Field F] {W : WeierstrassCurve.Affine F} (P Q : W.Point)
Goal: P + Q = 0 ↔ P = -Q
-- WeierstrassCurve.Affine.Point.toClass_eq_zero
lemma toClass_eq_zero (P : W.Point) : toClass P = 0 ↔ P = 0 
Arguments: {F : Type u} [Field F] {W : WeierstrassCurve.Affine F} (P : W.Point)
Goal: WeierstrassCurve.Affine.Point.toClass P = 0 ↔ P = 0
-- WeierstrassCurve.Affine.Point.toClass_injective
lemma toClass_injective : Function.Injective <| @toClass _ _ W 
Arguments: {F : Type u} [Field F] {W : WeierstrassCurve.Affine F}
Goal: Function.Injective ⇑WeierstrassCurve.Affine.Point.toClass
-- Set.singleton_one
@[to_additive]
theorem singleton_one : ({1} : Set α) = 1 
Arguments: {α : Type u_2} [One α]
Goal: {1} = 1
-- Set.singleton_zero
@[to_additive]
theorem singleton_one : ({1} : Set α) = 1 
Arguments: {α : Type u_2} [Zero α]
Goal: {0} = 0
-- Set.mem_zero
@[to_additive (attr := simp)]
theorem mem_one : a ∈ (1 : Set α) ↔ a = 1 
Arguments: {α : Type u_2} [Zero α] {a : α}
Goal: a ∈ 0 ↔ a = 0
-- Set.mem_one
@[to_additive (attr := simp)]
theorem mem_one : a ∈ (1 : Set α) ↔ a = 1 
Arguments: {α : Type u_2} [One α] {a : α}
Goal: a ∈ 1 ↔ a = 1
-- Set.one_mem_one
@[to_additive]
theorem one_mem_one : (1 : α) ∈ (1 : Set α) 
Arguments: {α : Type u_2} [One α]
Goal: 1 ∈ 1
-- Set.zero_mem_zero
@[to_additive]
theorem one_mem_one : (1 : α) ∈ (1 : Set α) 
Arguments: {α : Type u_2} [Zero α]
Goal: 0 ∈ 0
-- Set.zero_subset
@[to_additive (attr := simp)]
theorem one_subset : 1 ⊆ s ↔ (1 : α) ∈ s 
Arguments: {α : Type u_2} [Zero α] {s : Set α}
Goal: 0 ⊆ s ↔ 0 ∈ s
-- Set.one_subset
@[to_additive (attr := simp)]
theorem one_subset : 1 ⊆ s ↔ (1 : α) ∈ s 
Arguments: {α : Type u_2} [One α] {s : Set α}
Goal: 1 ⊆ s ↔ 1 ∈ s
-- Set.one_nonempty
@[to_additive]
theorem one_nonempty : (1 : Set α).Nonempty 
Arguments: {α : Type u_2} [One α]
Goal: Set.Nonempty 1
-- Set.zero_nonempty
@[to_additive]
theorem one_nonempty : (1 : Set α).Nonempty 
Arguments: {α : Type u_2} [Zero α]
Goal: Set.Nonempty 0
-- Set.image_one
@[to_additive (attr := simp)]
theorem image_one {f : α → β} : f '' 1 = {f 1} 
Arguments: {α : Type u_2} {β : Type u_3} [One α] {f : α → β}
Goal: f '' 1 = {f 1}
-- Set.image_zero
@[to_additive (attr := simp)]
theorem image_one {f : α → β} : f '' 1 = {f 1} 
Arguments: {α : Type u_2} {β : Type u_3} [Zero α] {f : α → β}
Goal: f '' 0 = {f 0}
-- Set.subset_one_iff_eq
@[to_additive]
theorem subset_one_iff_eq : s ⊆ 1 ↔ s = ∅ ∨ s = 1 
Arguments: {α : Type u_2} [One α] {s : Set α}
Goal: s ⊆ 1 ↔ s = ∅ ∨ s = 1
-- Set.subset_zero_iff_eq
@[to_additive]
theorem subset_one_iff_eq : s ⊆ 1 ↔ s = ∅ ∨ s = 1 
Arguments: {α : Type u_2} [Zero α] {s : Set α}
Goal: s ⊆ 0 ↔ s = ∅ ∨ s = 0
-- Set.Nonempty.subset_one_iff
@[to_additive]
theorem Nonempty.subset_one_iff (h : s.Nonempty) : s ⊆ 1 ↔ s = 1 
Arguments: {α : Type u_2} [One α] {s : Set α} (h : s.Nonempty)
Goal: s ⊆ 1 ↔ s = 1
-- Set.Nonempty.subset_zero_iff
@[to_additive]
theorem Nonempty.subset_one_iff (h : s.Nonempty) : s ⊆ 1 ↔ s = 1 
Arguments: {α : Type u_2} [Zero α] {s : Set α} (h : s.Nonempty)
Goal: s ⊆ 0 ↔ s = 0
-- Set.coe_singletonOneHom
@[to_additive (attr := simp)]
theorem coe_singletonOneHom : (singletonOneHom : α → Set α) = singleton 
Arguments: {α : Type u_2} [One α]
Goal: ⇑Set.singletonOneHom = singleton
-- Set.coe_singletonZeroHom
@[to_additive (attr := simp)]
theorem coe_singletonOneHom : (singletonOneHom : α → Set α) = singleton 
Arguments: {α : Type u_2} [Zero α]
Goal: ⇑Set.singletonZeroHom = singleton
-- Set.mem_neg
@[to_additive (attr := simp)]
theorem mem_inv : a ∈ s⁻¹ ↔ a⁻¹ ∈ s 
Arguments: {α : Type u_2} [Neg α] {s : Set α} {a : α}
Goal: a ∈ -s ↔ -a ∈ s
-- Set.mem_inv
@[to_additive (attr := simp)]
theorem mem_inv : a ∈ s⁻¹ ↔ a⁻¹ ∈ s 
Arguments: {α : Type u_2} [Inv α] {s : Set α} {a : α}
Goal: a ∈ s⁻¹ ↔ a⁻¹ ∈ s
-- Set.inv_preimage
@[to_additive (attr := simp)]
theorem inv_preimage : Inv.inv ⁻¹' s = s⁻¹ 
Arguments: {α : Type u_2} [Inv α] {s : Set α}
Goal: Inv.inv ⁻¹' s = s⁻¹
-- Set.neg_preimage
@[to_additive (attr := simp)]
theorem inv_preimage : Inv.inv ⁻¹' s = s⁻¹ 
Arguments: {α : Type u_2} [Neg α] {s : Set α}
Goal: Neg.neg ⁻¹' s = -s
-- Set.inv_empty
@[to_additive (attr := simp)]
theorem inv_empty : (∅ : Set α)⁻¹ = ∅ 
Arguments: {α : Type u_2} [Inv α]
Goal: ∅⁻¹ = ∅
-- Set.neg_empty
@[to_additive (attr := simp)]
theorem inv_empty : (∅ : Set α)⁻¹ = ∅ 
Arguments: {α : Type u_2} [Neg α]
Goal: -∅ = ∅
-- Set.neg_univ
@[to_additive (attr := simp)]
theorem inv_univ : (univ : Set α)⁻¹ = univ 
Arguments: {α : Type u_2} [Neg α]
Goal: -Set.univ = Set.univ
-- Set.inv_univ
@[to_additive (attr := simp)]
theorem inv_univ : (univ : Set α)⁻¹ = univ 
Arguments: {α : Type u_2} [Inv α]
Goal: Set.univ⁻¹ = Set.univ
-- Set.inter_neg
@[to_additive (attr := simp)]
theorem inter_inv : (s ∩ t)⁻¹ = s⁻¹ ∩ t⁻¹ 
Arguments: {α : Type u_2} [Neg α] {s t : Set α}
Goal: -(s ∩ t) = -s ∩ -t
-- Set.inter_inv
@[to_additive (attr := simp)]
theorem inter_inv : (s ∩ t)⁻¹ = s⁻¹ ∩ t⁻¹ 
Arguments: {α : Type u_2} [Inv α] {s t : Set α}
Goal: (s ∩ t)⁻¹ = s⁻¹ ∩ t⁻¹
-- Set.union_inv
@[to_additive (attr := simp)]
theorem union_inv : (s ∪ t)⁻¹ = s⁻¹ ∪ t⁻¹ 
Arguments: {α : Type u_2} [Inv α] {s t : Set α}
Goal: (s ∪ t)⁻¹ = s⁻¹ ∪ t⁻¹
-- Set.union_neg
@[to_additive (attr := simp)]
theorem union_inv : (s ∪ t)⁻¹ = s⁻¹ ∪ t⁻¹ 
Arguments: {α : Type u_2} [Neg α] {s t : Set α}
Goal: -(s ∪ t) = -s ∪ -t
-- Set.iInter_neg
@[to_additive (attr := simp)]
theorem iInter_inv (s : ι → Set α) : (⋂ i, s i)⁻¹ = ⋂ i, (s i)⁻¹ 
Arguments: {α : Type u_2} {ι : Sort u_5} [Neg α] (s : ι → Set α)
Goal: -⋂ i, s i = ⋂ i, -s i
-- Set.iInter_inv
@[to_additive (attr := simp)]
theorem iInter_inv (s : ι → Set α) : (⋂ i, s i)⁻¹ = ⋂ i, (s i)⁻¹ 
Arguments: {α : Type u_2} {ι : Sort u_5} [Inv α] (s : ι → Set α)
Goal: (⋂ i, s i)⁻¹ = ⋂ i, (s i)⁻¹
-- Set.iUnion_neg
@[to_additive (attr := simp)]
theorem iUnion_inv (s : ι → Set α) : (⋃ i, s i)⁻¹ = ⋃ i, (s i)⁻¹ 
Arguments: {α : Type u_2} {ι : Sort u_5} [Neg α] (s : ι → Set α)
Goal: -⋃ i, s i = ⋃ i, -s i
-- Set.iUnion_inv
@[to_additive (attr := simp)]
theorem iUnion_inv (s : ι → Set α) : (⋃ i, s i)⁻¹ = ⋃ i, (s i)⁻¹ 
Arguments: {α : Type u_2} {ι : Sort u_5} [Inv α] (s : ι → Set α)
Goal: (⋃ i, s i)⁻¹ = ⋃ i, (s i)⁻¹
-- Set.compl_neg
@[to_additive (attr := simp)]
theorem compl_inv : sᶜ⁻¹ = s⁻¹ᶜ 
Arguments: {α : Type u_2} [Neg α] {s : Set α}
Goal: -sᶜ = (-s)ᶜ
-- Set.compl_inv
@[to_additive (attr := simp)]
theorem compl_inv : sᶜ⁻¹ = s⁻¹ᶜ 
Arguments: {α : Type u_2} [Inv α] {s : Set α}
Goal: sᶜ⁻¹ = s⁻¹ᶜ
-- Set.inv_mem_inv
@[to_additive]
theorem inv_mem_inv : a⁻¹ ∈ s⁻¹ ↔ a ∈ s 
Arguments: {α : Type u_2} [InvolutiveInv α] {s : Set α} {a : α}
Goal: a⁻¹ ∈ s⁻¹ ↔ a ∈ s
-- Set.neg_mem_neg
@[to_additive]
theorem inv_mem_inv : a⁻¹ ∈ s⁻¹ ↔ a ∈ s 
Arguments: {α : Type u_2} [InvolutiveNeg α] {s : Set α} {a : α}
Goal: -a ∈ -s ↔ a ∈ s