Documentation

Atlas.ArithmeticGeometry.code.Heights

noncomputable def AbsoluteHeight.absoluteHeight {K : Type u_1} [Field K] [NumberField K] {ι : Type u_2} [Finite ι] (P : Projectivization K (ιK)) :
Instances For
    theorem AbsoluteHeight.absoluteHeight_mk {K : Type u_1} [Field K] [NumberField K] {ι : Type u_2} [Finite ι] {x : ιK} (hx : x 0) :
    noncomputable def AbsoluteHeight.logHeight {K : Type u_1} [Field K] [NumberField K] {ι : Type u_2} [Finite ι] (P : Projectivization K (ιK)) :
    Instances For
      theorem AbsoluteHeight.logHeight_eq {K : Type u_1} [Field K] [NumberField K] {ι : Type u_2} [Finite ι] (P : Projectivization K (ιK)) :
      theorem weil_height_ge_one {K : Type u_1} [Field K] [NumberField K] {n : } (x : Fin (n + 1)K) :
      theorem height_morphism_upper_bound {K : Type u_1} [Field K] [NumberField K] {n m d : } {φ : Fin (m + 1)MvPolynomial (Fin (n + 1)) K} ( : ∀ (i : Fin (m + 1)), (φ i).IsHomogeneous d) :
      ∃ (c : ), ∀ (x : Fin (n + 1)K), (Height.logHeight fun (j : Fin (m + 1)) => (MvPolynomial.eval x) (φ j)) d * Height.logHeight x + c
      theorem height_automorphism_bound {K : Type u_1} [Field K] [NumberField K] {n : } {φ ψ : Fin (n + 1)MvPolynomial (Fin (n + 1)) K} ( : ∀ (i : Fin (n + 1)), (φ i).IsHomogeneous 1) ( : ∀ (i : Fin (n + 1)), (ψ i).IsHomogeneous 1) (hinv : ∀ (x : Fin (n + 1)K) (i : Fin (n + 1)), (MvPolynomial.eval fun (j : Fin (n + 1)) => (MvPolynomial.eval x) (φ j)) (ψ i) = x i) :
      ∃ (c : ), ∀ (x : Fin (n + 1)K), |(Height.logHeight fun (j : Fin (n + 1)) => (MvPolynomial.eval x) (φ j)) - Height.logHeight x| c
      Instances For
        theorem galoisEquivFinitePlace_apply {K : Type u_1} [Field K] [NumberField K] (σ : Gal(K/)) (v : NumberField.FinitePlace K) (y : K) :
        ((galoisEquivFinitePlace σ) v) y = v (σ.symm y)
        theorem prod_infinitePlace_galois_eq {K : Type u_1} [Field K] [NumberField K] {ι : Type u_2} (σ : Gal(K/)) (x : ιK) :
        v : NumberField.InfinitePlace K, (⨆ (i : ι), v (σ (x i))) ^ v.mult = v : NumberField.InfinitePlace K, (⨆ (i : ι), v (x i)) ^ v.mult
        theorem finprod_finitePlace_galois_eq {K : Type u_1} [Field K] [NumberField K] {ι : Type u_2} (σ : Gal(K/)) (x : ιK) :
        ∏ᶠ (v : NumberField.FinitePlace K), ⨆ (i : ι), v (σ (x i)) = ∏ᶠ (v : NumberField.FinitePlace K), ⨆ (i : ι), v (x i)
        theorem mulHeight_galois_invariant {K : Type u_1} [Field K] [NumberField K] {ι : Type u_2} (σ : Gal(K/)) (x : ιK) :
        theorem logHeight_galois_invariant {K : Type u_1} [Field K] [NumberField K] {ι : Type u_2} (σ : Gal(K/)) (x : ιK) :
        Instances For
          noncomputable def EllipticCurve.WeakMordellWeil.descentMapRaw (a b : ) (hdisc : a ^ 2 - 4 * b 0) :
          Instances For
            theorem EllipticCurve.WeakMordellWeil.descentMapRaw_add_nonInverse (a b : ) (hE' : (E'Curve a b).IsElliptic) (hdisc : a ^ 2 - 4 * b 0) (x₁ x₂ y₁ y₂ : ) (h₁ : (E'Curve a b).toAffine.Nonsingular x₁ y₁) (h₂ : (E'Curve a b).toAffine.Nonsingular x₂ y₂) (hxy : ¬(x₁ = x₂ y₁ = (E'Curve a b).toAffine.negY x₂ y₂)) :
            theorem EllipticCurve.WeakMordellWeil.descentMapRaw_add (a b : ) (hE' : (E'Curve a b).IsElliptic) (hdisc : a ^ 2 - 4 * b 0) (P Q : (E'Curve a b).toAffine.Point) :
            descentMapRaw a b hdisc (P + Q) = descentMapRaw a b hdisc P + descentMapRaw a b hdisc Q
            Instances For
              theorem EllipticCurve.WeakMordellWeil.int_sq_mul_squarefree (n : ) (hn : n 0) :
              ∃ (r : ) (s : ), n = r * s ^ 2 Squarefree r r 0 s 0
              theorem EllipticCurve.WeakMordellWeil.sq_class_of_sq_factor (n r s : ) (hn : n 0) (hr : r 0) (hs : s 0) (heq : n = r * s ^ 2) :
              theorem EllipticCurve.WeakMordellWeil.squarefree_part_dvd_target (A B : ) (hB : B 0) (u : ˣ) (Y : ) (hY : Y ^ 2 = u * (u ^ 2 + A * u + B)) (hN : A.den * B.num * B.den 0) (r s : ) (hr_sf : Squarefree r) (hr_ne : r 0) (hs_ne : s 0) (heq : (↑u).num * (↑u).den = r * s ^ 2) :
              r A.den * B.num * B.den
              theorem EllipticCurve.WeakMordellWeil.sq_class_curve_divides_B (A B : ) (hB : B 0) (u : ˣ) (Y : ) (hY : Y ^ 2 = u * (u ^ 2 + A * u + B)) (hN : A.den * B.num * B.den 0) :
              noncomputable def CanonicalHeight.canonicalHeightSeq {E : Type u_1} [AddCommGroup E] (h : E) (P : E) (n : ) :
              Instances For
                noncomputable def CanonicalHeight.canonicalHeight {E : Type u_1} [AddCommGroup E] (h : E) (P : E) :
                Instances For
                  theorem CanonicalHeight.canonicalHeightSeq_double {E : Type u_1} [AddCommGroup E] (h : E) (P : E) (n : ) :
                  structure IsWeilHeightOnCurve {K : Type u_1} [Field K] (W : WeierstrassCurve K) (h : W.toAffine.Point) :
                  Instances For
                    noncomputable def EllipticCurve.NeronTateHeight {K : Type u_1} [Field K] (W : WeierstrassCurve K) (h : W.toAffine.Point) (_hWeil : IsWeilHeightOnCurve W h) (P : W.toAffine.Point) :
                    Instances For
                      theorem EllipticCurve.neronTateHeight_parallelogram_law {K : Type u_1} [Field K] [NumberField K] (W : WeierstrassCurve K) [W.IsElliptic] [NumberField K] [W.IsElliptic] (h : W.toAffine.Point) (hWeil : IsWeilHeightOnCurve W h) (P Q : W.toAffine.Point) :
                      NeronTateHeight W h hWeil (P + Q) + NeronTateHeight W h hWeil (P - Q) = 2 * NeronTateHeight W h hWeil P + 2 * NeronTateHeight W h hWeil Q
                      noncomputable def TateTheorem.tateSeq {S : Type u_1} (φ : SS) (h : S) (r : ) (x : S) (n : ) :
                      Instances For
                        @[simp]
                        theorem TateTheorem.tateSeq_zero {S : Type u_1} (φ : SS) (h : S) (r : ) (x : S) :
                        tateSeq φ h r x 0 = h x
                        theorem TateTheorem.tateSeq_dist {S : Type u_1} (φ : SS) (h : S) (r : ) (hr : 1 < r) (C : ) (hbound : ∀ (x : S), |h (φ x) - r * h x| C) (x : S) (n : ) :
                        dist (tateSeq φ h r x n) (tateSeq φ h r x (n + 1)) C / r ^ (n + 1)
                        theorem TateTheorem.summable_tate_bound {r : } (hr : 1 < r) (C : ) :
                        Summable fun (n : ) => C / r ^ (n + 1)
                        theorem TateTheorem.tsum_tate_bound (r : ) (hr : 1 < r) (C : ) :
                        ∑' (n : ), C / r ^ (n + 1) = C / (r - 1)
                        theorem TateTheorem.tateSeq_cauchySeq {S : Type u_1} (φ : SS) (h : S) (r : ) (hr : 1 < r) (C : ) (hbound : ∀ (x : S), |h (φ x) - r * h x| C) (x : S) :
                        CauchySeq (tateSeq φ h r x)
                        theorem TateTheorem.tateSeq_tendsto {S : Type u_1} (φ : SS) (h : S) (r : ) (hr : 1 < r) (C : ) (hbound : ∀ (x : S), |h (φ x) - r * h x| C) (x : S) :
                        theorem TateTheorem.tateSeq_comp {S : Type u_1} (φ : SS) (h : S) (r : ) (hr : 1 < r) (x : S) (n : ) :
                        tateSeq φ h r (φ x) n = r * tateSeq φ h r x (n + 1)
                        theorem TateTheorem.tate_bound {S : Type u_1} (φ : SS) (h : S) (r : ) (hr : 1 < r) (C : ) (hbound : ∀ (x : S), |h (φ x) - r * h x| C) (x : S) :
                        |Filter.atTop.limUnder (tateSeq φ h r x) - h x| C / (r - 1)
                        theorem TateTheorem.tate_comp_eq {S : Type u_1} (φ : SS) (h : S) (r : ) (hr : 1 < r) (C : ) (hbound : ∀ (x : S), |h (φ x) - r * h x| C) (x : S) :
                        theorem TateTheorem.iterate_eq_of_comp {S : Type u_1} (φ : SS) (f : S) (r : ) (hf_comp : ∀ (x : S), f (φ x) = r * f x) (x : S) (n : ) :
                        f (φ^[n] x) = r ^ n * f x
                        theorem TateTheorem.tateSeq_const_of_comp {S : Type u_1} (φ : SS) (f : S) (r : ) (hr : 1 < r) (hf_comp : ∀ (x : S), f (φ x) = r * f x) (x : S) (n : ) :
                        tateSeq φ f r x n = f x
                        theorem TateTheorem.tendsto_div_pow_zero (r : ) (hr : 1 < r) (D : ) :
                        Filter.Tendsto (fun (n : ) => D / r ^ n) Filter.atTop (nhds 0)
                        theorem TateTheorem.tateSeq_diff_bound {S : Type u_1} (φ : SS) (f h : S) (r : ) (hr : 1 < r) (D : ) (hD : ∀ (x : S), |f x - h x| D) (x : S) (n : ) :
                        tateSeq φ f r x n - tateSeq φ h r x n D / r ^ n
                        theorem TateTheorem.tate_unique {S : Type u_1} (φ : SS) (h : S) (r : ) (hr : 1 < r) (C : ) (hbound : ∀ (x : S), |h (φ x) - r * h x| C) (f : S) (D : ) (hD : ∀ (x : S), |f x - h x| D) (hf_comp : ∀ (x : S), f (φ x) = r * f x) (x : S) :
                        theorem TateTheorem.tate_theorem {S : Type u_1} (φ : SS) (h : S) (r : ) (hr : 1 < r) (C : ) (hbound : ∀ (x : S), |h (φ x) - r * h x| C) :
                        (∀ (x : S), ∃ (L : ), Filter.Tendsto (tateSeq φ h r x) Filter.atTop (nhds L)) (∀ (x : S), |Filter.atTop.limUnder (tateSeq φ h r x) - h x| C / (r - 1)) (∀ (x : S), Filter.atTop.limUnder (tateSeq φ h r (φ x)) = r * Filter.atTop.limUnder (tateSeq φ h r x)) ∀ (f : S) (D : ), (∀ (x : S), |f x - h x| D)(∀ (x : S), f (φ x) = r * f x)∀ (x : S), f x = Filter.atTop.limUnder (tateSeq φ h r x)
                        theorem Northcott.mulHeight₁_le_mulHeight_of_one_eq {K : Type u_1} [Field K] [NumberField K] {n : } (x : Fin (n + 1)K) (_hx : x 0) (i₀ : Fin (n + 1)) (hi₀ : x i₀ = 1) (j : Fin (n + 1)) :
                        noncomputable def Northcott.mapCoords {K : Type u_1} {L : Type u_2} [CommRing K] [CommRing L] (σ : K →+* L) (n : ) :
                        (Fin (n + 1)K) →ₛₗ[σ] Fin (n + 1)L
                        Instances For
                          theorem Northcott.mapCoords_injective {K : Type u_1} {L : Type u_2} [CommRing K] [CommRing L] {σ : K →+* L} ( : Function.Injective σ) (n : ) :
                          theorem Northcott.northcott_theorem_25_18 (n d : ) (B : ) :
                          {P : Projectivization (Fin (n + 1)) | ∃ (K : Type) (x : Field K) (x_1 : NumberField K) (σ : K →+* ), Module.finrank K d ∃ (Q : Projectivization K (Fin (n + 1)K)), Q.mulHeight B P = Projectivization.map (mapCoords σ n) Q}.Finite
                          theorem addGroup_fg_of_height_descent {G : Type u_1} [AddCommGroup G] (ĥ : G) (hĥ_nonneg : ∀ (P : G), 0 ĥ P) (hĥ_double : ∀ (P : G), ĥ (2 P) = 4 * ĥ P) (hĥ_par : ∀ (P Q : G), ĥ (P + Q) + ĥ (P - Q) = 2 * ĥ P + 2 * ĥ Q) (hquot : Finite (G (zsmulAddGroupHom 2).range)) (hNorthcott : ∀ (B : ), {P : G | ĥ P B}.Finite) :
                          def IsProjectiveMorphism {K : Type u_1} [CommRing K] {n m : } (d : ) (φ : Fin (m + 1)MvPolynomial (Fin (n + 1)) K) :
                          Instances For
                            theorem projective_nullstellensatz_cofactors {K : Type u_1} [Field K] {n m d : } {φ : Fin (m + 1)MvPolynomial (Fin (n + 1)) K} ( : IsProjectiveMorphism d φ) :
                            ∃ (M : ) (q : Fin (n + 1) × Fin (m + 1)MvPolynomial (Fin (n + 1)) K), (∀ (a : Fin (n + 1) × Fin (m + 1)), (q a).IsHomogeneous M) ∀ (x : Fin (n + 1)K) (k : Fin (n + 1)), j : Fin (m + 1), (MvPolynomial.eval x) (q (k, j)) * (MvPolynomial.eval x) (φ j) = x k ^ (M + d)
                            theorem theorem_25_14_upper_bound {K : Type u_1} [Field K] [NumberField K] {n m d : } {φ : Fin (m + 1)MvPolynomial (Fin (n + 1)) K} ( : IsProjectiveMorphism d φ) :
                            ∃ (C₁ : ), ∀ (x : Fin (n + 1)K), (Height.logHeight fun (j : Fin (m + 1)) => (MvPolynomial.eval x) (φ j)) C₁ + d * Height.logHeight x
                            theorem theorem_25_14_lower_bound {K : Type u_1} [Field K] [NumberField K] {n m d : } {φ : Fin (m + 1)MvPolynomial (Fin (n + 1)) K} ( : IsProjectiveMorphism d φ) :
                            ∃ (C₂ : ), ∀ (x : Fin (n + 1)K), C₂ + d * Height.logHeight x Height.logHeight fun (j : Fin (m + 1)) => (MvPolynomial.eval x) (φ j)
                            theorem theorem_25_14_combined {K : Type u_1} [Field K] [NumberField K] {n m d : } {φ : Fin (m + 1)MvPolynomial (Fin (n + 1)) K} ( : IsProjectiveMorphism d φ) :
                            ∃ (C : ), ∀ (x : Fin (n + 1)K), |(Height.logHeight fun (j : Fin (m + 1)) => (MvPolynomial.eval x) (φ j)) - d * Height.logHeight x| C