Paper IX · Lean source
DyadicIsometryControls.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.
strengthening/formalization/DyadicIsometryControls.lean67 lines
Original source path
preserved/PRSC_IX_Consolidated_Manuscript/strengthening/formalization/DyadicIsometryControls.leanSkip declarations and read code
1 module
2 public import DyadicFourIsometry
3 public import Mathlib.NumberTheory.Padics.RingHoms
4
5 @[expose] public section
6 noncomputable section
7 set_option autoImplicit false
8
9 namespace KomorebiPaperIX.DyadicIsometryControls
10
11 open DyadicFourIsometry
12
13 /-- A concrete value confirms the normalization and its sign. -/
14 theorem address_zero_at_one : isometry 0 (by decide) (1 : ℤ_[2]) = -1 := by
15 have hr : DyadicPacketRational.packet 0 1 = (-1 : ℚ) := by
16 norm_num [DyadicPacketRational.packet, Congruential.unnormalized,
17 DyadicFourLeastPeriods.originalBonus, DyadicFourPrefix.bonus,
18 DyadicFourPrefix.coeff_0_1]
19 apply Subtype.ext
20 have h := isometry_nat 0 (by decide) 1
21 simpa [hr] using h
22
23 /-- The next exact value detects that the isometry is not additive. -/
24 theorem address_zero_at_two : isometry 0 (by decide) (2 : ℤ_[2]) = 34 := by
25 have hr : DyadicPacketRational.packet 0 2 = (34 : ℚ) := by
26 norm_num [DyadicPacketRational.packet, Congruential.unnormalized,
27 DyadicFourLeastPeriods.originalBonus, DyadicFourPrefix.bonus,
28 DyadicFourPrefix.coeff_0_2]
29 apply Subtype.ext
30 have h := isometry_nat 0 (by decide) 2
31 change ((isometry 0 (by decide) (2 : ℤ_[2])) : ℚ_[2]) = (34 : ℚ_[2])
32 simpa [hr] using h
33
34 /-- A metric isometry does not thereby become an additive or ring homomorphism. -/
35 theorem address_zero_not_additive :
36 ¬ ∀ x y : ℤ_[2], isometry 0 (by decide) (x + y) =
37 isometry 0 (by decide) x + isometry 0 (by decide) y := by
38 intro h
39 have hh := h 1 1
40 norm_num [address_zero_at_one, address_zero_at_two] at hh
41
42 /-- The inverse recovers the nontrivial second rational sample. -/
43 theorem address_zero_inverse_at_thirty_four :
44 (isometry 0 (by decide)).symm (34 : ℤ_[2]) = 2 := by
45 rw [← address_zero_at_two]
46 exact (isometry 0 (by decide)).symm_apply_apply 2
47
48 /-- The unnormalized address-zero packet stays in the odd residue class. -/
49 theorem original_address_zero_ne_zero (x : ℤ_[2]) :
50 originalExtension 0 (by decide) x ≠ 0 := by
51 intro hx
52 have h := congrArg (PadicInt.toZMod : ℤ_[2] →+* ZMod 2) hx
53 have ht : PadicInt.toZMod (2 : ℤ_[2]) = (0 : ZMod 2) := by
54 change PadicInt.toZMod ((2 : ℕ) : ℤ_[2]) = 0
55 rw [map_natCast]
56 exact ZMod.natCast_self 2
57 norm_num [originalExtension, DyadicFourLeastPeriods.originalBonus,
58 DyadicFourPrefix.bonus, ht] at h
59
60 /-- The original affine image is not the whole dyadic integer ring. -/
61 theorem original_address_zero_not_surjective :
62 ¬ Function.Surjective (originalExtension 0 (by decide)) := by
63 intro h
64 obtain ⟨x, hx⟩ := h 0
65 exact original_address_zero_ne_zero x hx
66
67 end KomorebiPaperIX.DyadicIsometryControls
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: b4f813406c69b1d9c37766c388be658d82e900f2efdccc864a5d41458b6625b3
Back to Paper IX: Arithmetic Packets, Dyadic Towers, and Local Polynomial Deformation