- exists_algVariety_projective : ∃ (_ : IsAlgClosed k) (algV : AlgebraicGeometry.CompletenessValuationCriterion.AlgVariety k) (hcarrier : algV.carrier = V), hcarrier ▸ algV.topInst = inst✝ ∧ Nonempty (AlgebraicGeometry.CompletenessValuationCriterion.IsProjectiveVariety algV)
Instances
def
AlgebraicGeometry.CompletenessValuationCriterion.IsMorphismOfVarieties
{k : Type u}
[Field k]
(X Y : AlgVariety k)
(f : X.carrier → Y.carrier)
:
Instances For
class
IsAlgebraicGroup
(k : outParam (Type u))
[Field k]
(V : Type u)
[TopologicalSpace V]
[Group V]
:
- toIsTopologicalGroup : IsTopologicalGroup V
- mul_isMorphism : ∃ (algV : AlgebraicGeometry.CompletenessValuationCriterion.AlgVariety k) (algVV : AlgebraicGeometry.CompletenessValuationCriterion.AlgVariety k) (hV : algV.carrier = V) (hVV : algVV.carrier = (V × V)) (f : algVV.carrier → algV.carrier), (∀ (p : algVV.carrier), cast hV (f p) = (cast hVV p).1 * (cast hVV p).2) ∧ AlgebraicGeometry.CompletenessValuationCriterion.IsMorphismOfVarieties algVV algV f
Instances
theorem
IsProjectiveVariety.complete
(k : Type u)
[Field k]
(V : Type u)
[TopologicalSpace V]
[h : IsProjectiveVariety k V]
:
instance
IsProjectiveVariety.toIsCompleteVariety
{k : Type u}
[Field k]
{V : Type u}
[TopologicalSpace V]
[IsProjectiveVariety k V]
:
class
IsAbelianVariety
(k : outParam (Type u))
[Field k]
(A : Type u)
[TopologicalSpace A]
[Group A]
extends IsProjectiveVariety k A, IsAlgebraicGroup k A, ConnectedSpace A :
- exists_algVariety_projective : ∃ (_ : IsAlgClosed k) (algV : AlgebraicGeometry.CompletenessValuationCriterion.AlgVariety k) (hcarrier : algV.carrier = A), hcarrier ▸ algV.topInst = inst✝ ∧ Nonempty (AlgebraicGeometry.CompletenessValuationCriterion.IsProjectiveVariety algV)
- mul_isMorphism : ∃ (algV : AlgebraicGeometry.CompletenessValuationCriterion.AlgVariety k) (algVV : AlgebraicGeometry.CompletenessValuationCriterion.AlgVariety k) (hV : algV.carrier = A) (hVV : algVV.carrier = (A × A)) (f : algVV.carrier → algV.carrier), (∀ (p : algVV.carrier), cast hV (f p) = (cast hVV p).1 * (cast hVV p).2) ∧ AlgebraicGeometry.CompletenessValuationCriterion.IsMorphismOfVarieties algVV algV f
- inv_isMorphism : ∃ (algV : AlgebraicGeometry.CompletenessValuationCriterion.AlgVariety k) (hV : algV.carrier = A) (f : algV.carrier → algV.carrier), (∀ (v : algV.carrier), cast hV (f v) = (cast hV v)⁻¹) ∧ AlgebraicGeometry.CompletenessValuationCriterion.IsMorphismOfVarieties algV algV f
- toNonempty : Nonempty A
Instances
Instances For
@[reducible, inline]
Instances For
instance
WeierstrassCurve.shortWeierstrass_isShortNF
{R : Type u_1}
[CommRing R]
(A B : R)
:
(shortWeierstrass A B).IsShortNF
theorem
WeierstrassCurve.shortWeierstrass_isElliptic_iff
{F : Type u_2}
[Field F]
[NeZero 2]
(A B : F)
:
theorem
WeierstrassCurve.Affine.Point.divisorClassMap_injective
{F : Type u_1}
[Field F]
{W : Affine F}
[DecidableEq F]
:
theorem
WeierstrassCurve.Affine.Point.divisorClassMap_surjective
{F : Type u_2}
[Field F]
{W : Affine F}
[DecidableEq F]
:
theorem
WeierstrassCurve.Affine.Point.divisorClassMap_bijective
{F : Type u_1}
[Field F]
{W : Affine F}
[DecidableEq F]
:
noncomputable def
WeierstrassCurve.Affine.Point.divisorClassMapEquiv
{F : Type u_1}
[Field F]
{W : Affine F}
[DecidableEq F]
:
Instances For
theorem
WeierstrassCurve.Affine.Point.mazur_torsion
(W : WeierstrassCurve ℚ)
[W.IsElliptic]
:
(∃ n ∈ MazurCyclicOrders, Nonempty (↥(AddCommGroup.torsion W.toAffine.Point) ≃+ ZMod n)) ∨ ∃ m ∈ MazurProductOrders, Nonempty (↥(AddCommGroup.torsion W.toAffine.Point) ≃+ ZMod 2 × ZMod (2 * m))
def
WeierstrassCurve.Affine.Point.lineThirdIntersection
{F : Type u_1}
[Field F]
{W : Affine F}
[DecidableEq F]
:
Instances For
theorem
WeierstrassCurve.Affine.Point.geometric_group_law
{F : Type u_1}
[Field F]
{W : Affine F}
[DecidableEq F]
(P Q : W.Point)
:
@[reducible, inline]
Instances For
@[simp]
@[reducible, inline]
abbrev
WeierstrassCurve.Affine.Point.nTorsion
{F : Type u_1}
[Field F]
[DecidableEq F]
{W : Affine F}
(n : ℕ)
:
Instances For
Instances For
theorem
WeierstrassCurve.VariableChange.u_inv_ne_zero
{F : Type u_1}
[Field F]
(C : VariableChange F)
:
theorem
WeierstrassCurve.aut_s_eq_zero
{F : Type u_1}
[Field F]
{W : WeierstrassCurve F}
[W.IsShortNF]
{C : VariableChange F}
(hC : C • W = W)
(h2 : 2 ≠ 0)
:
theorem
WeierstrassCurve.aut_r_eq_zero
{F : Type u_1}
[Field F]
{W : WeierstrassCurve F}
[W.IsShortNF]
{C : VariableChange F}
(hC : C • W = W)
(h2 : 2 ≠ 0)
(h3 : 3 ≠ 0)
:
theorem
WeierstrassCurve.aut_t_eq_zero
{F : Type u_1}
[Field F]
{W : WeierstrassCurve F}
[W.IsShortNF]
{C : VariableChange F}
(hC : C • W = W)
(h2 : 2 ≠ 0)
(h3 : 3 ≠ 0)
:
theorem
WeierstrassCurve.a₄_ne_zero_or_a₆_ne_zero
{F : Type u_1}
[Field F]
{W : WeierstrassCurve F}
[W.IsShortNF]
[W.IsElliptic]
:
theorem
WeierstrassCurve.autGroup_u_pow_twelve
{F : Type u_1}
[Field F]
{W : WeierstrassCurve F}
[W.IsShortNF]
[W.IsElliptic]
{C : VariableChange F}
(hC : C ∈ autGroup F W)
(h2 : 2 ≠ 0)
(h3 : 3 ≠ 0)
:
instance
WeierstrassCurve.autGroup_finite
{F : Type u_1}
[Field F]
{W : WeierstrassCurve F}
[W.IsShortNF]
[W.IsElliptic]
(h2 : 2 ≠ 0)
(h3 : 3 ≠ 0)
:
noncomputable def
WeierstrassCurve.autGroupToFHom
{F : Type u_1}
[Field F]
{W : WeierstrassCurve F}
(_h2 : 2 ≠ 0)
(_h3 : 3 ≠ 0)
:
Instances For
theorem
WeierstrassCurve.autGroupToFHom_injective
{F : Type u_1}
[Field F]
{W : WeierstrassCurve F}
[W.IsShortNF]
(h2 : 2 ≠ 0)
(h3 : 3 ≠ 0)
:
Function.Injective ⇑(autGroupToFHom h2 h3)
theorem
WeierstrassCurve.autGroup_isCyclic
{F : Type u_1}
[Field F]
{W : WeierstrassCurve F}
[W.IsShortNF]
[W.IsElliptic]
(h2 : 2 ≠ 0)
(h3 : 3 ≠ 0)
:
theorem
WeierstrassCurve.neg_one_mem_autGroup
{F : Type u_1}
[Field F]
{W : WeierstrassCurve F}
[W.IsShortNF]
:
theorem
WeierstrassCurve.Affine.shortNF_slope_of_X_ne
{F : Type u_1}
[Field F]
{W' : WeierstrassCurve F}
[DecidableEq F]
{x₁ x₂ y₁ y₂ : F}
(hx : x₁ ≠ x₂)
:
theorem
WeierstrassCurve.Affine.Point.explicit_chord_formula
{F : Type u_1}
[Field F]
[DecidableEq F]
{W' : WeierstrassCurve F}
[W'.IsShortNF]
{x₁ x₂ y₁ y₂ : F}
(h₁ : W'.toAffine.Nonsingular x₁ y₁)
(h₂ : W'.toAffine.Nonsingular x₂ y₂)
(hx : x₁ ≠ x₂)
:
have ℓ := W'.toAffine.slope x₁ x₂ y₁ y₂;
have x₃ := W'.toAffine.addX x₁ x₂ ℓ;
∃ (h₃ : W'.toAffine.Nonsingular x₃ (W'.toAffine.addY x₁ x₂ y₁ ℓ)),
some x₁ y₁ h₁ + some x₂ y₂ h₂ = some x₃ (W'.toAffine.addY x₁ x₂ y₁ ℓ) h₃ ∧ ℓ = (y₁ - y₂) / (x₁ - x₂) ∧ x₃ = ℓ ^ 2 - x₁ - x₂ ∧ W'.toAffine.addY x₁ x₂ y₁ ℓ = ℓ * (x₁ - x₃) - y₁
def
ArithmeticGeometry.SmoothProjectiveCurve.genus
{k : Type u_1}
[Field k]
(C : SmoothProjectiveCurve k)
:
Instances For
def
ArithmeticGeometry.SmoothProjectiveCurve.HasRationalPoint
{k : Type u_1}
[Field k]
(C : SmoothProjectiveCurve k)
:
Instances For
theorem
genus_zero_of_isomorphic_P1
{k : Type u_1}
[Field k]
(C : ArithmeticGeometry.SmoothProjectiveCurve k)
(hiso : C.IsIsomorphicToP1)
:
theorem
exists_simple_pole_function_of_genus_zero
{k : Type u_1}
[Field k]
(C : ArithmeticGeometry.SmoothProjectiveCurve k)
(P : C.RatPoint)
(hg : C.genus = 0)
:
∃ (Q : C.RatPoint) (f : C.FunField), Q ≠ P ∧ f ≠ 0 ∧ C.principalDiv f = C.pointToDivisor Q + -C.pointToDivisor P
theorem
isomorphic_P1_of_genus_zero_and_rational_point
{k : Type u_1}
[Field k]
(C : ArithmeticGeometry.SmoothProjectiveCurve k)
(hP : C.HasRationalPoint)
(hg : C.genus = 0)
: