Zulip Chat Archive

Stream: condensed mathematics

Topic: spaces of measure / Z((T))_r


Johan Commelin (Jul 22 2021 at 06:47):

We need to formalize the definition of M(S,Z((T))r)\mathcal M(S, \Z((T))_r) and M(S,Z((T))>r)\mathcal M(S, \Z((T))_{>r}) (see top of page 37 of Analytic.pdf).
I think we can first define this as a functor on profinite sets, and then later turn it into a condensed abelian group. Formalizing these definitions might inform our decision about how to define condensed abelian groups.

@Peter Scholze do you have a good name for these gadgets (it doesn't matter if it is long, we can enable M\mathcal M notation afterwards).

Peter Scholze (Jul 22 2021 at 11:09):

Hmm, I don't know about a good name.

Johan Commelin (Jul 22 2021 at 11:33):

Does it make sense to call them something like (overconvergent) integral measures? Sounds like a weird mix...

Filippo A. E. Nuccio (Aug 05 2021 at 15:57):

Am I wrong or the rr in the right-hand side of the definition of Mr(S)c\overline{\mathcal{M}}_{r'}(S)_{\leq c} for finite SS on page 57 of Analytic.pdf should be an rr'?

Johan Commelin (Aug 06 2021 at 10:25):

I pushed a fix

Filippo A. E. Nuccio (Aug 06 2021 at 10:26):

I am slowly starting to think about this, do you know if some advances have already been made?

Johan Commelin (Aug 06 2021 at 11:48):

Nope... not that I know of

Adam Topaz (Aug 06 2021 at 14:05):

@Filippo A. E. Nuccio were you thinking about M(S,Z((T))>r)\mathcal{M}(S,\mathbb{Z}((T))_{> r}) or Mr(S)\overline{\mathcal{M}}_{r'}(S)?

Filippo A. E. Nuccio (Aug 06 2021 at 14:07):

The former (well, actually M(S,Z((T))r)\mathcal{M}(S,\mathbb{Z}((T))_r) for the time being: as defined right before Theorem 6.9 on page 37 of Analytic.pdf).

Adam Topaz (Aug 06 2021 at 14:41):

I guess the definition could start like this:

import ring_theory.laurent_series
import topology.category.Profinite
import topology.locally_constant.algebra
import data.real.nnreal
import topology.algebra.infinite_sum
import analysis.normed_space.basic


noncomputable theory

variables (S : Profinite)

example : comm_ring (locally_constant S ) := by apply_instance -- nice

-- We have this somewhere in LTE.
instance : has_nnnorm (locally_constant S ) :=
λ F,  (s : S),  F s ∥₊

example : comm_ring (laurent_series (locally_constant S )) := by apply_instance -- nice

open_locale nnreal big_operators

def filtration (r c : 0) : set (laurent_series (locally_constant S )) :=
{ F | summable (λ n : ,  F.coeff n ∥₊ * r^n)  -- summability
      (∑' (n : ),  F.coeff n ∥₊ * r^n)  c } -- and bounded by c.

Adam Topaz (Aug 06 2021 at 14:43):

The stuff in https://github.com/leanprover-community/lean-liquid/blob/master/src/locally_constant/analysis.lean should probably move to mathlib soon...

Filippo A. E. Nuccio (Aug 06 2021 at 14:47):

Ah, ok: I was starting in a somewhat different direction but your approach is more valuable, I guess. I am going to have a look in half a hour or so.

Adam Topaz (Aug 06 2021 at 14:48):

Maybe the following is better?

import ring_theory.laurent_series
import topology.category.Profinite
import topology.locally_constant.algebra
import data.real.nnreal
import topology.algebra.infinite_sum
import analysis.normed_space.basic

noncomputable theory

variables (S : Profinite)

open_locale nnreal big_operators

def filtration (r c : 0) : set (laurent_series (locally_constant S )) :=
{ F |  (s : S), summable (λ n : ,  (F.coeff n) s ∥₊ * r^n)  -- summability
                 (∑' (n : ),  (F.coeff n) s ∥₊ * r^n)  c } -- and bounded by c.

Adam Topaz (Aug 06 2021 at 14:49):

At least that should correspond to what's defined on page 36 of analytic.pdf

Adam Topaz (Aug 06 2021 at 14:49):

Proving that these things are profinite sets will be a challenge... (but should go more-or-less similarly to the proof that Mbar_le are profinite)

Filippo A. E. Nuccio (Aug 06 2021 at 14:50):

I had

structure c_measures (r : 0) (c : 0) (S : Type*) (hS : fintype S) :=
(to_fun     : S    S  )
(summable   :  s s', summable (λ n, ((to_fun s n s').nat_abs * r ^ n)))
(bdd        :  s s', tsum (λ n, ((to_fun s n s').nat_abs * r ^ n))  c)

structure oc_measures (r : 0) (S : Type*) (hS : fintype S) :=
(to_fun      : S    S  )
(summable   :  s s', summable (λ n, ((to_fun s n s').nat_abs * r ^ n)))

and then was trying to upgrade these to functors from Fintype to pseudo-normed groups.

Filippo A. E. Nuccio (Aug 06 2021 at 14:52):

But as said, your approach seems better.

Adam Topaz (Aug 06 2021 at 14:59):

Filippo A. E. Nuccio said:

But as said, your approach seems better.

I'm not sure. Your definition gives direct access to the underlying function given by the coefficients.

Filippo A. E. Nuccio (Aug 06 2021 at 15:00):

Yes, it does. I was also thinking that working with finite sets and then taking inv limits (as in p 37) might be easier.

Filippo A. E. Nuccio (Aug 06 2021 at 15:01):

I have pushed this already to the branch fae_overconvergent_measures, if you want to have a look (I have a call now and won't be able to work on this for 30-35 mins, but will be back later).

Adam Topaz (Aug 06 2021 at 15:49):

I'm actually a little confused about the definition of Z((T))r[S]c\mathbb{Z}((T))_r[S]_{\le c} that appears at the top of page 37. Are these two SS's really the same?

Filippo A. E. Nuccio (Aug 06 2021 at 15:53):

Why not? I don't see immediately where the problem lies.

Adam Topaz (Aug 06 2021 at 15:55):

Well, Z((T))r\mathbb{Z}((T))_r is a condensed ring, so a priori is a functor SZ((T))r(S)S \mapsto \mathbb{Z}((T))_r(S) as defined on page 36. The Z((T))r[S]\mathbb{Z}((T))_r[S] is the free module on a, say, finite set SS.

Filippo A. E. Nuccio (Aug 06 2021 at 15:58):

Oh, this I agree: the two SS's from p. 36 and 37. I took the short path and forgot about p 36, simply thinking that the functor was defined on finite SS and then extended by inv. limit, without checking that the definition would give back that on p 36.

Adam Topaz (Aug 06 2021 at 15:58):

Using a single S probably gives the same result, but a priori there are two SS's in the definition of Z((T))r[S]\mathbb{Z}((T))_r[S] (one from the SS in [S][S] and one from the condensed structure).

Filippo A. E. Nuccio (Aug 06 2021 at 15:58):

Actually: what do you mean by "the one from the condensed structure"? That on p. 37 the notation Z((T))r[S]\mathbb{Z}((T))_r[S] is the free condensed Z((T))r\mathbb{Z}((T))_r-module on SS, and so that a priori one could evaluate Z((T))r[S](S)\mathbb{Z}((T))_r[S](S') on any profinite SS'?

Adam Topaz (Aug 06 2021 at 16:03):

Ignoring the module part of the story, at the end of the day Z((T))r[]\mathbb{Z}((T))_r[-] is a functor sending a profinite set SS to a condensed set, which is a functor sending a profinite set SS' to a set.

Filippo A. E. Nuccio (Aug 06 2021 at 16:07):

Yes, I agree; but the way I read the sentence on l. 2 of page 37 was that Z((T))r[S]c\mathbb{Z}((T))_r[S]_{\leq c} is a functor sending a finite set SS to some abelian group and so Z((T))r\mathbb{Z}((T))_r sends SS to the union over cc of the values of the previous functor. So, for me, "free-module" meant "free Z\mathbb{Z}-module" (because the explicit definition associates to SS a group, not a functor -- not a "true" one, i.e. a non-constant one).

Filippo A. E. Nuccio (Aug 06 2021 at 16:11):

At a different level: I am trying to improve a bit my code with the above definition, and I am trying to give the

def oc_functor (r : 0) : Fintype.{u}  ProFiltPseuNormGrp.{u} :=

associating to every finite set SS the p-f-p-n-group oc_measures r S as defined above.

Adam Topaz (Aug 06 2021 at 16:11):

Maybe the equation at the top of page 37 should say the following?

Z((T))r[S]c:={nZ,sSan,sTn[s]  an,sZ, n,san,srnc}\mathbb{Z}((T))_r[S]_{\le c} := \{ \sum_{n \in \mathbb{Z}, s \in S} a_{n,s} T^n [s] \ | \ a_{n,s} \in \mathbb{Z}, \ \sum_{n,s} | a_{n,s} | r^n \le c \}

Filippo A. E. Nuccio (Aug 06 2021 at 16:12):

But would they really be "measures"? You are right, looking at the statement of Thm 6.9 it seems all ana_n must be in R\mathbb{R}

Adam Topaz (Aug 06 2021 at 16:13):

I'm just thinking about our definition here...
https://github.com/leanprover-community/lean-liquid/blob/8f444ae6d4113c8c550a9aa597a7511725a2658b/src/Mbar/basic.lean#L39

Adam Topaz (Aug 06 2021 at 16:14):

and here
https://github.com/leanprover-community/lean-liquid/blob/8f444ae6d4113c8c550a9aa597a7511725a2658b/src/Mbar/Mbar_le.lean#L34

Filippo A. E. Nuccio (Aug 06 2021 at 16:15):

I agree, I actually adapted mine from there (replacing ana_n with functions, blindly copying)

Filippo A. E. Nuccio (Aug 06 2021 at 16:18):

BTW: In thm 6.9, I guess the maps is as condensed groups. But how to look at an element of Z((T))r\mathbb{Z}((T))_r as a series? Evaluating it at the singleton?

Adam Topaz (Aug 06 2021 at 16:23):

If I undderstand correctly, if SS is a profinite set, consider nanTn\sum_n a_n T^n where anC(S,Z)a_n \in C(S,\mathbb{Z}), and send that series to the function snan(s)rns \mapsto \sum_n a_n(s) r'^n.

Adam Topaz (Aug 06 2021 at 16:25):

I guess that's what this map (of condensed sets) is supposed to do when you apply it to a profinite set SS.

Filippo A. E. Nuccio (Aug 06 2021 at 16:25):

Ah, where the second is an element of R\mathbb{R} as a condensed set: right!

Filippo A. E. Nuccio (Aug 06 2021 at 16:27):

At any rate, as long as we put sorries everywhere, the code can very easily be adapted :grinning_face_with_smiling_eyes:

Filippo A. E. Nuccio (Aug 06 2021 at 16:30):

And which approach do you suggest to follow? Have you had a look to my branch?

Adam Topaz (Aug 06 2021 at 16:32):

@Filippo A. E. Nuccio we could discuss for a bit and do some pair programming on zoom, if you would like...

Filippo A. E. Nuccio (Aug 06 2021 at 16:33):

Yes, I have half an hour free now, if you want.

Adam Topaz (Aug 06 2021 at 16:33):

Ok, give me about 10 mins to get more coffee. I'll send you a link.

Johan Commelin (Aug 06 2021 at 18:17):

Adam Topaz said:

Maybe the equation at the top of page 37 should say the following?

Z((T))r[S]c:={nZ,sSan,sTn[s]  an,sZ, n,san,srnc}\mathbb{Z}((T))_r[S]_{\le c} := \{ \sum_{n \in \mathbb{Z}, s \in S} a_{n,s} T^n [s] \ | \ a_{n,s} \in \mathbb{Z}, \ \sum_{n,s} | a_{n,s} | r^n \le c \}

What is the difference with what is currently there?

Adam Topaz (Aug 06 2021 at 18:17):

Currently it says C(S,Z)C(S,\mathbb{Z}) instead of Z\mathbb{Z}

Adam Topaz (Aug 06 2021 at 18:17):

at least on the version on Peter's webpage (I haven't checked the version from github...)

Johan Commelin (Aug 06 2021 at 18:19):

git show 5765f9e35dc03ffe24563dc86cd6f4b115d004ae
commit 5765f9e35dc03ffe24563dc86cd6f4b115d004ae
Author: Johan Commelin <johan@commelin.net>
Date:   Tue Jul 13 10:51:05 2021 +0200

    fix typo in display

diff --git a/Analytic.tex b/Analytic.tex
index 6c5bc42..75c7c9a 100644
--- a/Analytic.tex
+++ b/Analytic.tex
@@ -1180,7 +1180,7 @@ each of which is a finite set.

 For any finite set $S$, we now write the free module $\mathbb Z((T))_r[S]$ as the increasing union of
 \[
-\mathbb Z((T))_r[S]_{\leq c} := \{\sum_{n\in \mathbb Z,s\in S} a_{n,s} T^n [s]\mid a_{n,s}\in C(S,\mathbb Z), \sum_{n\in \mathbb Z, s\in S} |a_{n,s}|r^n\leq c\};
+\mathbb Z((T))_r[S]_{\leq c} := \{\sum_{n\in \mathbb Z,s\in S} a_{n,s} T^n [s]\mid a_{n,s}\in \mathbb Z, \sum_{n\in \mathbb Z, s\in S} |a_{n,s}|r^n\leq c\};
 \]
 each of these is again a profinite set. The addition defines maps
 \[

Adam Topaz (Aug 06 2021 at 18:20):

Tue Jul 13 10:51:05 2021 +0200 ;)

Adam Topaz (Aug 06 2021 at 18:21):

Would you mind not gitignoring the compiled pdf in that repo, so that the most up-to-date version of analytic.pdf can be obtained from github?

Patrick Massot (Aug 06 2021 at 18:56):

This isn't the right solution. This repo should have CI that builds and publishes.

Adam Topaz (Aug 06 2021 at 18:56):

Patrick Massot said:

This isn't the right solution. This repo should have CI that builds and publishes.

Yes, of course, but that takes more effort to implement.

Adam Topaz (Aug 06 2021 at 18:57):

Actually, if you know of a github ci recipe that does this, that would be great to know about!

Adam Topaz (Aug 06 2021 at 18:58):

(I had something along these lines cobbled together for some lecture notes for one of my classes last term, but it was too clunky to be useful in general)

Yakov Pechersky (Aug 06 2021 at 20:05):

It does already as far as I remember engineering it. You can check the github actions

Yakov Pechersky (Aug 06 2021 at 20:05):

Because it needs the pdf for the web interface, iirc

Adam Topaz (Aug 06 2021 at 20:14):

@Yakov Pechersky this is a separate repo, not the bluepring... I'm referring to https://github.com/PeterScholze/Analytic

Bryan Gin-ge Chen (Aug 06 2021 at 20:15):

I've just made a PR that does something super basic: https://github.com/PeterScholze/Analytic/pull/8

cc: @Johan Commelin

Johan Commelin (Aug 07 2021 at 16:54):

@Bryan Gin-ge Chen @Peter Scholze Thanks! I merged the PR

Johan Commelin (Aug 07 2021 at 17:05):

@Bryan Gin-ge Chen The produced artifact is a .zip file: https://github.com/PeterScholze/Analytic/actions/runs/1108315466

Johan Commelin (Aug 07 2021 at 17:05):

Do you think this can be turned into simply the pdf?

Johan Commelin (Aug 07 2021 at 19:46):

Have you been pushing the Mbar variants to a branch? What is the status there?

Adam Topaz (Aug 07 2021 at 19:48):

Yes

Adam Topaz (Aug 07 2021 at 19:48):

Still WIP

Adam Topaz (Aug 07 2021 at 19:49):

I just pushed some stuff a few mins ago. It's on the branch fae_overconvergent_...

Johan Commelin (Aug 07 2021 at 19:49):

Ok, thanks for the pointer!

Adam Topaz (Aug 07 2021 at 19:50):

The main finiteness needed to prove that the terms in the filtration are Profinite is done, just gotta patch things together in a limit

Johan Commelin (Aug 07 2021 at 19:50):

Once we have those, we should build some api that takes a profinitely_filtered_pseudo_normed_foobar and turns it into a condensed_foobar.

Adam Topaz (Aug 07 2021 at 19:51):

@Johan Commelin shouldn't you be on vacation right now? What are you doing on zulip?

Johan Commelin (Aug 07 2021 at 19:52):

Ooh, and we'll need to know that Z((T))rR\Z((T))_r \to \R given by T12T \mapsto \frac12 for r>12r > \frac12 is a surjective ring hom.

Johan Commelin (Aug 07 2021 at 19:52):

(I returned from holidays... a couple of hours ago. We'll go for another week later in August. So I'll have a week to hack on LTE :smiley: )

Adam Topaz (Aug 07 2021 at 20:00):

Johan Commelin said:

Ooh, and we'll need to know that Z((T))rR\Z((T))_r \to \R given by T12T \mapsto \frac12 for r>12r > \frac12 is a surjective ring hom.

Does mathlib have any API for this? Something like the existence of a "decimal expansion" of a real number?

Johan Commelin (Aug 07 2021 at 20:01):

I'm not sure. I guess that @Mario Carneiro might know this best.

Mario Carneiro (Aug 07 2021 at 20:05):

Doesn't ring a bell. Maybe nat.digits or the cardinality of the reals proof?

Adam Topaz (Aug 07 2021 at 20:08):

Well... the rain let up so I'm going mountain biking.
I'll try to finish up the profiniteness of the filtration for oc_measures on Monday.

Yaël Dillies (Aug 07 2021 at 20:13):

Adam Topaz said:

Johan Commelin shouldn't you be on vacation right now? What are you doing on zulip?

Wait, are holidays when you are not doing Lean?

Shing Tak Lam (Aug 07 2021 at 20:18):

Adam Topaz said:

Johan Commelin said:

Ooh, and we'll need to know that Z((T))rR\Z((T))_r \to \R given by T12T \mapsto \frac12 for r>12r > \frac12 is a surjective ring hom.

Does mathlib have any API for this? Something like the existence of a "decimal expansion" of a real number?

Someone on the Xena discord was working on decimal expansions of real numbers, I think it was @Deniz Aydin ? Not sure if it's public anywhere.

Kevin Buzzard (Aug 07 2021 at 20:23):

It's an old branch of mine. I think it was Deniz.

Johan Commelin (Aug 07 2021 at 20:34):

I guess the surjectivity is easy for TxT \mapsto x for any xrx \le r. But what we actually need to use later is that the kernel is a principal ideal. And for xQx \in \mathbb Q that is a lot easier to prove than for xQx \notin \mathbb Q.

Johan Commelin (Aug 07 2021 at 20:34):

In the end, we can get away with x=1/2x = 1/2 for the final application.

Adam Topaz (Aug 08 2021 at 17:55):

Most of the proof that oc_measures r S is a pfpng is done in the branch fae_overco..., but there are some silly sorry's around mostly about summability of certain series. If anyone wants to fill in some of these, that would be helpful!

Filippo A. E. Nuccio (Aug 11 2021 at 17:51):

I think I have filled most of them, and I have merged the branch to master. I hope to finish some of the remaining ones tomorrow.

Adam Topaz (Aug 11 2021 at 18:04):

Great! I can try to take care of some of them this afternoon.

Adam Topaz (Aug 11 2021 at 18:46):

Okay, overconvergent_measures/basic.lean only has two interesting sorry's left ;)

Adam Topaz (Aug 12 2021 at 00:10):

These two sorry's are now squashed.

Filippo A. E. Nuccio (Aug 12 2021 at 14:14):

@Adam Topaz I was having a look at bounded overconvergent measures, but I can't figure out why you need them.

Adam Topaz (Aug 12 2021 at 14:15):

They're used to define the topology

Filippo A. E. Nuccio (Aug 12 2021 at 14:15):

Ah, ok.

Adam Topaz (Aug 12 2021 at 14:17):

Essentially it's just the collection of series nanTn\sum_n a_n T^n where ana_n is zero outside a finite set T : finset \Z. If you also bound the norm, this is therefore a finite type, hence profinite if you give it the discrete topology. And the set of series nanTn\sum_n a_n T^n with bounded norm is the limit over such collections as TT varies.

Filippo A. E. Nuccio (Aug 12 2021 at 14:19):

All this still for finite S, though, right?

Adam Topaz (Aug 12 2021 at 14:20):

yes

Adam Topaz (Aug 12 2021 at 14:20):

To replace S by a profinite set, we need functoriality of these constructions in S.

Filippo A. E. Nuccio (Aug 12 2021 at 14:21):

Yes, I see. There is now an error with summable_of_sum_le (which apparently does not exist) and I wanted to fix this. Then I can try to set-up this compatibility, unless you've already started.

Adam Topaz (Aug 12 2021 at 14:24):

That's strange... it seemed to work for me yesterday?

Filippo A. E. Nuccio (Aug 12 2021 at 14:25):

OK, may be I need to update mathlib? Is it a recent addition?

Adam Topaz (Aug 12 2021 at 14:26):

I didn't update mathlib. It should work.

Filippo A. E. Nuccio (Aug 12 2021 at 14:26):

I have an unknown identifier 'summable_of_sum_le'

Adam Topaz (Aug 12 2021 at 14:29):

the github ci on LTE was able to build successfully. So I think your setup is messed up somehow.

Adam Topaz (Aug 12 2021 at 14:29):

https://github.com/leanprover-community/lean-liquid/runs/3307440491

Filippo A. E. Nuccio (Aug 12 2021 at 14:29):

Right. Let me check.

Filippo A. E. Nuccio (Aug 12 2021 at 14:43):

OK, I have updated mathlib and this will take a while. In the meantime, what's your feeling about functoriality wrt S? I guess we want
1) To prove it first for bdd measures
2) To show it extends via mk_seq to compatibility between the corresponding to_fun of o.c. ones
3) Prove these transition morphisms are continuous.
What do you think?

Adam Topaz (Aug 12 2021 at 14:47):

I think we should follow more-or-less the same steps I did for Mbar.

Filippo A. E. Nuccio (Aug 12 2021 at 14:48):

RIght, I didn't think about checking that part. I am sorry, I'll have a look.

Adam Topaz (Aug 12 2021 at 14:50):

Here are the relevant locations:
https://github.com/leanprover-community/lean-liquid/blob/a5c5206bf3b50fb8468778e15c65b0fa056f4900/src/Mbar/basic.lean#L427
https://github.com/leanprover-community/lean-liquid/blob/a5c5206bf3b50fb8468778e15c65b0fa056f4900/src/Mbar/Mbar_le.lean#L479
https://github.com/leanprover-community/lean-liquid/blob/a5c5206bf3b50fb8468778e15c65b0fa056f4900/src/Mbar/bounded.lean#L239

Adam Topaz (Aug 12 2021 at 14:50):

(I'm not too happy with the Profinite.extend stuff... I need to change that at some point)

Filippo A. E. Nuccio (Aug 12 2021 at 14:51):

Ok, I'll study these and come back (hopefully, in the meanwhile the problem with 'summable_of_sum_le' will be gone).

Adam Topaz (Aug 12 2021 at 14:59):

I think a better approach is to show that ProfinitelyFilteredPseudoNormedGroups have the correct limits, and extend the corresponding functor Fintype \func ProfinitelyFiltered....instead of extending the individual components.

Adam Topaz (Aug 12 2021 at 15:00):

Proving that the extension commutes with cofiltered limits is also a challenge which I haven't done yet.

Filippo A. E. Nuccio (Aug 12 2021 at 15:16):

This is certainly more elegant. But what extension should commute with cofiltered limits? From bdd to o.c. measures?

Adam Topaz (Aug 12 2021 at 15:18):

Oh, I'm talking about the general construction here:
https://github.com/leanprover-community/lean-liquid/blob/a5c5206bf3b50fb8468778e15c65b0fa056f4900/src/for_mathlib/Profinite/extend.lean#L37

Peter Scholze (Aug 12 2021 at 19:23):

Regarding this thread: I just want to point out that to define these spaces of overconvergent measures, you should first define the spaces of convergent measures (i.e., for fixed rr resp. pp) and then take a colimit (over rr resp. pp). And only for (bounded) convergent measures you can reduce from profinite SS to finite SS by cofiltered limits.

I didn't quite follow what you are doing, but I was slightly afraid you take the colimit over rr resp. pp before taking the cofiltered limit over SS's.

Peter Scholze (Aug 12 2021 at 19:24):

In any case, the challenge requires only "convergent" measures

Adam Topaz (Aug 12 2021 at 19:25):

Oh, the name is misleading. We haven't defined anything overconvergent yet

Filippo A. E. Nuccio (Aug 12 2021 at 19:25):

@Peter Scholze But when you speak about the space of conv. measure, do you mean it as a condensed group?

Peter Scholze (Aug 12 2021 at 19:26):

Sure

Peter Scholze (Aug 12 2021 at 19:26):

As Johan was discussing, this should come from its structure as a profinitely filtered blah

Adam Topaz (Aug 12 2021 at 19:27):

@Filippo A. E. Nuccio we should probably change the name oc_measures (these are the convergent ones)

Filippo A. E. Nuccio (Aug 12 2021 at 19:27):

I see, so you mean that we should not define an "overconvergent functor on finite sets" (whatever it is) hoping to extend it to profinite ones, but rather first extend it to profinite, and then "overconverge"

Filippo A. E. Nuccio (Aug 12 2021 at 19:29):

@Adam Topaz It's dinner time here now; I can take up some of this tomorrow, but have to go now,

Adam Topaz (Aug 12 2021 at 19:29):

Ok. I'll try to change the name.

Adam Topaz (Aug 12 2021 at 19:35):

By the way, if we try to prove that ProfinFiltPseudoNormedGroup has cofiltered limits, we'll probably run into issues similar to limits in seminormed groups, since the morphisms in this category need not be strictly compatible with the filtration.

Adam Topaz (Aug 12 2021 at 19:35):

So the idea above about extending the functor into ProfinFiltPseudoNormedGroup probably won't work

Adam Topaz (Aug 12 2021 at 19:37):

Okay, I think I'll replace oc_measures with laurent_measures. Any objections?

Adam Topaz (Aug 12 2021 at 19:47):

Okay, that's done. I also started on the functoriality

Adam Topaz (Aug 13 2021 at 19:13):

Just pushed:

@[simps]
def functor (r : 0) [fact (0 < r)] : Fintype.{u}  ProFiltPseuNormGrp.{u} :=
{ obj := λ S, ProFiltPseuNormGrp.of $ laurent_measures r S,
  map := λ S T f, map_hom f,
...

Adam Topaz (Aug 13 2021 at 19:18):

I think in this case it may be worthwhile to introduce ProFiltPseuNormGrp₀ (with maps strictly compatible with the filtration, analogous to SemiNormedGroup₀). The functor above really lands there, and we would be able to actually show that this category has enough limits so that the profinite variant of the above could be obtained by extension along cofiltered limits.

Johan Commelin (Aug 13 2021 at 19:44):

I guess that would work. But things like multiplication by T1T^{-1} are not compatible with the filtration, right? So we might need to deal with those separately.

Adam Topaz (Aug 13 2021 at 19:50):

True. one solution (that came up before as well) could be to introduce functors F C from ProFiltPseuNormGrp₀ to itself which rescale the filtration by C, and have T\inv be a morphism from Mto (F C).obj M.

Johan Commelin (Aug 13 2021 at 19:57):

but extending bounded_laurent_measures to profinite S is easy, right?

Johan Commelin (Aug 13 2021 at 19:57):

and showing that we can "inclusion" maps between those extensions is also not so hard.

Johan Commelin (Aug 13 2021 at 19:57):

similar for addition and negation maps

Johan Commelin (Aug 13 2021 at 19:58):

and then we can take a colimit in condensed sets (which exists by generic stuff done by Bhavik), and then we can build a condensed abelian group

Johan Commelin (Aug 13 2021 at 19:59):

that would bypass the whole ProFiltPseuNormGrp(₀) stuff. I don't know if that is good or bad.

Adam Topaz (Aug 13 2021 at 20:03):

I would prefer to define functor ProFiltPseuNormGrp to Cond (Ab), and compose that with a functor to ProFiltPseuNormGrp.

Johan Commelin (Aug 13 2021 at 20:27):

But I guess it might be best to use CompHausFiltPseuNormGrp

Adam Topaz (Aug 13 2021 at 20:37):

As for defining the extension to Profinite, sure it's easy, but it's incredibly annoying. For example, think about what it takes to define addition -- you need to use the fact that binary products commute with limits, and that category_theory.limits.binary_product agrees with the usual type-theoretic product.

Johan Commelin (Aug 13 2021 at 21:01):

That's a good point.

Johan Commelin (Aug 14 2021 at 08:14):

Ok, I'm now somewhat convinced that it will probably pay of to build CompHausFiltPseuNormGrp₀ and construct a functor to that category.

Adam Topaz (Aug 14 2021 at 13:18):

Of course working with CompHausFiltPseuNormGrp\0 isn't going to save us from doing the annoying work showing that it has enough limits, but at least we would have to only do it once!

Filippo A. E. Nuccio (Aug 16 2021 at 13:23):

@Adam Topaz Have you begun working on this CompHausFiltPseuNormGrp\0 category already?

Adam Topaz (Aug 16 2021 at 13:24):

No

Filippo A. E. Nuccio (Aug 16 2021 at 13:26):

Ok; and would you suggest me starting with that or are there things which you believe to be more useful/urgent ?

Johan Commelin (Aug 16 2021 at 13:51):

If/when you start, I suggest that you slightly refactor profinitely_filtered_pseudo_normed_group so that it extends comphaus_filtered_pseudo_normed_group (which is defined as the former, but without tot.disconnectedness).

Adam Topaz (Aug 16 2021 at 13:56):

Do we want a ProfinFiltPseuNormGrp\_0 as well? @Johan Commelin ?

Johan Commelin (Aug 16 2021 at 13:57):

No, I don't think we need it.

Johan Commelin (Aug 16 2021 at 13:58):

As far as I can see now

Adam Topaz (Aug 16 2021 at 13:58):

Yeah, same here.

Adam Topaz (Aug 16 2021 at 13:59):

Well, morphisms in CompHausFiltPseuNormGroup and ProfinFiltPseuNormGroup are the same, and similarly with the \_0, so we if have to add it in the future it will be easy once we have CompHaus...\_0.

Adam Topaz (Aug 16 2021 at 14:02):

I haven't checked the details, but if we want to have limits, I think we may need to add an assumption on these objects that the fiultration is exhaustive.

Johan Commelin (Aug 16 2021 at 14:02):

Which it is in all the examples that we care about.

Adam Topaz (Aug 16 2021 at 14:02):

Sure.

Johan Commelin (Aug 16 2021 at 14:03):

But I don't think we proved this for Mbar.

Adam Topaz (Aug 16 2021 at 14:03):

In all our cases the filtration comes from some norm anyway, so it should be easy to obtain

Johan Commelin (Aug 16 2021 at 14:03):

If we add that to the existing definition, then we might have to prove this in quite a bunch of places.

Adam Topaz (Aug 16 2021 at 14:03):

Maybe we should just add in for CompHausFilt.... for now?

Johan Commelin (Aug 16 2021 at 14:03):

So maybe we drop my idea of having profinitely_filtered_bla extend comphaus_filtered_bla.

Filippo A. E. Nuccio (Aug 16 2021 at 14:09):

Can't we just add exhaustiveness (?) when proving that limits exist as an extra hyp?

Adam Topaz (Aug 16 2021 at 14:11):

We could have [exhaustive A] as a mixin.

Filippo A. E. Nuccio (Aug 16 2021 at 14:11):

You mean to add a typeclass?

Adam Topaz (Aug 16 2021 at 14:12):

But [has_limits C]is a propoerty of a category C, so then we would need to make a new thing called CompHausExhausFiltPseuNormGroup and that's just way too long to type

Filippo A. E. Nuccio (Aug 16 2021 at 14:12):

Ah right

Filippo A. E. Nuccio (Aug 16 2021 at 14:18):

So I'm a bit lost. Do we go for these CompHausFilt_blaor not? At any rate, what I don't understand if how this would really help. Sure constructing limits there is probably easier since there is no issue with non-uniqueness of the norm, but then we need to show that the functor to ProfFinitely_bla preserves limits, no?

Adam Topaz (Aug 16 2021 at 14:31):

@Filippo A. E. Nuccio you can start to try proving that ProfinFiltPseuNormGroup (without \_0) has limits and see that you will get stuck pretty quickly because the morphisms in this category involve inflating the filtration index by some constant (analogous to the way morphisms are defined for semi_normed_group, where there is a similar issue). That's why we would want a \_0. Next, we want one context where both M(S,Z((t))r)\mathcal{M}(S,\mathbb{Z}((t))_r) and Mp(S)\mathcal{M}_p(S) would fit in. The first one is profinitely filtered, but the second has a filtration by compact hausdorff spaces which are not totally disconnected. That's why we want Comphaus_filt_blah. Finally, the reason we want limits is because we first define the things above for finite S then take a limit. The idea is to take a limit in Comhaus_filt_blah\_0, and compose with a functor from there to condensed abelian groups.

Filippo A. E. Nuccio (Aug 16 2021 at 14:33):

Oh thanks! Very nice summary.

Filippo A. E. Nuccio (Aug 16 2021 at 14:35):

Before going further, I immediately have the question as whether we really need that the category ``has limits''. For instance, I remember that in @Johan Commelin and @Rob Lewis ' paper on Witt vectors, they show that Witt vecs are a limit without proving it "categorically".

Filippo A. E. Nuccio (Aug 16 2021 at 14:36):

I agree this is certainly a nicer approach, but I wonder if it is needed (or if we can't just force the definition on a profinite set, although of course the problem is to show that the result is indep. of the way we write a profinite set as a limit).

Adam Topaz (Aug 16 2021 at 14:36):

You don't have to, but then you can't use the stuff from for_mathlib/Profinite/extend because https://github.com/leanprover-community/lean-liquid/blob/23e4854a4b1390672b8962018bff47af5f650ddd/src/for_mathlib/Profinite/extend.lean#L33

Adam Topaz (Aug 16 2021 at 14:38):

The alternative is to ignore all this nonsense and take all limits/colimits in Cond Type*, then manually promote to an object of Cond Ab.

Adam Topaz (Aug 16 2021 at 14:39):

Adam Topaz said:

The alternative is to ignore all this nonsense and take all limits/colimits in Cond Type*, then manually promote to an object of Cond Ab.

Maybe this is an argument for defining Cond Ab as the category of abelian group objects in Cond Type*?

Filippo A. E. Nuccio (Aug 16 2021 at 14:39):

By "manually" you mean to prove the axioms add, has_neg, etc... by hand?

Filippo A. E. Nuccio (Aug 16 2021 at 14:40):

Adam Topaz said:

Adam Topaz said:

The alternative is to ignore all this nonsense and take all limits/colimits in Cond Type*, then manually promote to an object of Cond Ab.

Maybe this is an argument for defining Cond Ab as the category of abelian group objects in Cond Type*?

Or is this an argument to construct a general formalism that takes categories C,D\mathcal{C},\mathcal{D} and defines C\mathcal{C}-objects valued in D\mathcal{D} so that we also have condensed rings in one shot?

Adam Topaz (Aug 16 2021 at 14:45):

There is no such general formalism... See e.g. docs#Mon_

Filippo A. E. Nuccio (Aug 16 2021 at 14:47):

Ok, I was pushing it too far without solid knowledge, sorry.

Adam Topaz (Aug 16 2021 at 14:53):

(Well, you could cook up a general formalism like that for concrete categories C\mathcal{C}, using representable presheaves for example, but I don't know how useful that is.)

Filippo A. E. Nuccio (Aug 16 2021 at 14:55):

OK. I have to go soon now. I'll see where things are tomorrow to see if I can be of any help, as I haven't fully understood if we ultimately want to follow @Johan Commelin ' suggestion of having profinitely_filtered_blah extending comphaus_filtered_blah.

Filippo A. E. Nuccio (Aug 16 2021 at 15:01):

As an aside: reading on p. 38 of Analytic.pdf I see the object M(S,Z((T))>r)\mathcal M(S, \mathbb{Z}((T))_{>r}) (so, in particular, the condended ring Z((T))>r\mathbb{Z}((T))_{>r}. Is it by definition the colimit of all Z((T))r\mathbb{Z}((T))_r? I can't find a definition of it before p. 38 :thinking:

Johan Commelin (Aug 16 2021 at 15:34):

Yes, it is the "overconvergent version, which takes the union over all r>rr' > r. But we don't need that ring for the time being.

Adam Topaz (Aug 16 2021 at 19:56):

I've started this refactor in the branch comphaus_filt_refactor. So far I just made the class comphaus_filt_... and made profinitely_filt_... extend it, while ensuring everything compiles, and I also added the definition of the category CompHausFiltPSeuNormGroup (without \_0). I still haven't generalized everything that should be generalized (such as the stuff in rescale/pseudo_normed_group)

Filippo A. E. Nuccio (Aug 17 2021 at 14:33):

Johan Commelin said:

Yes, it is the "overconvergent version, which takes the union over all r>rr' > r. But we don't need that ring for the time being.

I guessed so, but is it me or its definition only shows up after p. 38?

Filippo A. E. Nuccio (Aug 17 2021 at 14:38):

@Adam Topaz I can try to define the instance : comphaus_filtered_pseudo_normed_group (rescale r M) for a comphaus_filtered_pseudo_normed_group M and let type-class inference deduce the old one? Done.

Johan Commelin (Aug 17 2021 at 14:44):

@Filippo A. E. Nuccio Almost at the end of p37 there is

On the other hand, this again indicates that for a fixed r, the theory will not work, so we pass to a colimit again.

This explains how to define M(S,Z((T))>r)\mathcal M(S, \Z((T))_{>r}) as colimit of M(S,Z((T))r)\mathcal M(S, \Z((T))_{r'}) s. The ring Z((T))>r\Z((T))_{>r} only shows up in S7 and this is also where it is properly defined. There are some forward refs from S6 to S7.

Filippo A. E. Nuccio (Aug 17 2021 at 14:46):

Ah, I see, thanks. I was reading too linearly, I guess... :ruler:

Adam Topaz (Aug 17 2021 at 14:56):

Filippo A. E. Nuccio said:

Adam Topaz I can try to define the instance : comphaus_filtered_pseudo_normed_group (rescale r M) for a comphaus_filtered_pseudo_normed_group M and let type-class inference deduce the old one? Done.

Thanks! I just pushed a minor change.

Adam Topaz (Aug 17 2021 at 14:56):

instance [profinitely_filtered_pseudo_normed_group M] :
  profinitely_filtered_pseudo_normed_group (rescale r M) := {}

:smile:

Filippo A. E. Nuccio (Aug 17 2021 at 14:56):

And do we also want the notion of a comphaus_filt... with an action of T1T^{-1}? Because it seems a bit strange to me now that for a [profinitely_filtered_pseudo_normed_group_with_Tinv r' M] we have an instance of comphaus_filtered_pseudo_normed_group_hom (rescale r M) (rescale r M): I agree that this makes sense, but I wonder if we don't want it under slightly more general hyp on M

Adam Topaz (Aug 17 2021 at 14:57):

I think the T1T^{-1} instance is only really used for M(S,Z((T))r)\mathcal{M}(S,\mathbb{Z}((T))_r), so leaving it for the profinite case should be okay.

Adam Topaz (Aug 17 2021 at 14:59):

If we want to eventually generalize, we should just do things properly and work with condensed modules over condensed rings (the T1T^{-1} case is for modules over Z[T1]\mathbb{Z}[T^{-1}])

Filippo A. E. Nuccio (Aug 17 2021 at 15:01):

OK. I was just observing that it is strange to say that the morphism between the rescale is as comphaus_filt.. as everything in sight is already a profinitely_filt....

Filippo A. E. Nuccio (Aug 17 2021 at 15:01):

But it is certainly a minor point.

Filippo A. E. Nuccio (Aug 17 2021 at 15:02):

@Adam Topaz as you're probably working on this right now and have a clear picture: do you want me to work on something in particular?

Adam Topaz (Aug 17 2021 at 15:09):

I actually don't have much time today unfortunately... One concrete thing that you could go for is defining CompHausFiltPseuNormGroup\_0 using https://github.com/leanprover-community/lean-liquid/blob/7060d641407fef3a0282aa05386f593d654e438d/src/pseudo_normed_group/profinitely_filtered.lean#L92

Adam Topaz (Aug 17 2021 at 15:09):

And define the functor to CompHaus... without the 0.

Filippo A. E. Nuccio (Aug 17 2021 at 15:09):

Ok, I will go for the first, either today or tomorrow morning (CET), and if I can I will define the functor.

Filippo A. E. Nuccio (Aug 17 2021 at 15:10):

In the meanwhile I have added a couple of lines of doc for comphaus... and adapted that of profinitely... accordingly.

Adam Topaz (Aug 17 2021 at 15:12):

Oh yeah I've been very lazy about docs :expressionless: sorry!

Adam Topaz (Aug 17 2021 at 15:13):

@Filippo A. E. Nuccio when defining the category, please take a look at how CompHausFilt... is defined using docs#category_theory.bundled and docs#category_theory.bundled_hom and try to mimic that.

Filippo A. E. Nuccio (Aug 17 2021 at 15:14):

OK! Thanks.

Adam Topaz (Aug 17 2021 at 15:15):

Using this bundled formalism, the [derive ...] tag will give a lot of the structure we need for free.

Filippo A. E. Nuccio (Aug 17 2021 at 15:16):

While I was looking at your link above: I thought you wanted me to define CompHausFilt... with 0 (generalising groups with 0) but the link points to strict morphisms. Do I miss something?

Filippo A. E. Nuccio (Aug 17 2021 at 15:16):

Ah no, I see.

Filippo A. E. Nuccio (Aug 17 2021 at 15:16):

You want two categories, one with strict morphisms, the other with usual ones.

Filippo A. E. Nuccio (Aug 17 2021 at 15:16):

(The first you call with a 0) and a functor between the two.

Filippo A. E. Nuccio (Aug 17 2021 at 15:17):

Right? For the usual business of uniqueness of limits, I guess.

Adam Topaz (Aug 17 2021 at 15:18):

Yes, the one with nonstrict morphisms is defined here: https://github.com/leanprover-community/lean-liquid/blob/60ab75bfbd20ad2323c4922a48d1664d6a8efd92/src/pseudo_normed_group/category.lean#L25

Johan Commelin (Aug 17 2021 at 15:18):

Should we use \_1 as subscript?

Filippo A. E. Nuccio (Aug 17 2021 at 15:18):

Ok, I got the point.

Johan Commelin (Aug 17 2021 at 15:18):

That's what we do with (semi)normed groups

Adam Topaz (Aug 17 2021 at 15:18):

Isn't it 0 for SemiNormedgroup?

Johan Commelin (Aug 17 2021 at 15:18):

I thought it was \_1 (because norm le one)

Adam Topaz (Aug 17 2021 at 15:19):

You're right. Yes, 1 is better ;)

Filippo A. E. Nuccio (Aug 17 2021 at 15:19):

OK, I'll call it with 1. :one:

Filippo A. E. Nuccio (Aug 17 2021 at 15:23):

On line 40 of pseudo_normed_group/category.lean, shouldn't the doc say

/-- The category of profinitely filtered pseudo-normed groups. -/

rather than

/--CompHaus-ly-/

?

Filippo A. E. Nuccio (Aug 17 2021 at 15:24):

OK, I'll modify it.

Filippo A. E. Nuccio (Aug 17 2021 at 15:54):

I have modified the name of the field continuous' to continuous₁' in the definition of strict morphism to differentiate it from the field with the same name in the definition of a "usual" morphism between comphaus_fil....

Adam Topaz (Aug 17 2021 at 16:29):

You're really supposed to use f.continuous for comphaus_..._hom and f.continuous_level (or f.level_continuous, I don't remember) for strict_..._hom.

Filippo A. E. Nuccio (Aug 17 2021 at 16:30):

Well, but for the time being they were both called continuous'. Do you mean I should rename both as you suggest?

Adam Topaz (Aug 17 2021 at 16:31):

What I mean is that both having the same name shouldn't matter.

Filippo A. E. Nuccio (Aug 17 2021 at 16:31):

I simply find it confusing, not that it creates issues. But I suspect you wanted to say something deeper.

Filippo A. E. Nuccio (Aug 17 2021 at 16:34):

(I guess I see what you meant: I am currently proving axiom continuous' for the hom obtained from a strict_hom and I have just encountered the def level you're probably speaking about)

Adam Topaz (Aug 17 2021 at 16:38):

Oh, take a look at https://github.com/leanprover-community/lean-liquid/blob/ddfed397901ac19bf274e547c28e8e9ca376dc7e/src/pseudo_normed_group/profinitely_filtered.lean#L375

Filippo A. E. Nuccio (Aug 17 2021 at 16:38):

Thanks!

Filippo A. E. Nuccio (Aug 17 2021 at 17:02):

I have defined the category CompHausFiltPseuNormGrp₁ (I hope correctly) and I am defining the "forgetful" functor towards CompHausFiltPseuNormGrp. I need to go now, but I can (and will!) continue tomorrow. I was not able to immediately adapt @Adam Topaz ' suggestion, but, unless this is super-urgent, I am happy to continue with what I am doing since I am learning a lot about category theory in Lean (and will also be happy to delete everything for the usual one-line proof I won't have been able to find).

Filippo A. E. Nuccio (Aug 17 2021 at 17:02):

All this in the file category.lean of pseudo_normed_group in the branch comphaus_filt_refactor.

Adam Topaz (Aug 17 2021 at 17:08):

@Filippo A. E. Nuccio sorry, I should have been more clear. The functor can be defined as follows:

def enlarging_functor : CompHausFiltPseuNormGrp₁  CompHausFiltPseuNormGrp :=
{ obj := λ M, M,
  map := λ M₁ M₂ f, f.to_chfpsng_hom }

once you add

instance (M : CompHausFiltPseuNormGrp₁) : comphaus_filtered_pseudo_normed_group M := M.str

I pushed the change just now.

Adam Topaz (Aug 17 2021 at 17:09):

(the fields map_id' and map_comp' are filled in automatically by the auto param, since we set up the correct ext and simp lemmas)

Filippo A. E. Nuccio (Aug 18 2021 at 12:12):

@Adam Topaz I have modified a bit functor because there was an error in the map field. It now takes values in CompHausFiltPseuNormGrp rather than in ProFiltPseuNormGrp, but this should not be a problem. As an aside, I have re-read most of the profinitely_filtered file and it seems to me that it still speaks about profinitely filtered pseudo-normed group hom although they don't exist anymore.

Filippo A. E. Nuccio (Aug 18 2021 at 12:13):

Should I modify all the doc accordingly? Also, I don't understand how can Lean know what the category ProFiltPseuNormGrp is, given that the morphisms are not explicitly defined.

Adam Topaz (Aug 18 2021 at 13:36):

@Filippo A. E. Nuccio The morphisms in ProFiltPseuNormGrp and CompHausFiltPseuNormGrp are both defined as comphaus_filtered_pseudo_normed_group_hom, so functor should really land in ProFiltPseuNormGrp. There is a functor from ProFiltPseuNormGrp to CompHausFiltPseuNormGrp, and the version of functor you just defined is the composition of functor as it originally was with this functor from ProFiltPseuNormGrp to CompHausFiltPseuNormGrp.

Adam Topaz (Aug 18 2021 at 13:38):

The category structure on ProFiltPseuNormGrp is defined using the bundled hom's trick here:
https://github.com/leanprover-community/lean-liquid/blob/4cf07bae405b23d50b6353a969dc937dd403fb07/src/pseudo_normed_group/category.lean#L78

Adam Topaz (Aug 18 2021 at 14:01):

Oh, I found the issue. When CompHausFiltPseuNormGrp₁ was defined using bundled_hom, the typeclass system decided to choose that instance when defining the category structure on ProFiltPseuNormGrp. That's not good. I'll try to fix it now.

Adam Topaz (Aug 18 2021 at 14:09):

Okay, it should be fixed now.

Adam Topaz (Aug 18 2021 at 14:09):

I reverted functor back to ProFilt... as well.

Filippo A. E. Nuccio (Aug 18 2021 at 14:44):

Good!

Johan Commelin (Aug 26 2021 at 13:54):

What's the status here? Can someone bring me up to speed again?

Adam Topaz (Aug 26 2021 at 13:57):

We probably want to finish off and merge the refactor of profinitely_filtererd_... which was started in the branch comphaus_filt_refactor.

Filippo A. E. Nuccio (Aug 26 2021 at 13:57):

Both structures of ProFiltPseu... and CompHausFiltPseu... are now defined (as categories), the first also with its variants using strict, rather than continuous, homs.

Filippo A. E. Nuccio (Aug 26 2021 at 13:57):

Oh yes, I agree.

Adam Topaz (Aug 26 2021 at 14:05):

M(S,Z((T))r)\mathcal{M}(S,\mathbb{Z}((T))_r) for finite SS has also been defined as a profinitely filtered pseudo normed group, and as a functor in (again finite) SS, in the branch fae_overconvergent_measures.

I'm in the process of finish off some of the API for Profinite.extend (which is essentially showing that Profinite is equivalent to Pro(Finite)) and that should help us with the extensions from finite sets to profinite sets.

Adam Topaz (Aug 26 2021 at 14:07):

For these extensions, we will probably want to show that CompHausFiltPseuNormGroup\_1 has limits, and extend a functor from Fintype to this. We can then define a functor from CompHausFiltPseuNormGroup (without the \_1) to Cond(Ab).

(Now that I'm thinking about this again, we may need to add a condition that the filtration is exhaustive for CompHausFiltPseuNormGroup\_1.)

Adam Topaz (Aug 26 2021 at 14:07):

And before doing anything with Cond(Ab), we need to fix the universe issues in the definition of Cond Foo.

Johan Commelin (Aug 26 2021 at 14:12):

Thanks! So if I understand correctly, both comphaus_filt_refactor and fae_overconvergent_measures contain unmerged mergable material?

Johan Commelin (Aug 26 2021 at 14:13):

Are there parts that shouldn't be merged?

Adam Topaz (Aug 26 2021 at 14:14):

I don't think so. @Filippo A. E. Nuccio what do you think?

Johan Commelin (Aug 26 2021 at 14:14):

If not, please go ahead and merge :merge: :octopus:

Filippo A. E. Nuccio (Aug 26 2021 at 14:14):

I think that basic of fae_over... contains a lot of useless stuff.

Filippo A. E. Nuccio (Aug 26 2021 at 14:15):

OK, I can try to polish it a bit and merge in master the fae... branch.

Adam Topaz (Aug 26 2021 at 14:16):

Wait... looks like laurent_measures is already in master.

Adam Topaz (Aug 26 2021 at 14:16):

I guess we merged it at some point ;)

Adam Topaz (Aug 26 2021 at 14:16):

So please ignore the fae_overco... branch.

Filippo A. E. Nuccio (Aug 26 2021 at 14:34):

I have a general question: why don't we use the API developed for formal power series/laurent series (which is already in mathlib)? Just because it is useless in our setting?

Johan Commelin (Aug 26 2021 at 14:36):

I think that in principle we could certainly use it. But we still need the filtration, and the fact that it is a filtration by profinite/comphaus gadgets.

Adam Topaz (Aug 26 2021 at 14:36):

I think it would be a good idea to use the existing Laurent series API if we need the ring structure, but do we actually need the ring structure?

Johan Commelin (Aug 26 2021 at 14:37):

Afaik, for the bare minimum challenge, we don't need it.

Adam Topaz (Aug 26 2021 at 14:38):

I proved this lemma:
https://github.com/leanprover-community/lean-liquid/blob/b7c0ec4cd13dc012041cc46d50042758d1ef2dcb/src/laurent_measures/basic.lean#L287
which should let us relate the current def of laurent_measures to Laurent series as they appear in mathlib.

Filippo A. E. Nuccio (Aug 26 2021 at 14:38):

OK, I see.

Adam Topaz (Aug 26 2021 at 14:39):

(note that a priori laurent_measures makes no restrictions on vanishing of coefficients)

Filippo A. E. Nuccio (Aug 26 2021 at 14:44):

The reason I was asking is that I was thinking about defining the map Z((T))rR\mathbb{Z}((T))_r\to\mathbb{R}. I guess we'll need it pretty soon, right?

Filippo A. E. Nuccio (Aug 26 2021 at 14:45):

I was thinking of defining it at the level of groups, but as ring-hom is probably better (surjectivity will be harder, of course). Hence the question about giving the lhs a ring structure.

Johan Commelin (Aug 26 2021 at 14:47):

For surjectivity, given some xRx \in \R, we should define a stream of coefficients (an)n(a_n)_n such that nan(12)n=x\sum_n a_n (\tfrac12)^n = x.

Johan Commelin (Aug 26 2021 at 14:47):

I think that's a project that can be done independent of any other choices.

Filippo A. E. Nuccio (Aug 26 2021 at 14:47):

But it won't be unique.

Johan Commelin (Aug 26 2021 at 14:47):

Sure, I don't care (-;

Filippo A. E. Nuccio (Aug 26 2021 at 14:47):

OK, I am happy to give it a go.

Johan Commelin (Aug 26 2021 at 14:47):

But you can take an{1,0,1}a_n \in \{-1,0,1\} if you want.

Filippo A. E. Nuccio (Aug 26 2021 at 14:49):

On the other hand, I was also thinking that a priori it should be a map of condensed ab. groups. Given the fact that all topologies here are nice, I guess that full faithfulness will tell us that it makes no difference, but do we intend to prove this faithfulness or is it better to define it as map of condensed ab groups?

Adam Topaz (Aug 26 2021 at 14:50):

As long as it's a map of comphaus_filt_... things, it will be fine on the condensed level as well.

Adam Topaz (Aug 26 2021 at 14:51):

So it comes down to the compatibility of this map with the norms, which should be more-or-less clear from the definitions.

Filippo A. E. Nuccio (Aug 26 2021 at 14:52):

Ah ok, so I will need not to define it as map of ab. groups but as comphaus_filt_.. things, right?

Filippo A. E. Nuccio (Aug 26 2021 at 14:53):

Do we already have a proof that \mathbb{R} is comph_filt..?

Johan Commelin (Aug 26 2021 at 14:53):

Where "more-or-less-clear" means Prop 7.2

Filippo A. E. Nuccio (Aug 26 2021 at 14:53):

OK, I'll go for it in the fae_overconvergent.. branch, in a new file.

Adam Topaz (Aug 26 2021 at 14:54):

Filippo A. E. Nuccio said:

OK, I'll go for it in the fae_overconvergent.. branch, in a new file.

make sure to merge master -> fae_over...

Filippo A. E. Nuccio (Aug 26 2021 at 14:54):

Already done!

Adam Topaz (Aug 26 2021 at 15:00):

Johan Commelin said:

Where "more-or-less-clear" means Prop 7.2

Yeah, but look at how Prop 7.2(3) is proved (with C3=1C_3 = 1)

Filippo A. E. Nuccio (Aug 26 2021 at 15:03):

@
Adam Topaz said:

Filippo A. E. Nuccio said:

OK, I'll go for it in the fae_overconvergent.. branch, in a new file.

make sure to merge master -> fae_over...

On the other hand, since the comphaus_filt... branch is not in master, I don't have the comphaus business in mine yet. It is not super-urgent, but if you can merge comphaus... -> master may be tomorrow this would help.

Adam Topaz (Aug 26 2021 at 15:08):

I'll try to merge it at some point today.

Johan Commelin (Sep 01 2021 at 10:57):

@Filippo A. E. Nuccio Did you by chance start working on 7.2 or something related?

Filippo A. E. Nuccio (Sep 01 2021 at 11:46):

Yes, I have begun working on the definition of θ\theta. I am actually almost done with the proof of its surjectivity as set-theoretic map, but I need to upgrade it to a comphaus_bla map, which will rely on 7.2. This I planned to do in what follows.

Johan Commelin (Sep 01 2021 at 11:50):

Great! Is this also on a branch, if so which one?

Filippo A. E. Nuccio (Sep 01 2021 at 11:50):

Do you need them now? I wanted to polish a bit my file before pushing to master.

Filippo A. E. Nuccio (Sep 01 2021 at 11:50):

Ah, the branch is fae_overconnvergent...

Johan Commelin (Sep 01 2021 at 11:51):

Ok

Johan Commelin (Sep 01 2021 at 11:51):

I just wanted to get a sense of what's going on.

Johan Commelin (Sep 01 2021 at 11:51):

The downside of these branches is that master is not always an accurate depiction of where we are standing

Filippo A. E. Nuccio (Sep 01 2021 at 11:52):

Yes, you're right.

Filippo A. E. Nuccio (Sep 01 2021 at 11:53):

On the other hand, I wrote a lot (lot!) of nonsense and played with many things to get used to summability, and it would have been insane to push all this to master, no?

Johan Commelin (Sep 01 2021 at 11:53):

fair enough

Filippo A. E. Nuccio (Sep 01 2021 at 11:53):

At any rate, speaking about 6.9, will we need Harbater's theorem describing kerθ\ker\theta?

Filippo A. E. Nuccio (Sep 01 2021 at 11:54):

(In particular, given we're not putting a ring structure on Z((T))r\mathbb{Z}((T))_r)?

Johan Commelin (Sep 01 2021 at 12:01):

no, we only apply it to x=1/2x = 1/2, so we will be effectively modding out (2T1)(2T - 1)

Johan Commelin (Sep 01 2021 at 12:02):

The proof in S7 is a lot more general, and shows that evaluating at non-rational numbers still has a principal ideal as kernel

Filippo A. E. Nuccio (Sep 01 2021 at 12:02):

But in (2) of 6.9 there are both rr and rr' (I guess you meant r=1/2r=1/2), and rr' changes with pp.

Filippo A. E. Nuccio (Sep 01 2021 at 12:03):

And soon becomes very non-rational.

Johan Commelin (Sep 01 2021 at 12:07):

No, we can keep rr' fixed in our applications.

Filippo A. E. Nuccio (Sep 01 2021 at 12:08):

OK, this I can't understand by now: but I'll study more and see how this works, I don't want to waste your time. Just going back to θ\theta: is it OK that I finish its surjectivity as set-theoretic map and then move on to the one as comp_haus_blah... (i.e. I prove it is a comp_haus_blah morphism)?

Johan Commelin (Sep 01 2021 at 12:08):

The strategy is as follows: we want to prove LTE for some pp (i.e. a statement about Ext groups and Mp\mathcal M_p). So now we set r=1/2r' = 1/2 and r=(r)pr = (r')^p. And then we reduce everything to theorem 9.4 for r<rr < r'.

Filippo A. E. Nuccio (Sep 01 2021 at 12:09):

AH OK, this makes sense.

Filippo A. E. Nuccio (Sep 01 2021 at 12:10):

I somehow thought that to prove the full statement about Ext groups we needed to let pp vary.

Johan Commelin (Sep 01 2021 at 12:11):

No, I think that only happens when you start to worry about M<p\mathcal M_{<p}. That's part of the statement that R\R is an analytic ring, but it's not part of the LTE challenge.

Filippo A. E. Nuccio (Sep 01 2021 at 12:12):

OK, I guess I see but as said I prefer to study more before saying nonsense. I'll let you know as soon as I push to master some advances on 6.9.

Filippo A. E. Nuccio (Sep 02 2021 at 07:30):

Going back to the discussion we had yesterday, I suppose that what we want is that r' does not appear in the definition of θ\theta and that r≥0 and hr : r < 1 do appear. I guess they better be explicit variables, right?

Johan Commelin (Sep 02 2021 at 07:37):

Hmm, the definition of θ\theta very much depends on r', right? It's evaluating Laurent series at r'.

Filippo A. E. Nuccio (Sep 02 2021 at 07:38):

Sure, but you told me you wanted to fix r' = 1/2.

Johan Commelin (Sep 02 2021 at 07:38):

I guess you need 0<rr0 < r' \le r, but I don't think you need r<1r < 1 for most of this story.

Johan Commelin (Sep 02 2021 at 07:39):

Filippo A. E. Nuccio said:

Sure, but you told me you wanted to fix r' = 1/2.

Aaah, if you want you can specialize there directly. I think that for defining the hom it doesn't make things easier. But for the surjectivity, and for describing the kernel, it will certainly help.

Filippo A. E. Nuccio (Sep 02 2021 at 07:39):

Yes, this was my point.

Filippo A. E. Nuccio (Sep 02 2021 at 07:40):

Of course, for the def is basically equivalent. But I was thinking at the best API. First, having r' in the proof makes things (slightly) less nice, but most importantly we have to carry it over forever, and if we only use r'=1/2 it is better to have it fixed, no? This I meant by " r' does not appear".

Filippo A. E. Nuccio (Sep 02 2021 at 07:41):

On the other hand, I guess we want to have r (as the radius of the laurent measure mapping to a certain xx through θ\theta) variable; but then my question is whether implicit or explicit.

Johan Commelin (Sep 02 2021 at 07:45):

Actually, fixing things early can sometimes make life harder. For example simp might start doing things to the / in 1/2. Keeping it packaged in an atomic r' can help in those cases.

Johan Commelin (Sep 02 2021 at 07:45):

So I would keep around the r' until specializing to 1/2 really helps.

Filippo A. E. Nuccio (Sep 02 2021 at 07:47):

Ah, ok. I will modify accordingly. And what about implicit/explicit ones? r' certainly needs to be explicit if we want to specialize to 1/2 but r (and r < 1, should this be needed)? I can't come up with a nice picture in my head of how we will need to apply this. Of course, it won't be very hard to change later, but if you have a suggestion I'd be happy to follow it.

Johan Commelin (Sep 02 2021 at 07:52):

I would make r and r' explicit and use [fact (0 < r')] etc for the conditions.

Filippo A. E. Nuccio (Sep 02 2021 at 07:53):

OK, I was going in that direction, good. Thanks! I will push something later today and let you know when it's done.

Filippo A. E. Nuccio (Sep 02 2021 at 11:34):

I have pushed the file laurent_measures/thm69.lean with the basics concerning θ\theta and its surjectivity. I might have some time later today but at any rate I plan to finish both the surjectivity and attack some of thm 7.2 to show it is a comp_haus_blah morphism. This will need to wait until Tuesday but I will have time next week to advance.

Adam Topaz (Sep 02 2021 at 16:17):

Adam Topaz said:

I'll try to merge it at some point today.

Sorry it's a few (maybe more than a few ;)) days late... but this is now merged to master

Filippo A. E. Nuccio (Sep 03 2021 at 06:44):

Thanks!


Last updated: Dec 20 2023 at 11:08 UTC