feat(NumberTheory/Modular): interior and closure of fundamental domain#35946
Open
loefflerd wants to merge 1 commit intoleanprover-community:masterfrom
Open
feat(NumberTheory/Modular): interior and closure of fundamental domain#35946loefflerd wants to merge 1 commit intoleanprover-community:masterfrom
loefflerd wants to merge 1 commit intoleanprover-community:masterfrom
Conversation
PR summary 693459cd7a
|
| File | Base Count | Head Count | Change |
|---|---|---|---|
| Mathlib.NumberTheory.Modular | 2097 | 2098 | +1 (+0.05%) |
Import changes for all files
| Files | Import difference |
|---|---|
Mathlib.NumberTheory.Modular |
1 |
Declarations diff
+ coe_fd
+ coe_fdo
+ fd_eq_closure_fdo
+ fdo_eq_interior_fd
+ fdo_subset_fd
+ isClosed_coe_fd
+ isClosed_fd
+ isOpenMap_norm
+ isOpenMap_re
+ isOpen_fdo
+ mem_closure_of_arc
+ mem_closure_of_one_lt_norm
+ one_le_normSq_iff
+ one_lt_normSq_iff
You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>
## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>The doc-module for scripts/declarations_diff.sh contains some details about this script.
No changes to technical debt.
You can run this locally as
./scripts/technical-debt-metrics.sh pr_summary
- The
relativevalue is the weighted sum of the differences with weight given by the inverse of the current value of the statistic. - The
absolutevalue is therelativevalue divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).
CBirkbeck
reviewed
Mar 3, 2026
Collaborator
CBirkbeck
left a comment
There was a problem hiding this comment.
This all looks good, I only have these minor golfs.
Comment on lines
+585
to
+591
| have : ContinuousAt (fun a : ℝ ↦ (UpperHalfPlane.ofComplex (a * x : ℂ) : ℂ)) 1 := by | ||
| apply ContinuousAt.comp | ||
| · fun_prop | ||
| · apply ContinuousAt.comp | ||
| · apply OpenPartialHomeomorph.continuousAt | ||
| simpa [UpperHalfPlane.ofComplex] using x.coe_im_pos | ||
| · fun_prop |
Collaborator
There was a problem hiding this comment.
Suggested change
| have : ContinuousAt (fun a : ℝ ↦ (UpperHalfPlane.ofComplex (a * x : ℂ) : ℂ)) 1 := by | |
| apply ContinuousAt.comp | |
| · fun_prop | |
| · apply ContinuousAt.comp | |
| · apply OpenPartialHomeomorph.continuousAt | |
| simpa [UpperHalfPlane.ofComplex] using x.coe_im_pos | |
| · fun_prop | |
| have : ContinuousAt (fun a : ℝ ↦ (UpperHalfPlane.ofComplex (a * x : ℂ) : ℂ)) 1 := by | |
| apply ContinuousAt.comp (by fun_prop) | |
| apply ContinuousAt.comp _ (by fun_prop) | |
| apply OpenPartialHomeomorph.continuousAt | |
| simpa [UpperHalfPlane.ofComplex] using x.coe_im_pos |
| simpa [Set.mem_preimage, Set.mem_Icc, abs_le] using hξ.2 | ||
|
|
||
| end Topology | ||
|
|
Comment on lines
+210
to
+211
| obtain ⟨w, -, hw⟩ := hεs this | ||
| exact w.ne_zero hw |
Collaborator
There was a problem hiding this comment.
Suggested change
| obtain ⟨w, -, hw⟩ := hεs this | |
| exact w.ne_zero hw | |
| simpa [UpperHalfPlane.ne_zero] using hεs this |
| simp [← normSq_eq_norm_sq, normSq_apply] | ||
| ring | ||
| rw [hxnorm, one_pow, add_assoc, lt_add_iff_pos_right] | ||
| rw [← NNReal.coe_pos] at ha |
Collaborator
There was a problem hiding this comment.
Suggested change
| rw [← NNReal.coe_pos] at ha |
Comment on lines
+637
to
+641
| rw [UpperHalfPlane.isOpenEmbedding_coe.tendsto_nhds_iff, Function.comp_def] | ||
| dsimp only | ||
| rw [show 𝓝 (x : ℂ) = 𝓝 (x + (((0 : ℝ≥0) : ℝ) : ℂ) * Complex.I) by simp] | ||
| apply Continuous.tendsto | ||
| fun_prop |
Collaborator
There was a problem hiding this comment.
Suggested change
| rw [UpperHalfPlane.isOpenEmbedding_coe.tendsto_nhds_iff, Function.comp_def] | |
| dsimp only | |
| rw [show 𝓝 (x : ℂ) = 𝓝 (x + (((0 : ℝ≥0) : ℝ) : ℂ) * Complex.I) by simp] | |
| apply Continuous.tendsto | |
| fun_prop | |
| rw [UpperHalfPlane.isOpenEmbedding_coe.tendsto_nhds_iff, Function.comp_def, | |
| show 𝓝 (x : ℂ) = 𝓝 (x + (((0 : ℝ≥0) : ℝ) : ℂ) * Complex.I) by simp] | |
| apply Continuous.tendsto | |
| fun_prop |
Comment on lines
+592
to
+594
| have := this.tendsto | ||
| rw [UpperHalfPlane.ofComplex_apply_of_im_pos (by simpa using x.coe_im_pos)] at this | ||
| simpa |
Collaborator
There was a problem hiding this comment.
Suggested change
| have := this.tendsto | |
| rw [UpperHalfPlane.ofComplex_apply_of_im_pos (by simpa using x.coe_im_pos)] at this | |
| simpa | |
| simpa [UpperHalfPlane.ofComplex_apply_of_im_pos (by simpa using x.coe_im_pos)] using | |
| this.tendsto |
Comment on lines
+651
to
+672
| lemma fdo_eq_interior_fd : 𝒟ᵒ = interior 𝒟 := by | ||
| refine subset_antisymm (isOpen_fdo.subset_interior_iff.mpr fdo_subset_fd) ?_ | ||
| have ho1 := UpperHalfPlane.isOpenMap_re.image_interior_subset 𝒟 | ||
| have ho2 := UpperHalfPlane.isOpenMap_norm.image_interior_subset 𝒟 | ||
| intro x hx | ||
| constructor | ||
| · rw [Set.image_subset_iff] at ho2 | ||
| have := ho2 hx | ||
| rw [Set.mem_preimage] at this | ||
| rw [one_lt_normSq_iff, ← Set.mem_Ioi, ← interior_Ici] | ||
| apply Set.mem_of_mem_of_subset this (interior_mono ?_) | ||
| rw [Set.image_subset_iff] | ||
| intro ξ hξ | ||
| simpa [Set.mem_preimage, Set.mem_Ici, one_le_normSq_iff] using hξ.1 | ||
| · rw [Set.image_subset_iff] at ho1 | ||
| have := ho1 hx | ||
| rw [Set.mem_preimage] at this | ||
| rw [abs_lt, ← Set.mem_Ioo, ← interior_Icc] | ||
| apply Set.mem_of_mem_of_subset this (interior_mono ?_) | ||
| rw [Set.image_subset_iff] | ||
| intro ξ hξ | ||
| simpa [Set.mem_preimage, Set.mem_Icc, abs_le] using hξ.2 |
Collaborator
There was a problem hiding this comment.
Suggested change
| lemma fdo_eq_interior_fd : 𝒟ᵒ = interior 𝒟 := by | |
| refine subset_antisymm (isOpen_fdo.subset_interior_iff.mpr fdo_subset_fd) ?_ | |
| have ho1 := UpperHalfPlane.isOpenMap_re.image_interior_subset 𝒟 | |
| have ho2 := UpperHalfPlane.isOpenMap_norm.image_interior_subset 𝒟 | |
| intro x hx | |
| constructor | |
| · rw [Set.image_subset_iff] at ho2 | |
| have := ho2 hx | |
| rw [Set.mem_preimage] at this | |
| rw [one_lt_normSq_iff, ← Set.mem_Ioi, ← interior_Ici] | |
| apply Set.mem_of_mem_of_subset this (interior_mono ?_) | |
| rw [Set.image_subset_iff] | |
| intro ξ hξ | |
| simpa [Set.mem_preimage, Set.mem_Ici, one_le_normSq_iff] using hξ.1 | |
| · rw [Set.image_subset_iff] at ho1 | |
| have := ho1 hx | |
| rw [Set.mem_preimage] at this | |
| rw [abs_lt, ← Set.mem_Ioo, ← interior_Icc] | |
| apply Set.mem_of_mem_of_subset this (interior_mono ?_) | |
| rw [Set.image_subset_iff] | |
| intro ξ hξ | |
| simpa [Set.mem_preimage, Set.mem_Icc, abs_le] using hξ.2 | |
| lemma fdo_eq_interior_fd : 𝒟ᵒ = interior 𝒟 := by | |
| refine subset_antisymm (isOpen_fdo.subset_interior_iff.mpr fdo_subset_fd) ?_ | |
| have ho1 := UpperHalfPlane.isOpenMap_re.image_interior_subset 𝒟 | |
| have ho2 := UpperHalfPlane.isOpenMap_norm.image_interior_subset 𝒟 | |
| intro x hx | |
| rw [Set.image_subset_iff] at * | |
| constructor | |
| · rw [one_lt_normSq_iff, ← Set.mem_Ioi, ← interior_Ici] | |
| apply Set.mem_of_mem_of_subset (Set.mem_preimage.mp (ho2 hx)) (interior_mono ?_) | |
| rw [Set.image_subset_iff] | |
| intro ξ hξ | |
| simpa [Set.mem_preimage, Set.mem_Ici, one_le_normSq_iff] using hξ.1 | |
| · rw [abs_lt, ← Set.mem_Ioo, ← interior_Icc] | |
| apply Set.mem_of_mem_of_subset ((Set.mem_preimage.mp (ho1 hx))) (interior_mono ?_) | |
| rw [Set.image_subset_iff] | |
| intro ξ hξ | |
| simpa [Set.mem_preimage, Set.mem_Icc, abs_le] using hξ.2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Show that the open and closed fundamental domains for the modular group are related by the interior / closure operations.