Paper IX · Lean source
PolynomialParameterControls.lean
Selected results recorded Coverage and evidence
Compiler/replay evidence is reported for a subset or bounded block. No whole-work coverage is implied.
This viewer reads the retained source; it does not run Lean or assign new claim mappings.
polynomial_motion/controls/PolynomialParameterControls.lean52 lines
Original source path
preserved/PRSC_IX_Consolidated_Manuscript/polynomial_motion/controls/PolynomialParameterControls.leanSkip declarations and read code
1 module
2 public import PolynomialParameterSystem
3 public import Mathlib.NumberTheory.Padics.RingHoms
4
5 @[expose] public section
6 noncomputable section
7 set_option autoImplicit false
8 namespace Komorebi.PolynomialParameterControls
9 open MvPolynomial PolynomialDigitBridge PolynomialPadicLift PolynomialParameterSystem
10
11 /-- A smooth equation for which the specified first coordinate cannot be solved. -/
12 def squareMinusParameter : Fin 1 → MvPolynomial (Fin (1+1)) ℤ :=
13 fun _ => X 0 ^ 2 - X 1
14
15 theorem full_jacobian_surjective :
16 Function.Surjective (digitJacobian 2 squareMinusParameter (fun _ => 0)) := by
17 intro t
18 refine ⟨![0, -t 0], ?_⟩
19 ext i
20 simp [digitJacobian, squareMinusParameter, Fin.eq_zero i, Fin.sum_univ_two]
21
22 theorem solved_jacobian_zero :
23 solvedJacobian 2 squareMinusParameter (fun _ => 0) = 0 := by
24 ext u i
25 simp [solvedJacobian, squareMinusParameter, Fin.eq_zero i]
26
27 theorem solved_jacobian_not_surjective :
28 ¬ Function.Surjective (solvedJacobian 2 squareMinusParameter (fun _ => 0)) := by
29 rw [solved_jacobian_zero]
30 intro h
31 obtain ⟨u, hu⟩ := h (fun _ => 1)
32 have hi := congrFun hu 0
33 norm_num at hi
34
35 /-- The proposed parameter is in the base residue ball modulo two. -/
36 theorem parameter_two_near_origin : (2 : ℤ_[2]) ∣ (2 : ℤ_[2]) - 0 := by simp
37
38 /-- Prescribing the second coordinate to two has no root, already modulo four. -/
39 theorem no_root_at_parameter_two :
40 ¬ ∃ a : Fin (1+1) → ℤ_[2],
41 padicEval 2 squareMinusParameter a = 0 ∧ a 1 = 2 := by
42 rintro ⟨a, ha, ht⟩
43 have hsq : a 0 ^ 2 = (2 : ℤ_[2]) := by
44 have hi := congrFun ha 0
45 simpa [padicEval, squareMinusParameter, ht, sub_eq_zero] using hi
46 have hmod := congrArg (PadicInt.toZModPow 2) hsq
47 have hnot : ∀ r : ZMod (2^2), r^2 ≠ 2 := by decide
48 have htwo : (2 : ℤ_[2]) = 1 + 1 := by norm_num
49 rw [map_pow, htwo, map_add, map_one] at hmod
50 exact hnot _ (hmod.trans (by decide : (1 : ZMod (2^2)) + 1 = 2))
51
52 end Komorebi.PolynomialParameterControls
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: 43a88e22897c64c0403330d0189827c18eec60bf45c0a85e9ac0eb45d38b7a83
Back to Paper IX: Arithmetic Packets, Dyadic Towers, and Local Polynomial Deformation