Definitions/Def_AlgebraicCurve_PlaceTaylorCoeff.lean
Taylor coefficients at places, jet matrices, confluent patterns
Throughout, F/K is an extension of fields and v is a place of F/K in the project's sense (a proper valuation subring of F containing K whose ideals are principal), with the total evaluation map \mathrm{evalAt}_v \colon F \to K which sends f in the valuation subring to its residue read back along K \to \kappa(v) and sends f outside the valuation subring to 0. For t, f \in F the Taylor remainders are defined by the recursion \rho_0 = f and \rho_{r+1} = (\rho_r - \mathrm{evalAt}_v(\rho_r))\,t^{-1}, where the scalar is transported to F by the structure map, and the r-th Taylor coefficient of f at v along t is a_r = \mathrm{evalAt}_v(\rho_r) \in K. Thus a_0 is the value of f at v, and the recursion involves no derivations or factorials. Two identities are recorded: \rho_r = a_r + t\,\rho_{r+1} and, for t \neq 0 and every n, the finite expansion f = \sum_{q<n} a_q t^q + t^n \rho_n.
For M places P_1,\dots,P_M, elements t_1,\dots,t_M, orders e_1,\dots,e_M \in \mathbb{N} and functions f_1,\dots,f_M, the jet matrix is the M \times M matrix over K with (i,j) entry the e_i-th Taylor coefficient of f_j at P_i along t_i; for all orders zero it is the matrix of values \mathrm{evalAt}_{P_i}(f_j). The multiplicity \mathrm{jetMult} of a place v is the number of indices i with P_i = v, and \mathrm{jetDivisor} is the divisor \sum_i P_i, whose coefficient at v is that multiplicity. Finally, (P,t,e) is a confluent pattern when equal places carry equal elements t, the assignment i \mapsto (P_i, e_i) is injective, and e_i < \mathrm{jetMult}(P_i) for every i; so at each place the orders occurring are exactly 0,\dots,n_v-1 where n_v is the multiplicity.
Relation to Mathlib
Mathlib's Taylor expansions concern polynomials; the expansion of an element of a field extension along an element at a place, together with jet matrices and confluence patterns, is the project's own, built on its Place structure and the total evaluation evalAt.
Where it is used
These notions belong to the project's layer on places and divisors of a curve presented through its function field: the Taylor coefficients give a total, characteristic-free higher-order evaluation at a place, and jet matrices together with confluent patterns express interpolation conditions with multiplicities supported on the divisor \sum_i P_i.
References
- H. Stichtenoth, Algebraic Function Fields and Codes, 2nd edition, Graduate Texts in Mathematics 254, Springer, 2009
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 94 lines
- 16 declarations
- used in the statements of 26 theorems and imported by 33 proofs
- imports 1 definition modules
Source file: Definitions/Def_AlgebraicCurve_PlaceTaylorCoeff.lean
Imported by
- no other definition module
Declarations
- def
AlgebraicCurve.Place.taylorRem - def
AlgebraicCurve.Place.taylorCoeff - theorem
AlgebraicCurve.Place.taylorRem_zero - theorem
AlgebraicCurve.Place.taylorRem_succ - theorem
AlgebraicCurve.Place.taylorCoeff_zero - theorem
AlgebraicCurve.Place.taylorCoeff_eq - theorem
AlgebraicCurve.Place.taylorRem_succ' - theorem
AlgebraicCurve.Place.taylorRem_eq_add_mul_succ - theorem
AlgebraicCurve.Place.eq_sum_taylorCoeff_mul_pow_add_pow_mul_taylorRem - def
AlgebraicCurve.jetMatrix - theorem
AlgebraicCurve.jetMatrix_apply - theorem
AlgebraicCurve.jetMatrix_order_zero - def
AlgebraicCurve.jetMult - def
AlgebraicCurve.jetDivisor - theorem
AlgebraicCurve.jetDivisor_apply - def
AlgebraicCurve.IsConfluentPattern
Source
import Mathlib import Definitions.Def_AlgebraicCurve_PlaceEvaluation set_option autoImplicit false noncomputable section namespace AlgebraicCurve variable {K F : Type*} [Field K] [Field F] [Algebra K F] namespace Place def taylorRem (v : Place K F) (t f : F) : ℕ → F | 0 => f | r + 1 => (taylorRem v t f r - algebraMap K F (v.evalAt (taylorRem v t f r))) * t⁻¹ def taylorCoeff (v : Place K F) (t : F) (r : ℕ) (f : F) : K := v.evalAt (taylorRem v t f r) variable (v : Place K F) (t f : F) @[simp] theorem taylorRem_zero : taylorRem v t f 0 = f := rfl theorem taylorRem_succ (r : ℕ) : taylorRem v t f (r + 1) = (taylorRem v t f r - algebraMap K F (v.evalAt (taylorRem v t f r))) * t⁻¹ := rfl @[simp] theorem taylorCoeff_zero : taylorCoeff v t 0 f = v.evalAt f := rfl theorem taylorCoeff_eq (r : ℕ) : taylorCoeff v t r f = v.evalAt (taylorRem v t f r) := rfl theorem taylorRem_succ' (r : ℕ) : taylorRem v t f (r + 1) = (taylorRem v t f r - algebraMap K F (taylorCoeff v t r f)) * t⁻¹ := rfl theorem taylorRem_eq_add_mul_succ {t : F} (ht : t ≠ 0) (f : F) (r : ℕ) : taylorRem v t f r = algebraMap K F (taylorCoeff v t r f) + t * taylorRem v t f (r + 1) := by rw [taylorRem_succ', mul_comm _ t⁻¹, ← mul_assoc, mul_inv_cancel₀ ht, one_mul] abel theorem eq_sum_taylorCoeff_mul_pow_add_pow_mul_taylorRem {t : F} (ht : t ≠ 0) (f : F) (n : ℕ) : f = (∑ q ∈ Finset.range n, algebraMap K F (taylorCoeff v t q f) * t ^ q) + t ^ n * taylorRem v t f n := by induction n with | zero => simp | succ n ih => rw [Finset.sum_range_succ, pow_succ] nth_rewrite 1 [ih] rw [taylorRem_eq_add_mul_succ v ht f n] ring end Place def jetMatrix {M : ℕ} (P : Fin M → Place K F) (t : Fin M → F) (e : Fin M → ℕ) (f : Fin M → F) : Matrix (Fin M) (Fin M) K := Matrix.of fun i j => (P i).taylorCoeff (t i) (e i) (f j) theorem jetMatrix_apply {M : ℕ} (P : Fin M → Place K F) (t : Fin M → F) (e : Fin M → ℕ) (f : Fin M → F) (i j : Fin M) : jetMatrix P t e f i j = (P i).taylorCoeff (t i) (e i) (f j) := rfl @[simp] theorem jetMatrix_order_zero {M : ℕ} (P : Fin M → Place K F) (t : Fin M → F) (f : Fin M → F) : jetMatrix P t (fun _ => 0) f = Matrix.of fun i j => (P i).evalAt (f j) := rfl open Classical in def jetMult {M : ℕ} (P : Fin M → Place K F) (v : Place K F) : ℕ := (Finset.univ.filter fun i => P i = v).card def jetDivisor {M : ℕ} (P : Fin M → Place K F) : Divisor K F := ∑ i, Finsupp.single (P i) 1 theorem jetDivisor_apply {M : ℕ} (P : Fin M → Place K F) (v : Place K F) : jetDivisor P v = (jetMult P v : ℤ) := by classical simp only [jetDivisor, jetMult, Finsupp.coe_finsetSum, Finset.sum_apply, Finsupp.single_apply, Finset.sum_boole] def IsConfluentPattern {M : ℕ} (P : Fin M → Place K F) (t : Fin M → F) (e : Fin M → ℕ) : Prop := (∀ i i', P i = P i' → t i = t i') ∧ (∀ i i', P i = P i' → e i = e i' → i = i') ∧ (∀ i, e i < jetMult P (P i)) end AlgebraicCurve end
Statements phrased using this module (26)
- Truncated Cauchy inverse system determines Taylor coefficients of s⁻¹
AlgebraicCurve.Place.eq_taylorCoeff_inv_of_forall_sum_antidiagonal_eq12 below · depth 15 - Vanishing of the first e Taylor coefficients means ordᵥ f ≥ e
AlgebraicCurve.Place.forall_lt_taylorCoeff_eq_zero_iff_le_ord1 below · depth 15 - Taylor expansion commutes with multivariate polynomial expressions
AlgebraicCurve.Place.mk_taylorCoeff_aeval12 below · depth 15 - Taylor expansion of z in the parameter z-z(v) is z(v)+T
AlgebraicCurve.Place.mk_taylorCoeff_eq_C_add_X3 below · depth 15 - Additivity of Taylor coefficients at a rational place
AlgebraicCurve.Place.taylorCoeff_add2 below · depth 15 - Taylor coefficients of a constant at a place
AlgebraicCurve.Place.taylorCoeff_algebraMap2 below · depth 15 - Cauchy product rule for Taylor coefficients at a place
AlgebraicCurve.Place.taylorCoeff_mul7 below · depth 15 - Homogeneity of Taylor coefficients at a rational place
AlgebraicCurve.Place.taylorCoeff_smul2 below · depth 15 - Joint injectivity of polar coefficients on section pairs in general position
ModularCurve.eq_zero_of_forall_sum_mul_taylorCoeff_mul_pow_eq_zero_of_generalPosition12 below · depth 15 - Formal Taylor branch satisfies the relation re-expanded at a place
AlgebraicCurve.Place.evalEval_C_add_X_mk_taylorCoeff_eq_zero11 below · depth 16 - Taylor expansion commutes with bivariate polynomial evaluation
AlgebraicCurve.Place.mk_taylorCoeff_evalEval9 below · depth 16 - Shift of Taylor coefficients along a uniformiser
AlgebraicCurve.Place.taylorCoeff_succ_eq_taylorCoeff_taylorRem_one1 below · depth 16 - Additivity of Taylor remainders at a rational place
AlgebraicCurve.Place.taylorRem_add1 below · depth 16 - Taylor remainder when the lower coefficients vanish
AlgebraicCurve.Place.taylorRem_eq_mul_inv_pow_of_forall_taylorCoeff_eq_zero0 below · depth 16 - Taylor remainders along a uniformiser stay in the valuation ring
AlgebraicCurve.Place.taylorRem_mem_toValuationSubring0 below · depth 16 - Taylor remainders at a rational place are K-homogeneous
AlgebraicCurve.Place.taylorRem_smul1 below · depth 16 - Polar-coefficient form of general position for section pairs
ModularCurve.exists_eq_algebraMap_of_forall_taylorCoeff_mul_pow_eq_zero_of_generalPosition3 below · depth 16 - Shift of Taylor remainders at a place
AlgebraicCurve.Place.taylorRem_succ_eq_taylorRem_taylorRem_one0 below · depth 17 - Rescaling by regular multipliers multiplies the jet determinant
AlgebraicCurve.det_taylorCoeff_mul_eq_prod_evalAt_mul_det_jetMatrix9 below · depth 17 - Jet matrix invertible iff span meets L(A-sum Pᵢ) trivially
AlgebraicCurve.isUnit_det_jetMatrix_iff_span_inf_riemannRochSpace_eq_bot7 below · depth 17 - Confluent many-point Jensen inequality for a section frame
ModularCurve.JZero.sum_pairHt_le_of_isUnit_det_jetMatrix277 below · depth 17 - Orders in a confluent pattern exhaust {0,…,nᵥ-1}
AlgebraicCurve.IsConfluentPattern.exists_eq_of_lt_jetMult0 below · depth 18 - First non-vanishing Taylor coefficient equals the value of f t^{-e}
AlgebraicCurve.Place.taylorCoeff_eq_evalAt_mul_inv_pow_of_forall_taylorCoeff_eq_zero1 below · depth 18 - Non-vanishing of the leading Taylor coefficient at a place
AlgebraicCurve.Place.taylorCoeff_ord_ne_zero2 below · depth 18 - Uniform non-archimedean disc charts at pivots on X₀(N)
ModularCurve.JZero.exists_chart_of_isPivot391 below · depth 18 - Uniqueness of the formal branch through a simple root
AlgebraicCurve.Place.eq_map_mk_taylorCoeff_of_evalEval_C_add_X_eq_zero13 below · depth 19