@@ -2,17 +2,19 @@ import Mathlib
2
2
3
3
open Polynomial Classical Filter
4
4
5
+ abbrev R2 : Type := EuclideanSpace ℝ (Fin 2 )
6
+
5
7
variable (d : ℕ)
6
- variable (a : EuclideanSpace ℝ (Fin 2 ) → ℝ)
8
+ variable (a : R2 → ℝ)
7
9
variable (δ : ℝ) (hδ : δ > 0 )
8
10
variable (c_δ : ℝ) (hc_δ : c_δ > 0 )
9
11
variable {K : ℝ}
10
12
variable (M₀ : ℝ) (hM₀ : M₀ > 1 )
11
- noncomputable def b (a : EuclideanSpace ℝ (Fin 2 ) → ℝ) (δ : ℝ) : (EuclideanSpace ℝ (Fin 2 ) ) → ℝ
13
+ noncomputable def b (a : R2 → ℝ) (δ : ℝ) : (R2 ) → ℝ
12
14
:= fun x ↦ Real.exp ((2 + δ) * Real.log (1 + ‖x‖)) * a x
13
15
14
16
-- -- the orthonormal basis on R^d
15
- -- noncomputable def R2Basis {d : ℕ} := stdOrthonormalBasis ℝ (EuclideanSpace ℝ (Fin 2) )
17
+ -- noncomputable def R2Basis {d : ℕ} := stdOrthonormalBasis ℝ (R2 )
16
18
-- the orthonormal basis on R^2.
17
19
-- no implicit variable d
18
20
noncomputable def R2Basis := EuclideanSpace.basisFun (Fin 2 ) ℝ
@@ -39,7 +41,6 @@ noncomputable def Z2 := Submodule.span ℤ (Set.range (R2Basis))
39
41
noncomputable def Z2' := Submodule.span ℤ (Set.range (Z2Basis))
40
42
noncomputable def Z2'' := AddSubgroup.closure (Set.range (R2Basis))
41
43
42
- abbrev R2 : Type := (EuclideanSpace ℝ (Fin 2 ))
43
44
variable (w : R2) (h : w ∈ Z2)
44
45
45
46
@@ -149,29 +150,29 @@ open MeasureTheory.Measure
149
150
open InnerProductSpace.Core
150
151
151
152
-- -- the counting measure on the lattice Z^d
152
- -- noncomputable def countZ2 : Measure (EuclideanSpace ℝ (Fin 2) ) :=
153
+ -- noncomputable def countZ2 : Measure (R2 ) :=
153
154
-- sum (fun x ↦ if x ∈ Z2 then dirac x else 0)
154
155
155
156
-- the counting measure on the lattice Z^2
156
- noncomputable def countZ2 : MeasureTheory.Measure (EuclideanSpace ℝ (Fin 2 ) ) :=
157
+ noncomputable def countZ2 : MeasureTheory.Measure (R2 ) :=
157
158
sum (fun x ↦ if x ∈ Z2 then dirac x else 0 )
158
159
159
160
-- -- n-times convolution with itself
160
- -- noncomputable def convolution_self : ℕ → ((EuclideanSpace ℝ (Fin 2) → ℝ) → (EuclideanSpace ℝ (Fin 2) → ℝ))
161
+ -- noncomputable def convolution_self : ℕ → ((R2 → ℝ) → (R2 → ℝ))
161
162
-- | 0 => fun f ↦ (fun x ↦ 1)
162
163
-- | n + 1 => fun f ↦ (convolution f ((convolution_self n) f) (ContinuousLinearMap.lsmul ℝ ℝ) (countZ2 d))
163
164
164
165
-- n-times convolution with itself on Z2
165
- noncomputable def convolution_self2 : ℕ → ((EuclideanSpace ℝ (Fin 2 ) → ℝ) → (EuclideanSpace ℝ (Fin 2 ) → ℝ))
166
+ noncomputable def convolution_self2 : ℕ → ((R2 → ℝ) → (R2 → ℝ))
166
167
| 0 => fun f ↦ (fun x ↦ 1 )
167
168
| n + 1 => fun f ↦ (convolution f ((convolution_self2 n) f) (ContinuousLinearMap.lsmul ℝ ℝ) countZ2)
168
169
169
170
170
- variable (P1 : ∀ (x : EuclideanSpace ℝ (Fin 2 ) ), a x > 0 )
171
- variable (P2 : ∀ (x : EuclideanSpace ℝ (Fin 2 ) ), a x ≤ c_δ * Real.exp (-2 * (2 + δ) * Real.log (1 + ‖x‖)))
172
- variable (P3 : ∀ (x y : EuclideanSpace ℝ (Fin 2 ) ) (hP3 : ‖y‖ ≤ 2 * NNReal.sqrt 2 ), b a δ (x + y) / b a δ x ≤ K)
173
- variable (P4 : ∃ (c ε : ℝ) (hP4 : ε > 0 ), ∀ (n : ℕ) (x : EuclideanSpace ℝ (Fin 2 ) ), (convolution_self2 n) (b a δ) (x) ≤ c^n * (b a δ (ε • x)))
174
- variable (P5 : ∀ (x x' : EuclideanSpace ℝ (Fin 2 ) ) (hP5 : M₀ ≤ ‖x‖ ∧ ‖x‖ ≤ ‖x'‖), b a δ x ≥ b a δ x')
171
+ variable (P1 : ∀ (x : R2 ), a x > 0 )
172
+ variable (P2 : ∀ (x : R2 ), a x ≤ c_δ * Real.exp (-2 * (2 + δ) * Real.log (1 + ‖x‖)))
173
+ variable (P3 : ∀ (x y : R2 ) (hP3 : ‖y‖ ≤ 2 * NNReal.sqrt 2 ), b a δ (x + y) / b a δ x ≤ K)
174
+ variable (P4 : ∃ (c ε : ℝ) (hP4 : ε > 0 ), ∀ (n : ℕ) (x : R2 ), (convolution_self2 n) (b a δ) (x) ≤ c^n * (b a δ (ε • x)))
175
+ variable (P5 : ∀ (x x' : R2 ) (hP5 : M₀ ≤ ‖x‖ ∧ ‖x‖ ≤ ‖x'‖), b a δ x ≥ b a δ x')
175
176
176
177
177
178
lemma A2_1 : ∀ (p : ℝ[X]), ∃ (N : ℝ), ∀ (x : ℝ), x ≥ N → |p.eval x| < Real.exp x := by
@@ -258,9 +259,9 @@ lemma IsFiniteBoundedSetIntegers : ∀ (M : ℝ) (hM : 1 ≤ M), Set.Finite {n :
258
259
259
260
260
261
261
- -- lemma A2_2 : ∀ (M : ℝ) (hM : 1 ≤ M), Set.Finite {x : EuclideanSpace ℝ (Fin 2) | x ∈ Z2 ∧ ‖x‖ ≤ M} := by
262
+ -- lemma A2_2 : ∀ (M : ℝ) (hM : 1 ≤ M), Set.Finite {x : R2 | x ∈ Z2 ∧ ‖x‖ ≤ M} := by
262
263
-- intro M hM
263
- -- have hxleMi : {x : EuclideanSpace ℝ (Fin 2) | x ∈ Z2 ∧ ‖x‖ ≤ M} ⊆ {x : EuclideanSpace ℝ (Fin 2) | x ∈ Z2 ∧ ∀ (ι : (Fin 2)), |x ι| ≤ M} := by
264
+ -- have hxleMi : {x : R2 | x ∈ Z2 ∧ ‖x‖ ≤ M} ⊆ {x : R2 | x ∈ Z2 ∧ ∀ (ι : (Fin 2)), |x ι| ≤ M} := by
264
265
-- -- this is a subset of all x with |x_i| < M
265
266
-- simp
266
267
-- intro x hxZ2 hx_M
@@ -278,7 +279,7 @@ lemma IsFiniteBoundedSetIntegers : ∀ (M : ℝ) (hM : 1 ≤ M), Set.Finite {n :
278
279
-- exact Finset.single_le_sum hnorm2 (Finset.mem_univ ι)
279
280
-- exact le_trans this hx_M
280
281
281
- -- have hleMifin : Set.Finite {x : EuclideanSpace ℝ (Fin 2) | x ∈ Z2 ∧ ∀ (ι : (Fin 2)), |x ι| ≤ M} := by
282
+ -- have hleMifin : Set.Finite {x : R2 | x ∈ Z2 ∧ ∀ (ι : (Fin 2)), |x ι| ≤ M} := by
282
283
-- -- the latter is a finite set : M^d
283
284
-- simp
284
285
@@ -334,9 +335,9 @@ lemma A2_2 (M : ℝ) (hM : M > 0) : Set.Finite {x ∈ Z2 | ‖x‖ ≤ M} := by
334
335
· exact hxiconvpi
335
336
intro i
336
337
exact hpint i
337
- have BallDef : {x : (EuclideanSpace ℝ (Fin 2 )) | dist x 0 ≤ M} = {x : (EuclideanSpace ℝ (Fin 2 ) )| ‖x‖ ≤ M} := by
338
+ have BallDef : {x : (R2) | dist x 0 ≤ M} = {x : (R2 )| ‖x‖ ≤ M} := by
338
339
simp
339
- have BallClosed : IsClosed {x : (EuclideanSpace ℝ (Fin 2 ) )| ‖x‖ ≤ M} := by
340
+ have BallClosed : IsClosed {x : (R2 )| ‖x‖ ≤ M} := by
340
341
rw [← BallDef]
341
342
exact Metric.isClosed_ball
342
343
exact IsClosed.inter Z2Closed BallClosed
@@ -474,7 +475,6 @@ lemma A2 : ∃ (M' : ℝ), ∀ (x : R2), x ∈ Z2 → (b a δ (M' • x) ≤ b a
474
475
let S' := {x : R2 | x ∈ Z2 ∧ ‖x‖ ≤ M₀}
475
476
have hSS' : S ⊆ S' := by
476
477
intro x hx
477
- simp
478
478
exact And.intro hx.1 hx.2 .1
479
479
let hS' := A2_2 M₀ (lt_trans zero_lt_one hM₀)
480
480
let hS := Set.Finite.subset hS' hSS'
0 commit comments