Loogle!
Result
Found 247 declarations mentioning WeierstrassCurve.Affine. Of these, only the first 200 are shown.
- WeierstrassCurve.Affine π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
(R : Type r) : Type r - WeierstrassCurve.toAffine π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} (W : WeierstrassCurve R) : WeierstrassCurve.Affine R - WeierstrassCurve.Affine.Equation π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) (x y : R) : Prop - WeierstrassCurve.Affine.Nonsingular π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) (x y : R) : Prop - WeierstrassCurve.Affine.polynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) : Polynomial (Polynomial R) - WeierstrassCurve.Affine.polynomialX π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) : Polynomial (Polynomial R) - WeierstrassCurve.Affine.polynomialY π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) : Polynomial (Polynomial R) - WeierstrassCurve.Affine.baseChange π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) (S : Type s) [CommRing S] [Algebra R S] : WeierstrassCurve.Affine S - WeierstrassCurve.Affine.monic_polynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} : W.polynomial.Monic - WeierstrassCurve.Affine.equation_iff_nonsingular π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} [Nontrivial R] [WeierstrassCurve.IsElliptic W] {x y : R} : W.Equation x y β W.Nonsingular x y - WeierstrassCurve.Affine.map π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) {S : Type s} [CommRing S] (f : R β+* S) : WeierstrassCurve.Affine S - WeierstrassCurve.Affine.natDegree_polynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} [Nontrivial R] : W.polynomial.natDegree = 2 - WeierstrassCurve.Affine.equation_iff_nonsingular_of_Ξ_ne_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} {x y : R} (hΞ : WeierstrassCurve.Ξ W β 0) : W.Equation x y β W.Nonsingular x y - WeierstrassCurve.Affine.evalEval_polynomialY_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} : Polynomial.evalEval 0 0 W.polynomialY = W.aβ - WeierstrassCurve.Affine.degree_polynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} [Nontrivial R] : W.polynomial.degree = 2 - WeierstrassCurve.Affine.equation_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} : W.Equation 0 0 β W.aβ = 0 - WeierstrassCurve.Affine.irreducible_polynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} [IsDomain R] : Irreducible W.polynomial - WeierstrassCurve.Affine.evalEval_polynomialX_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} : Polynomial.evalEval 0 0 W.polynomialX = -W.aβ - WeierstrassCurve.Affine.evalEval_polynomial_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} : Polynomial.evalEval 0 0 W.polynomial = -W.aβ - WeierstrassCurve.Affine.polynomial_ne_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} [Nontrivial R] : W.polynomial β 0 - WeierstrassCurve.Affine.baseChange_aβ π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) (S : Type s) [CommRing S] [Algebra R S] : (W.baseChange S).aβ = (algebraMap R S) W.aβ - WeierstrassCurve.Affine.baseChange_aβ π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) (S : Type s) [CommRing S] [Algebra R S] : (W.baseChange S).aβ = (algebraMap R S) W.aβ - WeierstrassCurve.Affine.baseChange_aβ π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) (S : Type s) [CommRing S] [Algebra R S] : (W.baseChange S).aβ = (algebraMap R S) W.aβ - WeierstrassCurve.Affine.baseChange_aβ π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) (S : Type s) [CommRing S] [Algebra R S] : (W.baseChange S).aβ = (algebraMap R S) W.aβ - WeierstrassCurve.Affine.baseChange_aβ π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) (S : Type s) [CommRing S] [Algebra R S] : (W.baseChange S).aβ = (algebraMap R S) W.aβ - WeierstrassCurve.Affine.nonsingular_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} : W.Nonsingular 0 0 β W.aβ = 0 β§ (W.aβ β 0 β¨ W.aβ β 0) - WeierstrassCurve.Affine.map_polynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) {S : Type s} [CommRing S] (f : R β+* S) : (W.map f).polynomial = Polynomial.map (Polynomial.mapRingHom f) W.polynomial - WeierstrassCurve.Affine.map_polynomialX π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) {S : Type s} [CommRing S] (f : R β+* S) : (W.map f).polynomialX = Polynomial.map (Polynomial.mapRingHom f) W.polynomialX - WeierstrassCurve.Affine.map_polynomialY π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) {S : Type s} [CommRing S] (f : R β+* S) : (W.map f).polynomialY = Polynomial.map (Polynomial.mapRingHom f) W.polynomialY - WeierstrassCurve.Affine.equation_iff_variableChange π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} (x y : R) : W.Equation x y β (WeierstrassCurve.toAffine ({ u := 1, r := x, s := 0, t := y } β’ W)).Equation 0 0 - WeierstrassCurve.Affine.nonsingular_iff_variableChange π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} (x y : R) : W.Nonsingular x y β (WeierstrassCurve.toAffine ({ u := 1, r := x, s := 0, t := y } β’ W)).Nonsingular 0 0 - WeierstrassCurve.Affine.evalEval_polynomialY π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} (x y : R) : Polynomial.evalEval x y W.polynomialY = 2 * y + W.aβ * x + W.aβ - WeierstrassCurve.Affine.Equation.map π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} {S : Type s} [CommRing S] (f : R β+* S) {x y : R} (h : W.Equation x y) : (W.map f).Equation (f x) (f y) - WeierstrassCurve.Affine.map_equation π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) {S : Type s} [CommRing S] {f : R β+* S} (hf : Function.Injective βf) (x y : R) : (W.map f).Equation (f x) (f y) β W.Equation x y - WeierstrassCurve.Affine.map_nonsingular π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) {S : Type s} [CommRing S] {f : R β+* S} (hf : Function.Injective βf) (x y : R) : (W.map f).Nonsingular (f x) (f y) β W.Nonsingular x y - WeierstrassCurve.Affine.evalEval_polynomialX π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} (x y : R) : Polynomial.evalEval x y W.polynomialX = W.aβ * y - (3 * x ^ 2 + 2 * W.aβ * x + W.aβ) - WeierstrassCurve.Affine.polynomial_eq π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} : W.polynomial = { a := 0, b := 1, c := { a := 0, b := 0, c := W.aβ, d := W.aβ }.toPoly, d := { a := -1, b := -W.aβ, c := -W.aβ, d := -W.aβ }.toPoly }.toPoly - WeierstrassCurve.Affine.equation_iff π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} (x y : R) : W.Equation x y β y ^ 2 + W.aβ * x * y + W.aβ * y = x ^ 3 + W.aβ * x ^ 2 + W.aβ * x + W.aβ - WeierstrassCurve.Affine.evalEval_polynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} (x y : R) : Polynomial.evalEval x y W.polynomial = y ^ 2 + W.aβ * x * y + W.aβ * y - (x ^ 3 + W.aβ * x ^ 2 + W.aβ * x + W.aβ) - WeierstrassCurve.Affine.nonsingular_iff π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} (x y : R) : W.Nonsingular x y β W.Equation x y β§ (W.aβ * y β 3 * x ^ 2 + 2 * W.aβ * x + W.aβ β¨ y β -y - W.aβ * x - W.aβ) - WeierstrassCurve.Affine.Equation.baseChange π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} {S : Type s} [CommRing S] {A : Type u} [CommRing A] {B : Type v} [CommRing B] [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A ββ[S] B) {x y : A} (h : (W.baseChange A).Equation x y) : (W.baseChange B).Equation (f x) (f y) - WeierstrassCurve.Affine.equation_iff' π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} (x y : R) : W.Equation x y β y ^ 2 + W.aβ * x * y + W.aβ * y - (x ^ 3 + W.aβ * x ^ 2 + W.aβ * x + W.aβ) = 0 - WeierstrassCurve.Affine.map_baseChange π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) {S : Type s} [CommRing S] {A : Type u} [CommRing A] {B : Type v} [CommRing B] [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A ββ[S] B) : (W.baseChange A).map βf = W.baseChange B - WeierstrassCurve.Affine.baseChange_equation π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) {S : Type s} [CommRing S] {A : Type u} [CommRing A] {B : Type v} [CommRing B] [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Algebra R B] [Algebra S B] [IsScalarTower R S B] {f : A ββ[S] B} (hf : Function.Injective βf) (x y : A) : (W.baseChange B).Equation (f x) (f y) β (W.baseChange A).Equation x y - WeierstrassCurve.Affine.baseChange_nonsingular π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) {S : Type s} [CommRing S] {A : Type u} [CommRing A] {B : Type v} [CommRing B] [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Algebra R B] [Algebra S B] [IsScalarTower R S B] {f : A ββ[S] B} (hf : Function.Injective βf) (x y : A) : (W.baseChange B).Nonsingular (f x) (f y) β (W.baseChange A).Nonsingular x y - WeierstrassCurve.Affine.nonsingular_iff' π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] {W : WeierstrassCurve.Affine R} (x y : R) : W.Nonsingular x y β W.Equation x y β§ (W.aβ * y - (3 * x ^ 2 + 2 * W.aβ * x + W.aβ) β 0 β¨ 2 * y + W.aβ * x + W.aβ β 0) - WeierstrassCurve.Affine.baseChange_polynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) {S : Type s} [CommRing S] {A : Type u} [CommRing A] {B : Type v} [CommRing B] [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A ββ[S] B) : (W.baseChange B).polynomial = Polynomial.map (Polynomial.mapRingHom βf) (W.baseChange A).polynomial - WeierstrassCurve.Affine.baseChange_polynomialX π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) {S : Type s} [CommRing S] {A : Type u} [CommRing A] {B : Type v} [CommRing B] [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A ββ[S] B) : (W.baseChange B).polynomialX = Polynomial.map (Polynomial.mapRingHom βf) (W.baseChange A).polynomialX - WeierstrassCurve.Affine.baseChange_polynomialY π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Basic
{R : Type r} [CommRing R] (W : WeierstrassCurve.Affine R) {S : Type s} [CommRing S] {A : Type u} [CommRing A] {B : Type v} [CommRing B] [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A ββ[S] B) : (W.baseChange B).polynomialY = Polynomial.map (Polynomial.mapRingHom βf) (W.baseChange A).polynomialY - WeierstrassCurve.Affine.negY π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) (x y : R) : R - WeierstrassCurve.Affine.addX π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) (xβ xβ β : R) : R - WeierstrassCurve.Affine.addY π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) (xβ xβ yβ β : R) : R - WeierstrassCurve.Affine.negAddY π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) (xβ xβ yβ β : R) : R - WeierstrassCurve.Affine.slope π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] (W : WeierstrassCurve.Affine F) [DecidableEq F] (xβ xβ yβ yβ : F) : F - WeierstrassCurve.Affine.addPolynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) (x y β : R) : Polynomial R - WeierstrassCurve.Affine.negPolynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) : Polynomial (Polynomial R) - WeierstrassCurve.Affine.negY_negY π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} (x y : R) : W'.negY x (W'.negY x y) = y - WeierstrassCurve.Affine.equation_neg π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} (x y : R) : W'.Equation x (W'.negY x y) β W'.Equation x y - WeierstrassCurve.Affine.nonsingular_neg π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} (x y : R) : W'.Nonsingular x (W'.negY x y) β W'.Nonsingular x y - WeierstrassCurve.Affine.evalEval_negPolynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} (x y : R) : Polynomial.evalEval x y W'.negPolynomial = W'.negY x y - WeierstrassCurve.Affine.Y_eq_of_Y_ne π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} {xβ xβ yβ yβ : F} (hβ : W.Equation xβ yβ) (hβ : W.Equation xβ yβ) (hx : xβ = xβ) (hy : yβ β W.negY xβ yβ) : yβ = yβ - WeierstrassCurve.Affine.Y_eq_of_X_eq π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} {xβ xβ yβ yβ : F} (hβ : W.Equation xβ yβ) (hβ : W.Equation xβ yβ) (hx : xβ = xβ) : yβ = yβ β¨ yβ = W.negY xβ yβ - WeierstrassCurve.Affine.slope_of_Y_eq π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} (hx : xβ = xβ) (hy : yβ = W.negY xβ yβ) : W.slope xβ xβ yβ yβ = 0 - WeierstrassCurve.Affine.equation_add_iff π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} (xβ xβ yβ β : R) : W'.Equation (W'.addX xβ xβ β) (W'.negAddY xβ xβ yβ β) β Polynomial.eval (W'.addX xβ xβ β) (W'.addPolynomial xβ yβ β) = 0 - WeierstrassCurve.Affine.slope_of_X_ne π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} (hx : xβ β xβ) : W.slope xβ xβ yβ yβ = (yβ - yβ) / (xβ - xβ) - WeierstrassCurve.Affine.equation_add π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} (hβ : W.Equation xβ yβ) (hβ : W.Equation xβ yβ) (hxy : Β¬(xβ = xβ β§ yβ = W.negY xβ yβ)) : W.Equation (W.addX xβ xβ (W.slope xβ xβ yβ yβ)) (W.addY xβ xβ yβ (W.slope xβ xβ yβ yβ)) - WeierstrassCurve.Affine.equation_negAdd π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} (hβ : W.Equation xβ yβ) (hβ : W.Equation xβ yβ) (hxy : Β¬(xβ = xβ β§ yβ = W.negY xβ yβ)) : W.Equation (W.addX xβ xβ (W.slope xβ xβ yβ yβ)) (W.negAddY xβ xβ yβ (W.slope xβ xβ yβ yβ)) - WeierstrassCurve.Affine.nonsingular_add π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} (hβ : W.Nonsingular xβ yβ) (hβ : W.Nonsingular xβ yβ) (hxy : Β¬(xβ = xβ β§ yβ = W.negY xβ yβ)) : W.Nonsingular (W.addX xβ xβ (W.slope xβ xβ yβ yβ)) (W.addY xβ xβ yβ (W.slope xβ xβ yβ yβ)) - WeierstrassCurve.Affine.nonsingular_negAdd π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} (hβ : W.Nonsingular xβ yβ) (hβ : W.Nonsingular xβ yβ) (hxy : Β¬(xβ = xβ β§ yβ = W.negY xβ yβ)) : W.Nonsingular (W.addX xβ xβ (W.slope xβ xβ yβ yβ)) (W.negAddY xβ xβ yβ (W.slope xβ xβ yβ yβ)) - WeierstrassCurve.Affine.map_negPolynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} {S : Type s} [CommRing R] [CommRing S] {W' : WeierstrassCurve.Affine R} (f : R β+* S) : (W'.map f).negPolynomial = Polynomial.map (Polynomial.mapRingHom f) W'.negPolynomial - WeierstrassCurve.Affine.slope_of_Y_ne_eq_evalEval π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} (hx : xβ = xβ) (hy : yβ β W.negY xβ yβ) : W.slope xβ xβ yβ yβ = -Polynomial.evalEval xβ yβ W.polynomialX / Polynomial.evalEval xβ yβ W.polynomialY - WeierstrassCurve.Affine.Y_sub_negPolynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : Polynomial.X - W'.negPolynomial = W'.polynomialY - WeierstrassCurve.Affine.Y_sub_polynomialY π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : Polynomial.X - W'.polynomialY = W'.negPolynomial - WeierstrassCurve.Affine.map_negY π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} {S : Type s} [CommRing R] [CommRing S] {W' : WeierstrassCurve.Affine R} (f : R β+* S) (x y : R) : (W'.map f).negY (f x) (f y) = f (W'.negY x y) - WeierstrassCurve.Affine.map_addPolynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} {S : Type s} [CommRing R] [CommRing S] {W' : WeierstrassCurve.Affine R} (f : R β+* S) (x y β : R) : (W'.map f).addPolynomial (f x) (f y) (f β) = Polynomial.map f (W'.addPolynomial x y β) - WeierstrassCurve.Affine.map_addX π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} {S : Type s} [CommRing R] [CommRing S] {W' : WeierstrassCurve.Affine R} (f : R β+* S) (xβ xβ β : R) : (W'.map f).addX (f xβ) (f xβ) (f β) = f (W'.addX xβ xβ β) - WeierstrassCurve.Affine.addX_eq_addX_negY_sub π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ : F} (yβ yβ : F) (hx : xβ β xβ) : W.addX xβ xβ (W.slope xβ xβ yβ yβ) = W.addX xβ xβ (W.slope xβ xβ yβ (W.negY xβ yβ)) - (yβ - W.negY xβ yβ) * (yβ - W.negY xβ yβ) / (xβ - xβ) ^ 2 - WeierstrassCurve.Affine.cyclic_sum_Y_mul_X_sub_X π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ : F} (yβ yβ : F) (hx : xβ β xβ) : have xβ := W.addX xβ xβ (W.slope xβ xβ yβ yβ); yβ * (xβ - xβ) + yβ * (xβ - xβ) + W.negAddY xβ xβ yβ (W.slope xβ xβ yβ yβ) * (xβ - xβ) = 0 - WeierstrassCurve.Affine.map_addY π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} {S : Type s} [CommRing R] [CommRing S] {W' : WeierstrassCurve.Affine R} (f : R β+* S) (xβ yβ xβ β : R) : (W'.map f).addY (f xβ) (f xβ) (f yβ) (f β) = f (W'.addY xβ xβ yβ β) - WeierstrassCurve.Affine.map_negAddY π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} {S : Type s} [CommRing R] [CommRing S] {W' : WeierstrassCurve.Affine R} (f : R β+* S) (xβ yβ xβ β : R) : (W'.map f).negAddY (f xβ) (f xβ) (f yβ) (f β) = f (W'.negAddY xβ xβ yβ β) - WeierstrassCurve.Affine.addY_sub_negY_addY π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ : F} (yβ yβ : F) (hx : xβ β xβ) : have xβ := W.addX xβ xβ (W.slope xβ xβ yβ yβ); have yβ := W.addY xβ xβ yβ (W.slope xβ xβ yβ yβ); yβ - W.negY xβ yβ = ((yβ - W.negY xβ yβ) * (xβ - xβ) - (yβ - W.negY xβ yβ) * (xβ - xβ)) / (xβ - xβ) - WeierstrassCurve.Affine.den_duplication_eq_zero_iff π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [IsReduced R] {x y : R} (h : W'.Equation x y) : 4 * x ^ 3 + WeierstrassCurve.bβ W' * x ^ 2 + 2 * WeierstrassCurve.bβ W' * x + WeierstrassCurve.bβ W' = 0 β y = W'.negY x y - WeierstrassCurve.Affine.slope_of_Y_ne π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} (hx : xβ = xβ) (hy : yβ β W.negY xβ yβ) : W.slope xβ xβ yβ yβ = (3 * xβ ^ 2 + 2 * W.aβ * xβ + W.aβ - W.aβ * yβ) / (yβ - W.negY xβ yβ) - WeierstrassCurve.Affine.map_slope π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} {K : Type v} [Field F] [Field K] {W : WeierstrassCurve.Affine F} [DecidableEq F] [DecidableEq K] (f : F β+* K) (xβ xβ yβ yβ : F) : (W.map f).slope (f xβ) (f xβ) (f yβ) (f yβ) = f (W.slope xβ xβ yβ yβ) - WeierstrassCurve.Affine.baseChange_negY π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} {S : Type s} {A : Type u} {B : Type v} [CommRing R] [CommRing S] [CommRing A] [CommRing B] {W' : WeierstrassCurve.Affine R} [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A ββ[S] B) (x y : A) : (W'.baseChange B).negY (f x) (f y) = f ((W'.baseChange A).negY x y) - WeierstrassCurve.Affine.nonsingular_negAdd_of_eval_derivative_ne_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} {xβ xβ yβ β : R} (hx' : W'.Equation (W'.addX xβ xβ β) (W'.negAddY xβ xβ yβ β)) (hx : Polynomial.eval (W'.addX xβ xβ β) (Polynomial.derivative (W'.addPolynomial xβ yβ β)) β 0) : W'.Nonsingular (W'.addX xβ xβ β) (W'.negAddY xβ xβ yβ β) - WeierstrassCurve.Affine.den_duplication_eq π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} {x y : R} (h : W'.Equation x y) : 4 * x ^ 3 + WeierstrassCurve.bβ W' * x ^ 2 + 2 * WeierstrassCurve.bβ W' * x + WeierstrassCurve.bβ W' = (2 * y + W'.aβ * x + W'.aβ) ^ 2 - WeierstrassCurve.Affine.addX_of_X_ne π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ yβ xβ yβ : F} (hn : xβ β xβ) : W.addX xβ xβ (W.slope xβ xβ yβ yβ) = ((yβ - yβ) ^ 2 + W.aβ * (yβ - yβ) * (xβ - xβ) - (W.aβ + xβ + xβ) * (xβ - xβ) ^ 2) / (xβ - xβ) ^ 2 - WeierstrassCurve.Affine.baseChange_addX π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} {S : Type s} {A : Type u} {B : Type v} [CommRing R] [CommRing S] [CommRing A] [CommRing B] {W' : WeierstrassCurve.Affine R} [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A ββ[S] B) (xβ xβ β : A) : (W'.baseChange B).addX (f xβ) (f xβ) (f β) = f ((W'.baseChange A).addX xβ xβ β) - WeierstrassCurve.Affine.baseChange_negPolynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} {S : Type s} {A : Type u} {B : Type v} [CommRing R] [CommRing S] [CommRing A] [CommRing B] {W' : WeierstrassCurve.Affine R} [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A ββ[S] B) : (W'.baseChange B).negPolynomial = Polynomial.map (Polynomial.mapRingHom βf) (W'.baseChange A).negPolynomial - WeierstrassCurve.Affine.baseChange_addY π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} {S : Type s} {A : Type u} {B : Type v} [CommRing R] [CommRing S] [CommRing A] [CommRing B] {W' : WeierstrassCurve.Affine R} [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A ββ[S] B) (xβ yβ xβ β : A) : (W'.baseChange B).addY (f xβ) (f xβ) (f yβ) (f β) = f ((W'.baseChange A).addY xβ xβ yβ β) - WeierstrassCurve.Affine.baseChange_negAddY π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} {S : Type s} {A : Type u} {B : Type v} [CommRing R] [CommRing S] [CommRing A] [CommRing B] {W' : WeierstrassCurve.Affine R} [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A ββ[S] B) (xβ yβ xβ β : A) : (W'.baseChange B).negAddY (f xβ) (f xβ) (f yβ) (f β) = f ((W'.baseChange A).negAddY xβ xβ yβ β) - WeierstrassCurve.Affine.slope_of_Y_ne' π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ yβ yβ : F} (hy : Β¬yβ = -yβ - W.aβ * xβ - W.aβ) : W.slope xβ xβ yβ yβ = (3 * xβ ^ 2 + 2 * W.aβ * xβ + W.aβ - W.aβ * yβ) / (yβ - (-yβ - W.aβ * xβ - W.aβ)) - WeierstrassCurve.Affine.baseChange_addPolynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} {S : Type s} {A : Type u} {B : Type v} [CommRing R] [CommRing S] [CommRing A] [CommRing B] {W' : WeierstrassCurve.Affine R} [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Algebra R B] [Algebra S B] [IsScalarTower R S B] (f : A ββ[S] B) (x y β : A) : (W'.baseChange B).addPolynomial (f x) (f y) (f β) = Polynomial.map (βf) ((W'.baseChange A).addPolynomial x y β) - WeierstrassCurve.Affine.baseChange_slope π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} {S : Type s} {F : Type u} {K : Type v} [CommRing R] [CommRing S] [Field F] [Field K] {W' : WeierstrassCurve.Affine R} [Algebra R S] [DecidableEq F] [DecidableEq K] [Algebra R F] [Algebra S F] [IsScalarTower R S F] [Algebra R K] [Algebra S K] [IsScalarTower R S K] (f : F ββ[S] K) (xβ xβ yβ yβ : F) : (W'.baseChange K).slope (f xβ) (f xβ) (f yβ) (f yβ) = f ((W'.baseChange F).slope xβ xβ yβ yβ) - WeierstrassCurve.Affine.den_duplication_ne_zero_or_num_duplication_ne_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} {x y : F} (h : W.Nonsingular x y) : 4 * x ^ 3 + WeierstrassCurve.bβ W * x ^ 2 + 2 * WeierstrassCurve.bβ W * x + WeierstrassCurve.bβ W β 0 β¨ x ^ 4 - WeierstrassCurve.bβ W * x ^ 2 - 2 * WeierstrassCurve.bβ W * x - WeierstrassCurve.bβ W β 0 - WeierstrassCurve.Affine.addX_self_of_Y_ne π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {x y : F} (h : W.Equation x y) (hn : y β W.negY x y) : W.addX x x (W.slope x x y y) = (x ^ 4 - WeierstrassCurve.bβ W * x ^ 2 - 2 * WeierstrassCurve.bβ W * x - WeierstrassCurve.bβ W) / (4 * x ^ 3 + WeierstrassCurve.bβ W * x ^ 2 + 2 * WeierstrassCurve.bβ W * x + WeierstrassCurve.bβ W) - WeierstrassCurve.Affine.addPolynomial_slope π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} (hβ : W.Equation xβ yβ) (hβ : W.Equation xβ yβ) (hxy : Β¬(xβ = xβ β§ yβ = W.negY xβ yβ)) : W.addPolynomial xβ yβ (W.slope xβ xβ yβ yβ) = -((Polynomial.X - Polynomial.C xβ) * (Polynomial.X - Polynomial.C xβ) * (Polynomial.X - Polynomial.C (W.addX xβ xβ (W.slope xβ xβ yβ yβ)))) - WeierstrassCurve.Affine.addPolynomial_eq π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} (x y β : R) : W'.addPolynomial x y β = -{ a := 1, b := -β ^ 2 - W'.aβ * β + W'.aβ, c := 2 * x * β ^ 2 + (W'.aβ * x - 2 * y - W'.aβ) * β + (-W'.aβ * y + W'.aβ), d := -x ^ 2 * β ^ 2 + (2 * x * y + W'.aβ * x) * β - (y ^ 2 + W'.aβ * y - W'.aβ) }.toPoly - WeierstrassCurve.Affine.C_addPolynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} (x y β : R) : Polynomial.C (W'.addPolynomial x y β) = (Polynomial.X - Polynomial.C (WeierstrassCurve.Affine.linePolynomial x y β)) * (W'.negPolynomial - Polynomial.C (WeierstrassCurve.Affine.linePolynomial x y β)) + W'.polynomial - WeierstrassCurve.Affine.derivative_addPolynomial_slope π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} (hβ : W.Equation xβ yβ) (hβ : W.Equation xβ yβ) (hxy : Β¬(xβ = xβ β§ yβ = W.negY xβ yβ)) : Polynomial.derivative (W.addPolynomial xβ yβ (W.slope xβ xβ yβ yβ)) = -((Polynomial.X - Polynomial.C xβ) * (Polynomial.X - Polynomial.C xβ) + (Polynomial.X - Polynomial.C xβ) * (Polynomial.X - Polynomial.C (W.addX xβ xβ (W.slope xβ xβ yβ yβ))) + (Polynomial.X - Polynomial.C xβ) * (Polynomial.X - Polynomial.C (W.addX xβ xβ (W.slope xβ xβ yβ yβ)))) - WeierstrassCurve.Affine.C_addPolynomial_slope π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Formula
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} (hβ : W.Equation xβ yβ) (hβ : W.Equation xβ yβ) (hxy : Β¬(xβ = xβ β§ yβ = W.negY xβ yβ)) : Polynomial.C (W.addPolynomial xβ yβ (W.slope xβ xβ yβ yβ)) = -(Polynomial.C (Polynomial.X - Polynomial.C xβ) * Polynomial.C (Polynomial.X - Polynomial.C xβ) * Polynomial.C (Polynomial.X - Polynomial.C (W.addX xβ xβ (W.slope xβ xβ yβ yβ)))) - WeierstrassCurve.Affine.CoordinateRing π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) : Type r - WeierstrassCurve.Affine.FunctionField π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) : Type r - WeierstrassCurve.Affine.Point π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) : Type r - WeierstrassCurve.Affine.Point.zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : W'.Point - WeierstrassCurve.Affine.CoordinateRing.XClass π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) (x : R) : W'.CoordinateRing - WeierstrassCurve.Affine.Point.instInhabited π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : Inhabited W'.Point - WeierstrassCurve.Affine.Point.instInvolutiveNeg π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : InvolutiveNeg W'.Point - WeierstrassCurve.Affine.Point.instNeg π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : Neg W'.Point - WeierstrassCurve.Affine.Point.instZero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : Zero W'.Point - WeierstrassCurve.Affine.instDecidableEqPoint π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{Rβ : Type u_1} {instβ : CommRing Rβ} {W'β : WeierstrassCurve.Affine Rβ} [DecidableEq Rβ] : DecidableEq W'β.Point - WeierstrassCurve.Affine.CoordinateRing.instNontrivial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [Nontrivial R] : Nontrivial W'.CoordinateRing - WeierstrassCurve.Affine.CoordinateRing.instSubsingleton π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [Subsingleton R] : Subsingleton W'.CoordinateRing - WeierstrassCurve.Affine.Point.neg π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : W'.Point β W'.Point - WeierstrassCurve.Affine.Point.instAdd π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] : Add W.Point - WeierstrassCurve.Affine.Point.instAddCommGroup π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] : AddCommGroup W.Point - WeierstrassCurve.Affine.Point.instAddCommSemigroup π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] : AddCommSemigroup W.Point - WeierstrassCurve.Affine.Point.instAddZeroClass π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] : AddZeroClass W.Point - WeierstrassCurve.Affine.CoordinateRing.YClass π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) (y : Polynomial R) : W'.CoordinateRing - WeierstrassCurve.Affine.Point.xRep π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : W'.Point β Fin 2 β R - WeierstrassCurve.Affine.Point.some π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} (x y : R) (h : W'.Nonsingular x y) : W'.Point - WeierstrassCurve.Affine.Point.mk π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [Nontrivial R] [WeierstrassCurve.IsElliptic W'] {x y : R} (h : W'.Equation x y) : W'.Point - WeierstrassCurve.Affine.instDecidableEqPoint.decEq π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{Rβ : Type u_1} {instβ : CommRing Rβ} {W'β : WeierstrassCurve.Affine Rβ} [DecidableEq Rβ] (xβ xβΒΉ : W'β.Point) : Decidable (xβ = xβΒΉ) - WeierstrassCurve.Affine.Point.add π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] : W.Point β W.Point β W.Point - WeierstrassCurve.Affine.Point.neg_def π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} (P : W'.Point) : -P = P.neg - WeierstrassCurve.Affine.Point.zero_def π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : 0 = WeierstrassCurve.Affine.Point.zero - WeierstrassCurve.Affine.nonsingularPointEquiv π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) : W'.Point β WithZero { xy // W'.Nonsingular xy.1 xy.2 } - WeierstrassCurve.Affine.pointEquiv π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) [Nontrivial R] [WeierstrassCurve.IsElliptic W'] : W'.Point β WithZero { xy // W'.Equation xy.1 xy.2 } - WeierstrassCurve.Affine.CoordinateRing.XIdeal π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) (x : R) : Ideal W'.CoordinateRing - WeierstrassCurve.Affine.Point.xRep_neg π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} (P : W'.Point) : (-P).xRep = P.xRep - WeierstrassCurve.Affine.CoordinateRing.instAlgebra π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : Algebra R W'.CoordinateRing - WeierstrassCurve.Affine.Point.some_ne_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} {x y : R} (h : W'.Nonsingular x y) : WeierstrassCurve.Affine.Point.some x y h β 0 - WeierstrassCurve.Affine.CoordinateRing.YIdeal π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) (y : Polynomial R) : Ideal W'.CoordinateRing - WeierstrassCurve.Affine.CoordinateRing.instIsDomain π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [IsDomain R] : IsDomain W'.CoordinateRing - WeierstrassCurve.Affine.CoordinateRing.XYIdeal π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) (x : R) (y : Polynomial R) : Ideal W'.CoordinateRing - WeierstrassCurve.Affine.CoordinateRing.instAlgebraPolynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : Algebra (Polynomial R) W'.CoordinateRing - WeierstrassCurve.Affine.Point.neg_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : -0 = 0 - WeierstrassCurve.Affine.finite_preimage_xRep0 π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} (x : F) : {P | P.xRep 0 = x}.Finite - WeierstrassCurve.Affine.CoordinateRing.XClass_ne_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [Nontrivial R] (x : R) : WeierstrassCurve.Affine.CoordinateRing.XClass W' x β 0 - WeierstrassCurve.Affine.Point.xRep_some π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} {x y : R} (h : W'.Nonsingular x y) : (WeierstrassCurve.Affine.Point.some x y h).xRep = ![x, 1] - WeierstrassCurve.Affine.Point.add_def π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] (P Q : W.Point) : P + Q = P.add Q - WeierstrassCurve.Affine.CoordinateRing.YClass_ne_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [Nontrivial R] (y : Polynomial R) : WeierstrassCurve.Affine.CoordinateRing.YClass W' y β 0 - WeierstrassCurve.Affine.Point.neg_some π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} {x y : R} (h : W'.Nonsingular x y) : -WeierstrassCurve.Affine.Point.some x y h = WeierstrassCurve.Affine.Point.some x (W'.negY x y) β― - WeierstrassCurve.Affine.Point.xRep_ne_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [Nontrivial R] (P : W'.Point) : P.xRep β 0 - WeierstrassCurve.Affine.Point.eq_or_eq_neg_of_xRep_eq_xRep π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} {P Q : W.Point} (h : P.xRep = Q.xRep) : P = Q β¨ P = -Q - WeierstrassCurve.Affine.Point.xRep_eq_xRep_iff π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} {P Q : W.Point} : P.xRep = Q.xRep β P = Q β¨ P = -Q - WeierstrassCurve.Affine.nonsingularPointEquivSubtype π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} {p : W'.Point β Prop} (p0 : p WeierstrassCurve.Affine.Point.zero) : { P // p P } β WithZero { xy // β (h : W'.Nonsingular xy.1 xy.2), p (WeierstrassCurve.Affine.Point.some xy.1 xy.2 h) } - WeierstrassCurve.Affine.finite_preimage_xRep π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} (x : F) : {P | P.xRep = ![x, 1]}.Finite - WeierstrassCurve.Affine.Point.xRep_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : WeierstrassCurve.Affine.Point.xRep 0 = ![1, 0] - WeierstrassCurve.Affine.CoordinateRing.instFaithfulSMul π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : FaithfulSMul R W'.CoordinateRing - WeierstrassCurve.Affine.pointEquivSubtype π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [Nontrivial R] [WeierstrassCurve.IsElliptic W'] {p : W'.Point β Prop} (p0 : p WeierstrassCurve.Affine.Point.zero) : { P // p P } β WithZero { xy // β (h : W'.Equation xy.1 xy.2), p (WeierstrassCurve.Affine.Point.mk h) } - WeierstrassCurve.Affine.CoordinateRing.instFree π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : Module.Free R W'.CoordinateRing - WeierstrassCurve.Affine.CoordinateRing.mk π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) : Polynomial (Polynomial R) β+* W'.CoordinateRing - WeierstrassCurve.Affine.Point.X_eq_iff π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} {xβ yβ xβ yβ : F} {hβ : W.Nonsingular xβ yβ} {hβ : W.Nonsingular xβ yβ} : xβ = xβ β WeierstrassCurve.Affine.Point.some xβ yβ hβ = WeierstrassCurve.Affine.Point.some xβ yβ hβ β¨ WeierstrassCurve.Affine.Point.some xβ yβ hβ = -WeierstrassCurve.Affine.Point.some xβ yβ hβ - WeierstrassCurve.Affine.CoordinateRing.instFreePolynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : Module.Free (Polynomial R) W'.CoordinateRing - WeierstrassCurve.Affine.Point.add_self_of_Y_eq π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ yβ : F} {hβ : W.Nonsingular xβ yβ} (hy : yβ = W.negY xβ yβ) : WeierstrassCurve.Affine.Point.some xβ yβ hβ + WeierstrassCurve.Affine.Point.some xβ yβ hβ = 0 - WeierstrassCurve.Affine.CoordinateRing.basis π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] (W' : WeierstrassCurve.Affine R) : Module.Basis (Fin 2) (Polynomial R) W'.CoordinateRing - WeierstrassCurve.Affine.Point.add_of_Y_eq π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} {hβ : W.Nonsingular xβ yβ} {hβ : W.Nonsingular xβ yβ} (hx : xβ = xβ) (hy : yβ = W.negY xβ yβ) : WeierstrassCurve.Affine.Point.some xβ yβ hβ + WeierstrassCurve.Affine.Point.some xβ yβ hβ = 0 - WeierstrassCurve.Affine.Point.isRoot_twoTorsionPolynomial_of_add_self π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {x y : F} (h : W.Nonsingular x y) (hP : WeierstrassCurve.Affine.Point.some x y h + WeierstrassCurve.Affine.Point.some x y h = 0) : (WeierstrassCurve.twoTorsionPolynomial W).toPoly.IsRoot x - WeierstrassCurve.Affine.CoordinateRing.map π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} {S : Type s} [CommRing R] [CommRing S] (W' : WeierstrassCurve.Affine R) (f : R β+* S) : W'.CoordinateRing β+* (W'.map f).CoordinateRing - WeierstrassCurve.Affine.CoordinateRing.instFaithfulSMulPolynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : FaithfulSMul (Polynomial R) W'.CoordinateRing - WeierstrassCurve.Affine.CoordinateRing.XYIdeal_eqβ π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} (x y β : R) : WeierstrassCurve.Affine.CoordinateRing.XYIdeal W' x (Polynomial.C y) = WeierstrassCurve.Affine.CoordinateRing.XYIdeal W' x (WeierstrassCurve.Affine.linePolynomial x y β) - WeierstrassCurve.Affine.Point.xRep_add_self_of_Y_eq π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {x y : F} (h : W.Nonsingular x y) (hn : y = W.negY x y) : (WeierstrassCurve.Affine.Point.some x y h + WeierstrassCurve.Affine.Point.some x y h).xRep = ![1, 0] - WeierstrassCurve.Affine.Point.add_some π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} (hxy : Β¬(xβ = xβ β§ yβ = W.negY xβ yβ)) {hβ : W.Nonsingular xβ yβ} {hβ : W.Nonsingular xβ yβ} : WeierstrassCurve.Affine.Point.some xβ yβ hβ + WeierstrassCurve.Affine.Point.some xβ yβ hβ = WeierstrassCurve.Affine.Point.some (W.addX xβ xβ (W.slope xβ xβ yβ yβ)) (W.addY xβ xβ yβ (W.slope xβ xβ yβ yβ)) β― - WeierstrassCurve.Affine.Point.add_self_of_Y_ne π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ yβ : F} {hβ : W.Nonsingular xβ yβ} (hy : yβ β W.negY xβ yβ) : WeierstrassCurve.Affine.Point.some xβ yβ hβ + WeierstrassCurve.Affine.Point.some xβ yβ hβ = WeierstrassCurve.Affine.Point.some (W.addX xβ xβ (W.slope xβ xβ yβ yβ)) (W.addY xβ xβ yβ (W.slope xβ xβ yβ yβ)) β― - WeierstrassCurve.Affine.Point.add_of_X_ne π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} {hβ : W.Nonsingular xβ yβ} {hβ : W.Nonsingular xβ yβ} (hx : xβ β xβ) : WeierstrassCurve.Affine.Point.some xβ yβ hβ + WeierstrassCurve.Affine.Point.some xβ yβ hβ = WeierstrassCurve.Affine.Point.some (W.addX xβ xβ (W.slope xβ xβ yβ yβ)) (W.addY xβ xβ yβ (W.slope xβ xβ yβ yβ)) β― - WeierstrassCurve.Affine.Point.add_of_Y_ne π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} {hβ : W.Nonsingular xβ yβ} {hβ : W.Nonsingular xβ yβ} (hy : yβ β W.negY xβ yβ) : WeierstrassCurve.Affine.Point.some xβ yβ hβ + WeierstrassCurve.Affine.Point.some xβ yβ hβ = WeierstrassCurve.Affine.Point.some (W.addX xβ xβ (W.slope xβ xβ yβ yβ)) (W.addY xβ xβ yβ (W.slope xβ xβ yβ yβ)) β― - WeierstrassCurve.Affine.nonsingularPointEquiv_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : W'.nonsingularPointEquiv WeierstrassCurve.Affine.Point.zero = none - WeierstrassCurve.Affine.Point.add_self_of_Y_ne' π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ yβ : F} {hβ : W.Nonsingular xβ yβ} (hy : yβ β W.negY xβ yβ) : WeierstrassCurve.Affine.Point.some xβ yβ hβ + WeierstrassCurve.Affine.Point.some xβ yβ hβ = -WeierstrassCurve.Affine.Point.some (W.addX xβ xβ (W.slope xβ xβ yβ yβ)) (W.negAddY xβ xβ yβ (W.slope xβ xβ yβ yβ)) β― - WeierstrassCurve.Affine.Point.add_of_X_ne' π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} {hβ : W.Nonsingular xβ yβ} {hβ : W.Nonsingular xβ yβ} (hx : xβ β xβ) : WeierstrassCurve.Affine.Point.some xβ yβ hβ + WeierstrassCurve.Affine.Point.some xβ yβ hβ = -WeierstrassCurve.Affine.Point.some (W.addX xβ xβ (W.slope xβ xβ yβ yβ)) (W.negAddY xβ xβ yβ (W.slope xβ xβ yβ yβ)) β― - WeierstrassCurve.Affine.Point.baseChange π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} (F : Type u) (K : Type v) [CommRing R] [Field F] [Field K] {W' : WeierstrassCurve.Affine R} [DecidableEq F] [DecidableEq K] [Algebra R F] [Algebra R K] [Algebra F K] [IsScalarTower R F K] : (W'.baseChange F).Point β+ (W'.baseChange K).Point - WeierstrassCurve.Affine.pointEquiv_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [Nontrivial R] [WeierstrassCurve.IsElliptic W'] : W'.pointEquiv WeierstrassCurve.Affine.Point.zero = none - WeierstrassCurve.Affine.Point.add_of_Y_ne' π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} {hβ : W.Nonsingular xβ yβ} {hβ : W.Nonsingular xβ yβ} (hy : yβ β W.negY xβ yβ) : WeierstrassCurve.Affine.Point.some xβ yβ hβ + WeierstrassCurve.Affine.Point.some xβ yβ hβ = -WeierstrassCurve.Affine.Point.some (W.addX xβ xβ (W.slope xβ xβ yβ yβ)) (W.negAddY xβ xβ yβ (W.slope xβ xβ yβ yβ)) β― - WeierstrassCurve.Affine.CoordinateRing.quotientXYIdealEquiv π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} {x : R} {y : Polynomial R} (h : Polynomial.eval x (Polynomial.eval y W'.polynomial) = 0) : (W'.CoordinateRing β§Έ WeierstrassCurve.Affine.CoordinateRing.XYIdeal W' x y) ββ[R] R - WeierstrassCurve.Affine.Point.isRoot_twoTorsionPolynomial_iff π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] (h2 : NeZero 2) (hΞ : WeierstrassCurve.Ξ W β 0) (x : F) : (WeierstrassCurve.twoTorsionPolynomial W).toPoly.IsRoot x β β y, β (h : W.Nonsingular x y), WeierstrassCurve.Affine.Point.some x y h + WeierstrassCurve.Affine.Point.some x y h = 0 - WeierstrassCurve.Affine.nonsingularPointEquiv_symm_none π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : W'.nonsingularPointEquiv.symm none = WeierstrassCurve.Affine.Point.zero - WeierstrassCurve.Affine.pointEquiv_symm_none π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [Nontrivial R] [WeierstrassCurve.IsElliptic W'] : W'.pointEquiv.symm none = WeierstrassCurve.Affine.Point.zero - WeierstrassCurve.Affine.CoordinateRing.XYIdeal_eqβ π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xβ xβ yβ yβ : F} (hβ : W.Equation xβ yβ) (hβ : W.Equation xβ yβ) (hxy : Β¬(xβ = xβ β§ yβ = W.negY xβ yβ)) : 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.nonsingularPointEquiv_some π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} {x y : R} (h : W'.Nonsingular x y) : W'.nonsingularPointEquiv (WeierstrassCurve.Affine.Point.some x y h) = some β¨(x, y), hβ© - WeierstrassCurve.Affine.pointEquiv_some π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [Nontrivial R] [WeierstrassCurve.IsElliptic W'] {x y : R} (h : W'.Equation x y) : W'.pointEquiv (WeierstrassCurve.Affine.Point.mk h) = some β¨(x, y), hβ© - WeierstrassCurve.Affine.CoordinateRing.instIsScalarTowerPolynomial π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : IsScalarTower R (Polynomial R) W'.CoordinateRing - WeierstrassCurve.Affine.nonsingularPointEquiv_symm_some π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} {x y : R} (h : W'.Nonsingular x y) : W'.nonsingularPointEquiv.symm (some β¨(x, y), hβ©) = WeierstrassCurve.Affine.Point.some x y h - WeierstrassCurve.Affine.pointEquiv_symm_some π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [Nontrivial R] [WeierstrassCurve.IsElliptic W'] {x y : R} (h : W'.Equation x y) : W'.pointEquiv.symm (some β¨(x, y), hβ©) = WeierstrassCurve.Affine.Point.mk h - WeierstrassCurve.Affine.CoordinateRing.natDegree_norm_ne_one π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [IsDomain R] (x : W'.CoordinateRing) : ((Algebra.norm (Polynomial R)) x).natDegree β 1 - WeierstrassCurve.Affine.Point.map π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} {S : Type s} {F : Type u} {K : Type v} [CommRing R] [CommRing S] [Field F] [Field K] {W' : WeierstrassCurve.Affine R} [DecidableEq F] [DecidableEq K] [Algebra R S] [Algebra R F] [Algebra S F] [IsScalarTower R S F] [Algebra R K] [Algebra S K] [IsScalarTower R S K] (f : F ββ[S] K) : (W'.baseChange F).Point β+ (W'.baseChange K).Point - WeierstrassCurve.Affine.CoordinateRing.degree_norm_ne_one π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [IsDomain R] (x : W'.CoordinateRing) : ((Algebra.norm (Polynomial R)) x).degree β 1 - WeierstrassCurve.Affine.CoordinateRing.basis_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : (WeierstrassCurve.Affine.CoordinateRing.basis W') 0 = 1 - WeierstrassCurve.Affine.CoordinateRing.map_injective π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} {S : Type s} [CommRing R] [CommRing S] {W' : WeierstrassCurve.Affine R} {f : R β+* S} (hf : Function.Injective βf) : Function.Injective β(WeierstrassCurve.Affine.CoordinateRing.map W' f) - WeierstrassCurve.Affine.Point.toClass π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] : W.Point β+ Additive (ClassGroup W.CoordinateRing) - WeierstrassCurve.Affine.Point.map_id π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} {F : Type u} [CommRing R] [Field F] {W' : WeierstrassCurve.Affine R} [DecidableEq F] [Algebra R F] (P : (W'.baseChange F).Point) : (WeierstrassCurve.Affine.Point.map (Algebra.ofId F F)) P = P - WeierstrassCurve.Affine.nonsingularPointEquivSubtype_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} {p : W'.Point β Prop} (p0 : p WeierstrassCurve.Affine.Point.zero) : (WeierstrassCurve.Affine.nonsingularPointEquivSubtype p0) β¨WeierstrassCurve.Affine.Point.zero, p0β© = none - WeierstrassCurve.Affine.Point.xRep_add_of_X_ne π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{F : Type u} [Field F] {W : WeierstrassCurve.Affine F} [DecidableEq F] {xP yP xQ yQ : F} (hP : W.Nonsingular xP yP) (hQ : W.Nonsingular xQ yQ) (hn : xP β xQ) : (WeierstrassCurve.Affine.Point.some xP yP hP + WeierstrassCurve.Affine.Point.some xQ yQ hQ).xRep = ![((yP - yQ) ^ 2 + W.aβ * (yP - yQ) * (xP - xQ) - (W.aβ + xP + xQ) * (xP - xQ) ^ 2) / (xP - xQ) ^ 2, 1] - WeierstrassCurve.Affine.Point.map_injective π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} {S : Type s} {F : Type u} {K : Type v} [CommRing R] [CommRing S] [Field F] [Field K] {W' : WeierstrassCurve.Affine R} [DecidableEq F] [DecidableEq K] [Algebra R S] [Algebra R F] [Algebra S F] [IsScalarTower R S F] [Algebra R K] [Algebra S K] [IsScalarTower R S K] (f : F ββ[S] K) : Function.Injective β(WeierstrassCurve.Affine.Point.map f) - WeierstrassCurve.Affine.pointEquivSubtype_zero π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [Nontrivial R] [WeierstrassCurve.IsElliptic W'] {p : W'.Point β Prop} (p0 : p WeierstrassCurve.Affine.Point.zero) : (WeierstrassCurve.Affine.pointEquivSubtype p0) β¨WeierstrassCurve.Affine.Point.zero, p0β© = none - WeierstrassCurve.Affine.CoordinateRing.basis_one π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : (WeierstrassCurve.Affine.CoordinateRing.basis W') 1 = (WeierstrassCurve.Affine.CoordinateRing.mk W') Polynomial.X - WeierstrassCurve.Affine.nonsingularPointEquivSubtype_symm_none π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} {p : W'.Point β Prop} (p0 : p WeierstrassCurve.Affine.Point.zero) : (WeierstrassCurve.Affine.nonsingularPointEquivSubtype p0).symm none = β¨WeierstrassCurve.Affine.Point.zero, p0β© - WeierstrassCurve.Affine.CoordinateRing.basis_apply π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} (n : Fin 2) : (WeierstrassCurve.Affine.CoordinateRing.basis W') n = (AdjoinRoot.powerBasis' β―).gen ^ βn - WeierstrassCurve.Affine.pointEquivSubtype_symm_none π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} [Nontrivial R] [WeierstrassCurve.IsElliptic W'] {p : W'.Point β Prop} (p0 : p WeierstrassCurve.Affine.Point.zero) : (WeierstrassCurve.Affine.pointEquivSubtype p0).symm none = β¨WeierstrassCurve.Affine.Point.zero, p0β© - WeierstrassCurve.Affine.CoordinateRing.coe_basis π Mathlib.AlgebraicGeometry.EllipticCurve.Affine.Point
{R : Type r} [CommRing R] {W' : WeierstrassCurve.Affine R} : β(WeierstrassCurve.Affine.CoordinateRing.basis W') = ![1, (WeierstrassCurve.Affine.CoordinateRing.mk W') Polynomial.X]
About
Loogle searches Lean and Mathlib definitions and theorems.
You can use Loogle from within the Lean4 VSCode language extension
using the Loogle command from the command palette. You can also try the
#loogle command from LeanSearchClient,
the CLI version, the Loogle
VS Code extension, the lean.nvim
integration or the Zulip bot.
Usage
Loogle finds definitions and lemmas in various ways:
By constant:
πReal.sin
finds all lemmas whose statement somehow mentions the sine function.By lemma name substring:
π"differ"
finds all lemmas that have"differ"somewhere in their lemma name.By subexpression:
π_ * (_ ^ _)
finds all lemmas whose statements somewhere include a product where the second argument is raised to some power.The pattern can also be non-linear, as in
πReal.sqrt ?a * Real.sqrt ?aIf the pattern has parameters, they are matched in any order. Both of these will find
List.map:
π(?a -> ?b) -> List ?a -> List ?b
πList ?a -> (?a -> ?b) -> List ?bBy main conclusion:
π|- tsum _ = _ * tsum _
finds all lemmas where the conclusion (the subexpression to the right of allβandβ) has the given shape.As before, if the pattern has parameters, they are matched against the hypotheses of the lemma in any order; for example,
π|- _ < _ β tsum _ < tsum _
will findtsum_lt_tsumeven though the hypothesisf i < g iis not the last.You can filter for definitions vs theorems: Using
β’ (_ : Type _)finds all definitions which provide data whileβ’ (_ : Prop)finds all theorems (and definitions of proofs).
If you pass more than one such search filter, separated by commas
Loogle will return lemmas which match all of them. The
search
π Real.sin, "two", tsum, _ * _, _ ^ _, |- _ < _ β _
would find all lemmas which mention the constants Real.sin
and tsum, have "two" as a substring of the
lemma name, include a product and a power somewhere in the type,
and have a hypothesis of the form _ < _ (if
there were any such lemmas). Metavariables (?a) are
assigned independently in each filter.
The #lucky button will directly send you to the
documentation of the first hit.
Source code
You can find the source code for this service at https://github.com/nomeata/loogle. The https://loogle.lean-lang.org/ service is provided by the Lean FRO. Please review the Lean FRO Terms of Use and Privacy Policy.
This is Loogle revision 9f11169 serving mathlib revision ce5dd8c