Paper X · Lean source

WeilEuler.lean

Declared contract recorded Coverage and evidence

The cited release explicitly reports completion of its registered formal contract, under its exact hypotheses.

This viewer reads the retained source; it does not run Lean or assign new claim mappings.

Local imports (1)

PaperX/WeilEuler.lean61 lines

Original source pathcurrent_continuation/lean/PaperX/WeilEuler.lean
Skip declarations and read code

Skip source text

1 import PaperX.WeilCopies
2 import Mathlib.LinearAlgebra.Matrix.Charpoly.Coeff
3 
4 /-! The local Euler denominator is identified with det(1-XF) on the actual
5 inertia-fixed monodromy kernel. No analytic L-function is constructed. -/
6 set_option autoImplicit false
7 noncomputable section
8 namespace PaperX.WeilEuler
9 open scoped BigOperators Matrix
10 open Polynomial PaperX.WeilData PaperX.WeilCopies
11 variable {K G : Type*} [Field K] [Group G] {ν : G →* Kˣ}
12 variable {V : Type*} [AddCommGroup V] [Module K V] [FiniteDimensional K V]
13 
14 def eulerPolynomial (D : Datum ν V) (H : Subgroup G) [H.Normal] (φ : G) : Polynomial K :=
15   (localCharpoly D H φ).reverse
16 
17 theorem euler_eq_determinant (D : Datum ν V) (H : Subgroup G) [H.Normal] (φ : G)
18     {J : Type*} [Fintype J] [DecidableEq J] (b : Module.Basis J K (fixedKernel D H)) :
19     eulerPolynomial D H φ =
20       Matrix.det (1 - (X : Polynomial K) • (LinearMap.toMatrix b b (fixedRep D H φ)).map C) := by
21   unfold eulerPolynomial localCharpoly
22   rw [← LinearMap.charpoly_toMatrix _ b, Matrix.reverse_charpoly]
23   rfl
24 
25 theorem euler_constant (D : Datum ν V) (H : Subgroup G) [H.Normal] (φ : G) :
26     (eulerPolynomial D H φ).coeff 0 = 1 := by
27   rw [eulerPolynomial, Polynomial.coeff_zero_reverse]
28   exact (LinearMap.charpoly_monic _).leadingCoeff
29 
30 theorem euler_lift_independent (D : Datum ν V) (H : Subgroup G) [H.Normal]
31     (φ : G) (h : H) : eulerPolynomial D H (φ * h) = eulerPolynomial D H φ := by
32   unfold eulerPolynomial
33   rw [localCharpoly_lift_independent]
34 
35 /-- Over a field, reversal is multiplicative, including zero polynomials. -/
36 def reverseHom : Polynomial K →* Polynomial K where
37   toFun := Polynomial.reverse
38   map_one' := by simpa using (Polynomial.reverse_C (1 : K))
39   map_mul' := Polynomial.reverse_mul_of_domain
40 
41 variable {I : Type*} [Fintype I] {W : I → Type*}
42 variable [∀ i, AddCommGroup (W i)] [∀ i, Module K (W i)]
43 variable [∀ i, FiniteDimensional K (W i)]
44 
45 theorem euler_product (D : ∀ i, Datum ν (W i)) (H : Subgroup G) [H.Normal]
46     (m : I → ℕ) (φ : G) :
47     eulerPolynomial (copiesDatum D m) H φ = ∏ i, eulerPolynomial (D i) H φ ^ m i := by
48   unfold eulerPolynomial
49   rw [local_charpoly_product]
50   change reverseHom (∏ i, localCharpoly (D i) H φ ^ m i) = _
51   simp only [map_prod, map_pow]
52   rfl
53 
54 theorem common_euler_polynomial {E : Type*} [CommRing E] (σ : E →+* K)
55     (D : ∀ i, Datum ν (W i)) (H : Subgroup G) [H.Normal] (m : I → ℕ) (φ : G)
56     (P : I → Polynomial E) (hP : ∀ i, eulerPolynomial (D i) H φ = (P i).map σ) :
57     eulerPolynomial (copiesDatum D m) H φ = (∏ i, P i ^ m i).map σ := by
58   rw [euler_product]
59   simp [hP, Polynomial.map_prod]
60 
61 end PaperX.WeilEuler

Back to source controls

Original file and source record

This copy matches the recorded source file. Its publication here does not change the work’s review status.

SHA-256: 9f5acc7a49a1748cd24b05261e796c4f7af4914b158f1c2f902e15079ecf5f02

Original source on GitHub

Back to Paper X: Universal Residual Seeds and Conditional Occupied-System Completion