Paper X · Lean source

MonodromyKernels.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/MonodromyKernels.lean74 lines

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

Skip source text

1 import PaperX.MonodromyData
2 
3 set_option autoImplicit false
4 noncomputable section
5 namespace PaperX.MonodromyKernels
6 open scoped BigOperators
7 open PaperX.CarrierSummands PaperX.CarrierPolynomials PaperX.MonodromyData
8 
9 variable {K : Type*} [Field K] {q : Kˣ}
10 variable {I : Type*} [Fintype I] {W : I → Type*}
11 variable [∀ i, AddCommGroup (W i)] [∀ i, Module K (W i)]
12 
13 /-- An independently defined kernel is exactly the product of constituent kernels. -/
14 def kernelCopiesEquiv (D : ∀ i, Datum q (W i)) (m : I → ℕ) :
15     LinearMap.ker (copiesDatum D m).N ≃ₗ[K]
16       Copies (fun i => LinearMap.ker (D i).N) m where
17   toFun x i k := ⟨x.val i k, congrFun (congrFun x.property i) k⟩
18   invFun x := ⟨fun i k => (x i k).val, by
19     funext i k
20     exact (x i k).property⟩
21   left_inv x := by apply Subtype.ext; rfl
22   right_inv x := rfl
23   map_add' x y := rfl
24   map_smul' a x := rfl
25 
26 theorem kernel_equivariant (D : ∀ i, Datum q (W i)) (m : I → ℕ)
27     (x : LinearMap.ker (copiesDatum D m).N) :
28     kernelCopiesEquiv D m (kernelF (copiesDatum D m) x) =
29       (LinearEquiv.piCongrRight (fun i => LinearEquiv.piCongrRight
30         (fun _ : Fin (m i) => kernelF (D i)))) (kernelCopiesEquiv D m x) := rfl
31 
32 theorem kernel_conjugate (D : ∀ i, Datum q (W i)) (m : I → ℕ) :
33     (kernelCopiesEquiv D m).conj (kernelF (copiesDatum D m)).toLinearMap =
34       piEnd (fun i => piEnd (fun _ : Fin (m i) => (kernelF (D i)).toLinearMap)) := by
35   apply LinearMap.ext
36   intro x
37   rfl
38 
39 variable [∀ i, FiniteDimensional K (W i)]
40 
41 theorem kernel_charpoly_product (D : ∀ i, Datum q (W i)) (m : I → ℕ) :
42     kernelCharpoly (copiesDatum D m) = ∏ i, kernelCharpoly (D i) ^ m i := by
43   unfold kernelCharpoly
44   rw [← LinearEquiv.charpoly_conj (kernelCopiesEquiv D m), kernel_conjugate,
45     charpoly_piEnd]
46   apply Finset.prod_congr rfl
47   intro i _
48   rw [charpoly_piEnd]
49   simp
50 
51 theorem kernel_dimension_sum (D : ∀ i, Datum q (W i)) (m : I → ℕ) :
52     Module.finrank K (LinearMap.ker (copiesDatum D m).N) =
53       ∑ i, m i * Module.finrank K (LinearMap.ker (D i).N) := by
54   rw [(kernelCopiesEquiv D m).finrank_eq, copies_finrank]
55 
56 theorem kernel_trace_sum (D : ∀ i, Datum q (W i)) (m : I → ℕ) :
57     LinearMap.trace K _ (kernelF (copiesDatum D m)).toLinearMap =
58       ∑ i, (m i : K) * LinearMap.trace K _ (kernelF (D i)).toLinearMap := by
59   rw [← LinearMap.trace_conj' _ (kernelCopiesEquiv D m), kernel_conjugate,
60     trace_piEnd]
61   apply Finset.sum_congr rfl
62   intro i _
63   rw [trace_piEnd]
64   simp
65 
66 /-- Coefficient comparison concerns the actual kernel polynomial here. -/
67 theorem common_kernel_polynomial {E : Type*} [CommRing E] (σ : E →+* K)
68     (D : ∀ i, Datum q (W i)) (m : I → ℕ) (P : I → Polynomial E)
69     (hP : ∀ i, kernelCharpoly (D i) = (P i).map σ) :
70     kernelCharpoly (copiesDatum D m) = (∏ i, P i ^ m i).map σ := by
71   rw [kernel_charpoly_product]
72   simp [hP, Polynomial.map_prod]
73 
74 end PaperX.MonodromyKernels

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: a464866c337adfd60343e9769ff00a4f5a54407526586c4bdee2e4691cc1c3ae

Original source on GitHub

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