feat: define multivariate restricted power series#32692
feat: define multivariate restricted power series#32692WilliamCoram wants to merge 22 commits intoleanprover-community:masterfrom
Conversation
|
re refactoring: I can do this after people think this new set up is acceptable. |
PR summary e7f2949fc6Import changes for modified filesNo significant changes to the import graph Import changes for all files
|
Thanks for the cleaning up, most of the proofs look a lot nicer now. |
jcommelin
left a comment
There was a problem hiding this comment.
Thanks for your PR. I've left some comments. Some of them also apply to similar code below them. Please extrapolate.
…oram/mathlib4 into MVRestrictedPowerSeries
Thanks for the review. I think I have found all the suggested changes. |
|
This pull request has conflicts, please merge |
| lemma isRestricted.smul (c : σ → ℝ) {f : MvPowerSeries σ R} (hf : IsRestricted c f) (r : R) : | ||
| IsRestricted c (r • f) := by | ||
| rw [← isRestricted_abs_iff, IsRestricted] at * | ||
| refine tendsto_const_nhds.squeeze ((hf.const_mul ‖r‖).trans_eq (by simp)) (fun n ↦ ?_) fun n ↦ ?_ | ||
| · dsimp [Finsupp.prod]; positivity | ||
| simp only [map_smul, smul_eq_mul, Pi.abs_apply, ← mul_assoc] | ||
| exact mul_le_mul_of_nonneg_right (norm_mul_le _ _) (by dsimp [Finsupp.prod]; positivity) |
There was a problem hiding this comment.
Can you generalize this to take (r : S) with Algebra S R and some typeclass about the norm and smul so that nsmul and zsmul are unnecessary?
There was a problem hiding this comment.
For now I have removed this from the PR, I will have a think about how I could do this.
However, this was initially towards proving they formed a ring - instead I added instances showing they are ring via showing a subring then pushing to its own type. Let me know if this is the idiomatic way to do this, and in the future I can add a more general smul lemma in - if/when I need it.
erdOne
left a comment
There was a problem hiding this comment.
Also can you resolve the comments that you have dealt with already? Thanks.
| lemma Finset.nonempty_antidiagonal {M : Type*} [AddMonoid M] [Finset.HasAntidiagonal M] (a : M) : | ||
| (Finset.antidiagonal a).Nonempty := | ||
| ⟨(0, a), by simp⟩ | ||
|
|
||
| open Filter Pointwise in | ||
| lemma tendsto_sup'_antidiagonal_cofinite | ||
| {M R : Type*} [AddMonoid M] [Finset.HasAntidiagonal M] {f : M × M → R} | ||
| [LinearOrder R] {F : Filter R} (hf : Tendsto f cofinite F) : | ||
| Tendsto (fun a ↦ (Finset.antidiagonal a).sup' (Finset.nonempty_antidiagonal _) f) | ||
| cofinite F := by | ||
| intro U hU | ||
| refine ((((hf hU).image Prod.fst)).add ((hf hU).image Prod.snd)).subset ?_ | ||
| simp only [Set.subset_def, Set.mem_compl_iff, Set.mem_preimage] | ||
| intro x hx | ||
| obtain ⟨i, hi, e⟩ := Finset.exists_mem_eq_sup' (Finset.nonempty_antidiagonal x) f | ||
| obtain rfl : i.1 + i.2 = x := by simpa using hi | ||
| exact Set.add_mem_add (by simpa using ⟨i.2, e ▸ hx⟩) (by simpa using ⟨i.1, e ▸ hx⟩) |
There was a problem hiding this comment.
I think these two lemmas now belong somewhere else.
There was a problem hiding this comment.
I have moved these, I think the first is okay to be moved to the file Mathlib/Algebra/Order/Antidiag/Prod.lean. However, I do not believe where I placed the second one is correct - I will have a think about it more, but if you have any ideas let me know.
We define multivariate restricted power series over a normed ring R, and show the properties that they form a ring when R has the ultrametric property.
This work generalises my previous work in #26089 which will need to be refactored.