Paper X · Lean source
NormSignGeometry.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 (3)
PaperX/NormSignGeometry.lean98 lines
Original source path
current_continuation/lean/PaperX/NormSignGeometry.leanSkip declarations and read code
1 import PaperX.CountingBoundaryTransport
2 import PaperX.LatticeCountingFull
3 import PaperX.IdealClassQuantitativeGeometry
4
5 /-! Sign restrictions on the actual number-field cone retain its boundary atlas.
6 This module uses the product of the real embedding coordinates; no field-norm
7 congruence is inferred by ignoring its sign. -/
8 set_option autoImplicit false
9 noncomputable section
10
11 namespace PaperX.NormSignGeometry
12 open Set MeasureTheory Module
13 open NumberField NumberField.InfinitePlace NumberField.mixedEmbedding
14 open NumberField.mixedEmbedding.fundamentalCone
15 open scoped Classical Pointwise
16
17 /-- Cutting along the sign of a continuous nonvanishing function creates no new
18 frontier away from the old frontier. -/
19 theorem frontier_positive_restriction {E : Type*} [TopologicalSpace E]
20 {D : Set E} {f : E → ℝ} (hf : Continuous f)
21 (hne : ∀ x ∈ D, f x ≠ 0) :
22 frontier (D ∩ {x | 0 < f x}) ⊆ frontier D := by
23 intro x hx
24 rcases frontier_inter_subset D {x | 0 < f x} hx with h | h
25 · exact h.1
26 · by_cases hxD : x ∈ D
27 · have he : (0 : ℝ) = f x := frontier_lt_subset_eq continuous_const hf h.2
28 exact False.elim (hne x hxD he.symm)
29 · exact ⟨h.1, fun hi => hxD (interior_subset hi)⟩
30
31 variable (K : Type*) [Field K] [NumberField K]
32
33 /-- The real-coordinate product whose sign records the real embedding signs. -/
34 def realProduct (x : mixedSpace K) : ℝ := ∏ w : {w : InfinitePlace K // IsReal w}, x.1 w
35
36 theorem realProduct_continuous : Continuous (realProduct K) := by
37 unfold realProduct
38 fun_prop
39
40 theorem realProduct_ne_zero {x : mixedSpace K} (hx : x ∈ normLeOne K) :
41 realProduct K x ≠ 0 := by
42 apply Finset.prod_ne_zero_iff.mpr
43 intro w _
44 have h := fundamentalCone.normAtPlace_pos_of_mem hx.1 w.1
45 rw [normAtPlace_apply_of_isReal w.2] at h
46 exact norm_pos_iff.mp h
47
48 /-- The two real-sign portions of the actual unit cone. -/
49 def signCone (positive : Bool) : Set (mixedSpace K) :=
50 normLeOne K ∩ {x | 0 < if positive then realProduct K x else -realProduct K x}
51
52 theorem signCone_frontier_subset (positive : Bool) :
53 frontier (signCone K positive) ⊆ frontier (normLeOne K) := by
54 apply frontier_positive_restriction
55 · cases positive <;> simp only [Bool.false_eq_true, ↓reduceIte] <;>
56 first | exact (realProduct_continuous K).neg | exact realProduct_continuous K
57 · intro x hx
58 cases positive <;> simp only [Bool.false_eq_true, ↓reduceIte, neg_ne_zero] <;>
59 exact realProduct_ne_zero K hx
60
61 theorem signCone_measurable (positive : Bool) : MeasurableSet (signCone K positive) := by
62 apply (measurableSet_normLeOne K).inter
63 apply measurableSet_lt measurable_const
64 cases positive <;> simp only [Bool.false_eq_true, ↓reduceIte] <;>
65 first | exact (realProduct_continuous K).neg.measurable | exact (realProduct_continuous K).measurable
66
67 theorem signCone_bounded (positive : Bool) : Bornology.IsBounded (signCone K positive) :=
68 (isBounded_normLeOne K).subset inter_subset_left
69
70 theorem signCone_disjoint : Disjoint (signCone K true) (signCone K false) := by
71 rw [Set.disjoint_left]
72 intro x hx hy
73 have hp : 0 < realProduct K x := hx.2
74 have hn : 0 < -realProduct K x := hy.2
75 linarith
76
77 theorem signCone_union : signCone K true ∪ signCone K false = normLeOne K := by
78 apply Set.Subset.antisymm
79 · exact union_subset inter_subset_left inter_subset_left
80 · intro x hx
81 rcases lt_or_gt_of_ne (realProduct_ne_zero K hx) with hn | hp
82 · exact Or.inr ⟨hx, neg_pos.mpr hn⟩
83 · exact Or.inl ⟨hx, hp⟩
84
85 /-- The already constructed actual boundary charts also cover either sign portion. -/
86 def signConeAtlas {ι : Type*} [Fintype ι]
87 (e : mixedSpace K ≃L[ℝ] (ι → ℝ))
88 (hcard : Fintype.card ι = Module.finrank ℚ K) (positive : Bool) :
89 LatticeCounting.LipschitzBoundaryAtlas ι (e '' signCone K positive) :=
90 { CountingBoundaryPolar.boundaryAtlas_image K e hcard with
91 covers := by
92 intro y hy
93 apply (CountingBoundaryPolar.boundaryAtlas_image K e hcard).covers
94 have hs := Set.image_mono (f := e.toHomeomorph) (signCone_frontier_subset K positive)
95 rw [e.toHomeomorph.image_frontier, e.toHomeomorph.image_frontier] at hs
96 exact hs hy }
97
98 end PaperX.NormSignGeometry
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: 08a14279c97ac6cddde693d425d4fba92a1d84087de74e0e3c64457d1c375c25
Back to Paper X: Universal Residual Seeds and Conditional Occupied-System Completion