Zulip Chat Archive
Stream: maths
Topic: Infinite sums of power series
Antoine Chambert-Loir (Jun 25 2023 at 12:43):
I need to to teach Lean about power_series, substitution of other power_series, etc.
I can imagine three possibilities:
-
for algebraic purposes, what is really needed is to have (infinite) sums of power series which have finite support coefficientwise,
which requires to build an API for something likepointwise_finsupp
(orlocally_finsupp
). -
but the easiest mathematical way to say it is to endow the ring of coefficients with the discrete topology, the ring of power series with the product topology, and then it's the classical theory of summable families, as for docs#tsum
This is what Bourbaki does (Algebra, chapter IV, §4). -
and if the ring of coefficients already has some topology, we could in principle deal with it, except that if the topology is not Hausdorff, there is no uniqueness of limits, which is ridiculous in the case of interest.
Do you have an opinion of the best way to handle this? Define a continuous docs#ring_equiv from mv_power_series S (discrete R)
to mv_power_series S R
, where discrete R
is the topological ring given by R
and the discrete topology, and observe that it maps pointwise finitely supported families to summable families?
Johan Commelin (Jun 25 2023 at 14:47):
Do we know any real-world maths examples where there is a relevant topology on the ring of coefficients?
Johan Commelin (Jun 25 2023 at 14:48):
If not, I think it would be best to hide the discrete topology behind some API, so that users never have to think about a topology on the coefficients.
And yes, linking to tsum
asap sounds like a good idea.
Jireh Loreaux (Jun 25 2023 at 15:02):
I mean, what about \Q
or \R
? Surely that comes up.
Michael Stoll (Jun 25 2023 at 15:46):
If you have a power series expansion of a holomorphic function, you may want to "shift" it, e.g.
Here you get infinite sums for the coefficients of the result (which you need to converge), so this is slightly different from the original question, but it might still be reasonable to allow for this.
Yury G. Kudryashov (Jun 25 2023 at 18:43):
We have a very general version of this shift in docs#FormalMultilinearSeries.changeOrigin
Anatole Dedecker (Jun 25 2023 at 21:06):
To me the natural thing to do would be to define evaluation of a power series and the topology on power series when we have a topology on the ring, and then in places where the topology doesn't matter (typically substitution by a multiple of X
) you can just remove it from the assumptions and add the discrete topology by hand (maybe we need a discretize
tactic?). But of course if we want to substitute power series with a nonzero constant coefficient we need to care about the topology (and prove everything converges).
Anatole Dedecker (Jun 25 2023 at 21:07):
To define evaluation a naive hope would be to construct a docs#FormalMultilinearSeries from a power series, but I'm guessing assumptions don't match up
Kevin Buzzard (Jun 25 2023 at 21:16):
This is extremely delicate in number theory because there are various power series rings which genuinely have more than one topology on them (in the sense that number theorists want more than one topology on them). For example I have seen papers talking about the -adic, the -adic, and the -adic topology on . My instinct is that we should not be putting any topology on globally, but make the -adic topology (the one where neighbourhoods of 0 are ) available as a def
and so people can add it as a local instance when it's the one they care about. When has a topology one has to decide whether tends to zero or not as , and in number theory sometimes the answer is yes and sometimes it's no.
Antoine Chambert-Loir (Jun 25 2023 at 21:25):
Yury G. Kudryashov said:
We have a very general version of this shift in docs#FormalMultilinearSeries.changeOrigin
This is over fields only, and that does not suffice for algebra.
Anatole Dedecker (Jun 25 2023 at 21:27):
I think Yury was answering Michael's comment.
Anatole Dedecker (Jun 25 2023 at 21:31):
Kevin Buzzard said:
This is extremely delicate in number theory because there are various power series rings which genuinely have more than one topology on them (in the sense that number theorists want more than one topology on them). For example I have seen papers talking about the -adic, the -adic, and the -adic topology on . My instinct is that we should not be putting any topology on globally, but make the -adic topology (the one where neighbourhoods of 0 are ) available as a
def
and so people can add it as a local instance when it's the one they care about. When has a topology one has to decide whether tends to zero or not as , and in number theory sometimes the answer is yes and sometimes it's no.
I'm no number theorist so don't take my opinion too seriously, but to me this seems like a "we will need type aliases anyways", and since the product topology on coefficients (I think this is the -adic topology in your case?) works and gives a natural result in all cases we shouldn't be afraid to make it an instance. This is similar to how we have docs#ContinousLineaMap.hasOpNorm and then things like docs#WeakDual for more specific cases.
Kevin Buzzard (Jun 25 2023 at 21:37):
The -adic topology is: "ignore any topology on and make a basis of neighbourhoods of 0", so it's "give R
the discrete topology, identify with Nat -> R
and give it the product topology"
Antoine Chambert-Loir (Jun 25 2023 at 21:44):
Apparently, most lemmas assume the topology is given as an instance. Once thing I don't know how to do then, is how to make Lean work with multiple topologies at the same time.
Kevin Buzzard (Jun 25 2023 at 22:33):
You can use a type synonym. Def Y := X
will forget any topology on X
so you can put a new topology on Y
.
Kevin Buzzard (Jun 25 2023 at 22:34):
Alternatively you just put @
everywhere and feed the right topology into the lemmas.
Johan Commelin (Jun 26 2023 at 03:53):
@Antoine Chambert-Loir I will revise my recommendation: assume that R
has a topology, and use that for the full development.
Also, in the first attempt, just make everything an instance. We can worry about uninstancing things once the development is done.
Johan Commelin (Jun 26 2023 at 03:56):
Note that if we require that R
has a topology, then we can add [DiscreteTopology R]
as a condition to require that it is discrete, in case where we want to do abstract algebra.
We can figure out later whether that means we will sometimes use Discrete \Z_p
as ring of coefficients, or whether there will be an AlgebraicPowerSeries \Z_p
that forces a discrete topology on \Z_p
. Or whether we manage the whole thing with instances that are locally switched on and off.
Last updated: Dec 20 2023 at 11:08 UTC