Documentation

Atlas.ArithmeticGeometry.code.WeilChatelet

noncomputable def IsArithGenus1 (k : Type u) [Field k] (C_pts : Type u) :

Abstract predicate: the type C_pts represents the points of a smooth curve of arithmetic genus 1 over $k$. The concrete content is deferred via sorry.

Instances For
    class IsGenusOneCurvePoints (k : Type u) [Field k] (C_pts : Type u) :

    A genus-one curve points type over $k$: C_pts is nonempty after base change to the algebraic closure, and is of arithmetic genus one.

    Instances
      noncomputable def IsKActionMorphism (k : Type u) [Field k] (W : WeierstrassCurve k) [W.IsElliptic] (E_pts : Type u) [AddGroup E_pts] (C_pts : Type u) [AddTorsor E_pts C_pts] :

      Abstract predicate: the action of $E$ on $C$ defining a torsor is realised by a $k$-rational morphism of varieties.

      Instances For
        class IsActionMorphismOverk (k : Type u) [Field k] (W : WeierstrassCurve k) [W.IsElliptic] (E_pts : Type u) [AddCommGroup E_pts] (C_pts : Type u) [AddTorsor E_pts C_pts] :

        Class wrapping the IsKActionMorphism predicate as an instance argument; required for the torsor structure to define an "elliptic curve torsor over $k$".

        Instances
          @[reducible]
          def addTorsorOfEquiv (G : Type u_1) [AddGroup G] (P : Type u_2) [Nonempty P] (e : P G) :

          Build an AddTorsor G P from any bijection $e \colon P \simeq G$, by transporting the addition: $g +_v p := e^{-1}(g + e(p))$.

          Instances For
            theorem isKActionMorphism_of_equiv (k : Type u) [Field k] (W : WeierstrassCurve k) [W.IsElliptic] (E_pts : Type u) [AddCommGroup E_pts] (C_pts : Type u) [_hne : Nonempty C_pts] (φ : C_pts E_pts) :
            IsKActionMorphism k W E_pts C_pts

            The transported torsor obtained from addTorsorOfEquiv is automatically a $k$-action morphism.

            theorem IsActionMorphismOverk.ofEquiv (k : Type u) [Field k] (W : WeierstrassCurve k) [W.IsElliptic] (E_pts : Type u) [AddCommGroup E_pts] (C_pts : Type u) [hne : Nonempty C_pts] (φ : C_pts E_pts) :
            IsActionMorphismOverk k W E_pts C_pts

            The torsor obtained from a bijection $\varphi \colon C \simeq E$ satisfies the IsActionMorphismOverk axiom.

            structure IsETorsor (k : Type u) [Field k] (W : WeierstrassCurve k) [W.IsElliptic] (E_pts : Type u) [AddCommGroup E_pts] (C_pts : Type u) :

            An $E$-torsor over $k$: the data of an AddTorsor structure of $E_{\mathrm{pts}}$ on $C_{\mathrm{pts}}$, a witness that $C$ is a genus-one curve points type, and a witness that the action is a $k$-rational morphism.

            Instances For
              theorem IsETorsor.nonempty {k : Type u} [Field k] {W : WeierstrassCurve k} [W.IsElliptic] {E_pts : Type u} [AddCommGroup E_pts] {C_pts : Type u} (h : IsETorsor k W E_pts C_pts) :
              Nonempty C_pts

              An $E$-torsor over $k$ is nonempty (since AddTorsor requires nonemptiness).

              noncomputable def IsETorsor.equivOfBasePoint {k : Type u} [Field k] {W : WeierstrassCurve k} [W.IsElliptic] {E_pts : Type u} [AddCommGroup E_pts] {C_pts : Type u} (h : IsETorsor k W E_pts C_pts) (c₀ : C_pts) :
              E_pts C_pts

              Choosing a base point $c_0 \in C$ in an $E$-torsor produces an equivalence $E \simeq C$ via $g \mapsto g +_v c_0$.

              Instances For
                @[reducible]
                def IsETorsor.toIsTorsor {k : Type u} [Field k] {W : WeierstrassCurve k} [W.IsElliptic] {E_pts : Type u} [AddCommGroup E_pts] {C_pts : Type u} (h : IsETorsor k W E_pts C_pts) :
                IsTorsor E_pts C_pts

                An $E$-torsor (over $k$) is in particular a torsor in the abstract sense.

                Instances For
                  inductive IsKRationalMap (k : Type u) [Field k] (C₁_pts C₂_pts : Type u) :
                  C₁_pts C₂_ptsProp

                  A $k$-rational map between two curve point types, encoded as an inductive closure under identity, symmetry, and composition.

                  Instances For
                    class IsKIsomorphism (k : Type u) [Field k] (C₁_pts C₂_pts : Type u) (e : C₁_pts C₂_pts) :

                    A $k$-isomorphism of curve points: a bijection $e$ that is $k$-rational as a map of algebraic varieties.

                    Instances
                      theorem IsKRationalMap.refl (k : Type u) [Field k] (C_pts : Type u) :
                      IsKRationalMap k C_pts C_pts (Equiv.refl C_pts)

                      The identity map is $k$-rational.

                      theorem IsKRationalMap.symm {k : Type u} [Field k] {C₁_pts C₂_pts : Type u} {e : C₁_pts C₂_pts} (h : IsKRationalMap k C₁_pts C₂_pts e) :
                      IsKRationalMap k C₂_pts C₁_pts e.symm

                      The inverse of a $k$-rational equivalence is $k$-rational.

                      theorem IsKRationalMap.trans {k : Type u} [Field k] {C₁_pts C₂_pts C₃_pts : Type u} {e₁₂ : C₁_pts C₂_pts} {e₂₃ : C₂_pts C₃_pts} (h₁ : IsKRationalMap k C₁_pts C₂_pts e₁₂) (h₂ : IsKRationalMap k C₂_pts C₃_pts e₂₃) :
                      IsKRationalMap k C₁_pts C₃_pts (e₁₂.trans e₂₃)

                      The composition of two $k$-rational equivalences is $k$-rational.

                      theorem IsKRationalMap.of_torsor_translation_of_cohomologous {k : Type u} [Field k] {G : Type u} [AddGroup G] {P₁ P₂ : Type u} [inst₁ : AddTorsor G P₁] [inst₂ : AddTorsor G P₂] (q₁ : P₁) (q₂ : P₂) {CocyclesAreCohomologous : Prop} (_heq_cocycles : CocyclesAreCohomologous) :

                      If two torsor base points $q_1, q_2$ are cohomologous as cocycles, then the torsor translation map between the corresponding base-pointed presentations is $k$-rational.

                      theorem IsKIsomorphism.of_torsor_translation_of_cohomologous {k : Type u} [Field k] {G : Type u} [AddGroup G] {P₁ P₂ : Type u} [inst₁ : AddTorsor G P₁] [inst₂ : AddTorsor G P₂] (q₁ : P₁) (q₂ : P₂) {CocyclesAreCohomologous : Prop} (heq_cocycles : CocyclesAreCohomologous) :

                      The torsor-translation map associated to two cohomologous cocycles is a $k$-isomorphism.

                      theorem IsKIsomorphism.refl (k : Type u) [Field k] (C_pts : Type u) :
                      IsKIsomorphism k C_pts C_pts (Equiv.refl C_pts)

                      Reflexivity of $k$-isomorphism.

                      theorem IsKIsomorphism.symm {k : Type u} [Field k] {C₁_pts C₂_pts : Type u} {e : C₁_pts C₂_pts} (h : IsKIsomorphism k C₁_pts C₂_pts e) :
                      IsKIsomorphism k C₂_pts C₁_pts e.symm

                      The inverse of a $k$-isomorphism is a $k$-isomorphism.

                      theorem IsKIsomorphism.trans {k : Type u} [Field k] {C₁_pts C₂_pts C₃_pts : Type u} {e₁₂ : C₁_pts C₂_pts} {e₂₃ : C₂_pts C₃_pts} (h₁ : IsKIsomorphism k C₁_pts C₂_pts e₁₂) (h₂ : IsKIsomorphism k C₂_pts C₃_pts e₂₃) :
                      IsKIsomorphism k C₁_pts C₃_pts (e₁₂.trans e₂₃)

                      The composition of two $k$-isomorphisms is a $k$-isomorphism.

                      structure ETorsor (k : Type u) [Field k] (W : WeierstrassCurve k) [W.IsElliptic] (E_pts : Type u) [AddCommGroup E_pts] :
                      Type (u + 1)

                      A bundled $E$-torsor: a points type C_pts together with an IsETorsor proof.

                      Instances For
                        def ETorsor.Equiv {k : Type u} [Field k] {W : WeierstrassCurve k} [W.IsElliptic] {E_pts : Type u} [AddCommGroup E_pts] (T₁ T₂ : ETorsor k W E_pts) :

                        Two $E$-torsors $T_1, T_2$ are equivalent if there is a $k$-isomorphism $C_{T_1} \simeq C_{T_2}$ that intertwines the $E$-actions: $e(p +_v q) = p +_v e(q)$.

                        Instances For
                          theorem ETorsor.Equiv.rfl {k : Type u} [Field k] {W : WeierstrassCurve k} [W.IsElliptic] {E_pts : Type u} [AddCommGroup E_pts] (T : ETorsor k W E_pts) :
                          T.Equiv T

                          Reflexivity: every torsor is equivalent to itself via the identity.

                          theorem ETorsor.Equiv.symm {k : Type u} [Field k] {W : WeierstrassCurve k} [W.IsElliptic] {E_pts : Type u} [AddCommGroup E_pts] {T₁ T₂ : ETorsor k W E_pts} (h : T₁.Equiv T₂) :
                          T₂.Equiv T₁

                          Symmetry of torsor equivalence.

                          theorem ETorsor.Equiv.trans {k : Type u} [Field k] {W : WeierstrassCurve k} [W.IsElliptic] {E_pts : Type u} [AddCommGroup E_pts] {T₁ T₂ T₃ : ETorsor k W E_pts} (h₁₂ : T₁.Equiv T₂) (h₂₃ : T₂.Equiv T₃) :
                          T₁.Equiv T₃

                          Transitivity of torsor equivalence.

                          @[implicit_reducible]
                          instance ETorsor.setoid {k : Type u} [Field k] {W : WeierstrassCurve k} [W.IsElliptic] {E_pts : Type u} [AddCommGroup E_pts] :
                          Setoid (ETorsor k W E_pts)

                          The setoid on ETorsor whose equivalence relation is torsor equivalence.

                          theorem ETorsor.Equiv.vsub_preserving {k : Type u} [Field k] {W : WeierstrassCurve k} [W.IsElliptic] {E_pts : Type u} [AddCommGroup E_pts] {T₁ T₂ : ETorsor k W E_pts} (e : T₁.C_pts T₂.C_pts) (hcompat : ∀ (p : E_pts) (q : T₁.C_pts), e (p +ᵥ q) = p +ᵥ e q) (P Q : T₁.C_pts) :
                          e P -ᵥ e Q = P -ᵥ Q

                          An $E$-action-preserving equivalence of torsors is automatically $-_v$-preserving: $e(P) -_v e(Q) = P -_v Q$.

                          theorem ETorsor.Equiv.vadd_compat_of_vsub {k : Type u} [Field k] {W : WeierstrassCurve k} [W.IsElliptic] {E_pts : Type u} [AddCommGroup E_pts] {T₁ T₂ : ETorsor k W E_pts} (e : T₁.C_pts T₂.C_pts) (hvsub : ∀ (P Q : T₁.C_pts), e P -ᵥ e Q = P -ᵥ Q) (p : E_pts) (q : T₁.C_pts) :
                          e (p +ᵥ q) = p +ᵥ e q

                          Conversely, a $-_v$-preserving map of torsors is automatically $+_v$-compatible.

                          theorem ETorsor.equiv_iff_vsub_preserving {k : Type u} [Field k] {W : WeierstrassCurve k} [W.IsElliptic] {E_pts : Type u} [AddCommGroup E_pts] {T₁ T₂ : ETorsor k W E_pts} (e : T₁.C_pts T₂.C_pts) :
                          (∀ (p : E_pts) (q : T₁.C_pts), e (p +ᵥ q) = p +ᵥ e q) ∀ (P Q : T₁.C_pts), e P -ᵥ e Q = P -ᵥ Q

                          An equivalence of $E$-torsors is $+_v$-compatible iff it is $-_v$-preserving.

                          def WC (k : Type u) [Field k] (W : WeierstrassCurve k) [W.IsElliptic] (E_pts : Type u) [AddCommGroup E_pts] :
                          Type (u + 1)

                          The Weil-Châtelet set of $E/k$: the set of $E$-torsors over $k$ up to $k$-isomorphism, realised as the quotient of ETorsor by the equivalence relation.

                          Instances For
                            def ETorsorPic.zsmulHom {E_pts : Type u} [AddCommGroup E_pts] (e : E_pts) :
                            →+ E_pts

                            The scalar multiplication $n \mapsto n \cdot e$ packaged as an additive homomorphism $\mathbb{Z} \to E$.

                            Instances For
                              noncomputable def ETorsorPic.piMap {E_pts : Type u} [AddCommGroup E_pts] {C_pts : Type u} [AddTorsor E_pts C_pts] (Q₀ : C_pts) :
                              (C_pts →₀ ) →+ E_pts

                              The Abel-Jacobi map at the level of free abelian groups: $\sum n_P [P] \mapsto \sum n_P (P -_v Q_0)$, viewed as an additive homomorphism $(C \to_0 \mathbb{Z}) \to E$.

                              Instances For
                                noncomputable def ETorsorPic.piDegreeMap {C_pts : Type u} :
                                (C_pts →₀ ) →+

                                The degree homomorphism on the free abelian group on $C$: $\sum n_P [P] \mapsto \sum n_P$.

                                Instances For
                                  @[simp]
                                  theorem ETorsorPic.piMap_single {E_pts : Type u} [AddCommGroup E_pts] {C_pts : Type u} [AddTorsor E_pts C_pts] (Q₀ P : C_pts) (n : ) :
                                  ((piMap Q₀) fun₀ | P => n) = n (P -ᵥ Q₀)

                                  Evaluation of piMap on a single basis element: $\mathrm{piMap}\,Q_0\,[P]_n = n \cdot (P -_v Q_0)$.

                                  @[simp]
                                  theorem ETorsorPic.piDegreeMap_single {C_pts : Type u} (P : C_pts) (n : ) :

                                  The degree map sends a single basis element $[P]_n$ to $n$.

                                  theorem ETorsorPic.piMap_surjective {E_pts : Type u} [AddCommGroup E_pts] {C_pts : Type u} [AddTorsor E_pts C_pts] (Q₀ : C_pts) :

                                  The Abel-Jacobi map piMap Q₀ is surjective: every element of $E$ can be realised as the image of a divisor of degree zero.

                                  theorem ETorsorPic.piMap_sub_eq_deg_smul {E_pts : Type u} [AddCommGroup E_pts] {C_pts : Type u} [AddTorsor E_pts C_pts] (Q₀ Q₁ : C_pts) (D : C_pts →₀ ) :
                                  (piMap Q₀) D - (piMap Q₁) D = piDegreeMap D (Q₁ -ᵥ Q₀)

                                  Comparison of two base points: $\mathrm{piMap}\,Q_0(D) - \mathrm{piMap}\,Q_1(D) = \deg(D) \cdot (Q_1 -_v Q_0)$.

                                  theorem ETorsorPic.piMap_independent {E_pts : Type u} [AddCommGroup E_pts] {C_pts : Type u} [AddTorsor E_pts C_pts] (Q₀ Q₁ : C_pts) (D : C_pts →₀ ) (hD : piDegreeMap D = 0) :
                                  (piMap Q₀) D = (piMap Q₁) D

                                  On divisors of degree zero, the Abel-Jacobi map is independent of the chosen base point.

                                  structure ETorsorPic.EllipticCurveDivisorData (E_pts : Type u) [AddCommGroup E_pts] (DivZero : Type u) [AddCommGroup DivZero] (DivZero_E : Type u) [AddCommGroup DivZero_E] (PrincDiv : AddSubgroup DivZero) (π : DivZero →+ E_pts) :

                                  Auxiliary data for the Abel-Jacobi isomorphism $\mathrm{Pic}^0(C) \simeq E$: a factorisation of the Abel-Jacobi map $\pi$ through an intermediate group DivZero_E, together with the inclusion of principal divisors and a "function field" compatibility condition.

                                  Instances For
                                    theorem ETorsorPic.abel_jacobi_ker_le_princDiv {E_pts : Type u} [AddCommGroup E_pts] {DivZero : Type u} [AddCommGroup DivZero] (PrincDiv : AddSubgroup DivZero) (π : DivZero →+ E_pts) {DivZero_E : Type u} [AddCommGroup DivZero_E] (data : EllipticCurveDivisorData E_pts DivZero DivZero_E PrincDiv π) :
                                    π.ker PrincDiv

                                    The kernel of the Abel-Jacobi map $\pi$ is contained in the principal divisors: $\ker(\pi) \subseteq \mathrm{Princ}$.

                                    theorem ETorsorPic.princDiv_le_ker_pi {E_pts : Type u} [AddCommGroup E_pts] {DivZero : Type u} [AddCommGroup DivZero] (PrincDiv : AddSubgroup DivZero) (π : DivZero →+ E_pts) {DivZero_E : Type u} [AddCommGroup DivZero_E] (data : EllipticCurveDivisorData E_pts DivZero DivZero_E PrincDiv π) (habel_converse : data.PrincDiv_E data.σ_E.ker) (hfunc_field_converse : DPrincDiv, data.τ D data.PrincDiv_E) :
                                    PrincDiv π.ker

                                    Conversely, principal divisors are contained in the kernel of $\pi$, provided the converse versions of the EllipticCurveDivisorData axioms hold.

                                    theorem ETorsorPic.piMap_ker_eq_princDiv {E_pts : Type u} [AddCommGroup E_pts] {DivZero : Type u} [AddCommGroup DivZero] (PrincDiv : AddSubgroup DivZero) (π : DivZero →+ E_pts) (hπ_ker_le : π.ker PrincDiv) (hπ_principal_in_ker : PrincDiv π.ker) :
                                    π.ker = PrincDiv

                                    Combining the two inclusions: $\ker(\pi) = \mathrm{Princ}$.

                                    noncomputable def ETorsorPic.pic0_addEquiv_E {E_pts : Type u} [AddCommGroup E_pts] {DivZero : Type u} [AddCommGroup DivZero] (PrincDiv : AddSubgroup DivZero) (π : DivZero →+ E_pts) {DivZero_E : Type u} [AddCommGroup DivZero_E] (data : EllipticCurveDivisorData E_pts DivZero DivZero_E PrincDiv π) (habel_converse : data.PrincDiv_E data.σ_E.ker) (hfunc_field_converse : DPrincDiv, data.τ D data.PrincDiv_E) (hπ_surj : Function.Surjective π) :
                                    DivZero PrincDiv ≃+ E_pts

                                    The Abel-Jacobi isomorphism: assuming the abstract divisor data and surjectivity of $\pi$, one has $\mathrm{Pic}^0(C) = \mathrm{Div}^0/\mathrm{Princ} \cong E$.

                                    Instances For
                                      theorem ETorsorPic.pic0_addEquiv_E_mk {E_pts : Type u} [AddCommGroup E_pts] {DivZero : Type u} [AddCommGroup DivZero] (PrincDiv : AddSubgroup DivZero) (π : DivZero →+ E_pts) {DivZero_E : Type u} [AddCommGroup DivZero_E] (data : EllipticCurveDivisorData E_pts DivZero DivZero_E PrincDiv π) (habel_converse : data.PrincDiv_E data.σ_E.ker) (hfunc_field_converse : DPrincDiv, data.τ D data.PrincDiv_E) (hπ_surj : Function.Surjective π) (D : DivZero) :
                                      (pic0_addEquiv_E PrincDiv π data habel_converse hfunc_field_converse hπ_surj) ((QuotientAddGroup.mk' PrincDiv) D) = π D

                                      Compatibility: the Abel-Jacobi isomorphism sends the class $[D]$ of a divisor $D$ to its image $\pi(D)$ in $E$.

                                      theorem ETorsorPic.pic0_addEquiv_E_map_add {E_pts : Type u} [AddCommGroup E_pts] {DivZero : Type u} [AddCommGroup DivZero] (PrincDiv : AddSubgroup DivZero) (π : DivZero →+ E_pts) {DivZero_E : Type u} [AddCommGroup DivZero_E] (data : EllipticCurveDivisorData E_pts DivZero DivZero_E PrincDiv π) (habel_converse : data.PrincDiv_E data.σ_E.ker) (hfunc_field_converse : DPrincDiv, data.τ D data.PrincDiv_E) (hπ_surj : Function.Surjective π) (x y : DivZero PrincDiv) :
                                      (pic0_addEquiv_E PrincDiv π data habel_converse hfunc_field_converse hπ_surj) (x + y) = (pic0_addEquiv_E PrincDiv π data habel_converse hfunc_field_converse hπ_surj) x + (pic0_addEquiv_E PrincDiv π data habel_converse hfunc_field_converse hπ_surj) y

                                      The Abel-Jacobi isomorphism is additive: $\Phi(x + y) = \Phi(x) + \Phi(y)$.

                                      theorem ETorsorPic.pic0_addEquiv_E_map_zero {E_pts : Type u} [AddCommGroup E_pts] {DivZero : Type u} [AddCommGroup DivZero] (PrincDiv : AddSubgroup DivZero) (π : DivZero →+ E_pts) {DivZero_E : Type u} [AddCommGroup DivZero_E] (data : EllipticCurveDivisorData E_pts DivZero DivZero_E PrincDiv π) (habel_converse : data.PrincDiv_E data.σ_E.ker) (hfunc_field_converse : DPrincDiv, data.τ D data.PrincDiv_E) (hπ_surj : Function.Surjective π) :
                                      (pic0_addEquiv_E PrincDiv π data habel_converse hfunc_field_converse hπ_surj) 0 = 0

                                      The Abel-Jacobi isomorphism sends $0$ to $0$.

                                      theorem ETorsorPic.pic0_addEquiv_E_symm_apply {E_pts : Type u} [AddCommGroup E_pts] {DivZero : Type u} [AddCommGroup DivZero] (PrincDiv : AddSubgroup DivZero) (π : DivZero →+ E_pts) {DivZero_E : Type u} [AddCommGroup DivZero_E] (data : EllipticCurveDivisorData E_pts DivZero DivZero_E PrincDiv π) (habel_converse : data.PrincDiv_E data.σ_E.ker) (hfunc_field_converse : DPrincDiv, data.τ D data.PrincDiv_E) (hπ_surj : Function.Surjective π) (P : E_pts) :
                                      (pic0_addEquiv_E PrincDiv π data habel_converse hfunc_field_converse hπ_surj).symm P = (QuotientAddGroup.mk' PrincDiv) .choose

                                      Inverse formula: $\Phi^{-1}(P)$ is the class of any preimage of $P$ under $\pi$, chosen via the surjectivity hypothesis.

                                      noncomputable def ETorsorPic.theorem_26_17_pic0_iso {E_pts : Type u} [AddCommGroup E_pts] {C_pts : Type u} [AddTorsor E_pts C_pts] (PrincDiv : AddSubgroup (C_pts →₀ )) (Q₀ : C_pts) {DivZero_E : Type u} [AddCommGroup DivZero_E] (data : EllipticCurveDivisorData E_pts (C_pts →₀ ) DivZero_E PrincDiv (piMap Q₀)) (habel_converse : data.PrincDiv_E data.σ_E.ker) (hfunc_field_converse : DPrincDiv, data.τ D data.PrincDiv_E) :
                                      (C_pts →₀ ) PrincDiv ≃+ E_pts

                                      Theorem 26.17 (concrete form): the Abel-Jacobi isomorphism $\mathrm{Pic}^0(C) \cong E$ obtained from the concrete piMap and a divisor data.

                                      Instances For
                                        theorem ETorsorPic.theorem_26_17_surjective {E_pts : Type u} [AddCommGroup E_pts] {C_pts : Type u} [AddTorsor E_pts C_pts] (Q₀ : C_pts) :

                                        Surjectivity statement from Theorem 26.17: piMap Q₀ is surjective.

                                        theorem ETorsorPic.theorem_26_17_ker_le_princDiv {E_pts : Type u} [AddCommGroup E_pts] {C_pts : Type u} [AddTorsor E_pts C_pts] (PrincDiv : AddSubgroup (C_pts →₀ )) (Q₀ : C_pts) {DivZero_E : Type u} [AddCommGroup DivZero_E] (data : EllipticCurveDivisorData E_pts (C_pts →₀ ) DivZero_E PrincDiv (piMap Q₀)) :
                                        (piMap Q₀).ker PrincDiv

                                        Kernel-containment statement from Theorem 26.17: $\ker(\mathrm{piMap}\,Q_0) \subseteq \mathrm{Princ}$.

                                        theorem ETorsorPic.theorem_26_17_princDiv_le_ker {E_pts : Type u} [AddCommGroup E_pts] {C_pts : Type u} [AddTorsor E_pts C_pts] (PrincDiv : AddSubgroup (C_pts →₀ )) (Q₀ : C_pts) {DivZero_E : Type u} [AddCommGroup DivZero_E] (data : EllipticCurveDivisorData E_pts (C_pts →₀ ) DivZero_E PrincDiv (piMap Q₀)) (habel_converse : data.PrincDiv_E data.σ_E.ker) (hfunc_field_converse : DPrincDiv, data.τ D data.PrincDiv_E) :
                                        PrincDiv (piMap Q₀).ker

                                        Reverse containment from Theorem 26.17: $\mathrm{Princ} \subseteq \ker(\mathrm{piMap}\,Q_0)$.

                                        theorem ETorsorPic.theorem_26_17_independent {E_pts : Type u} [AddCommGroup E_pts] {C_pts : Type u} [AddTorsor E_pts C_pts] (Q₀ Q₁ : C_pts) (D : C_pts →₀ ) (hD : piDegreeMap D = 0) :
                                        (piMap Q₀) D = (piMap Q₁) D

                                        Base-point independence from Theorem 26.17: for divisors of degree zero, piMap does not depend on the chosen base point.