Zulip Chat Archive
Stream: condensed mathematics
Topic: mathlib sprint
Johan Commelin (May 04 2021 at 06:34):
Scott suggested that we do a mathlib sprint before continuing with the col_exact
part of the proof. I think he has a very good point.
Johan Commelin (May 04 2021 at 06:34):
jmc@atarrimbo:~/data/math/lean-liquid$ wc -l src/for_mathlib/*.lean
18 src/for_mathlib/additive_functor.lean
93 src/for_mathlib/add_monoid_hom.lean
89 src/for_mathlib/arrow.lean
16 src/for_mathlib/big_operators_basic.lean
30 src/for_mathlib/category.lean
9 src/for_mathlib/curry.lean
42 src/for_mathlib/dfinsupp.lean
55 src/for_mathlib/equalizers.lean
31 src/for_mathlib/extend_from_nat.lean
36 src/for_mathlib/filter_at_top_bot.lean
44 src/for_mathlib/finsupp.lean
400 src/for_mathlib/free_abelian_group.lean
135 src/for_mathlib/Gordan.lean
100 src/for_mathlib/grading_examples.lean
544 src/for_mathlib/grading.lean
54 src/for_mathlib/grading_monoid_algebra.lean
165 src/for_mathlib/grading_zero_subring.lean
58 src/for_mathlib/int_grading_lemma.lean
90 src/for_mathlib/kronecker.lean
70 src/for_mathlib/linear_algebra.lean
35 src/for_mathlib/nnreal.lean
99 src/for_mathlib/normed_group_hom_bound_by.lean
175 src/for_mathlib/normed_group_hom_completion.lean
96 src/for_mathlib/normed_group_hom_equalizer.lean
72 src/for_mathlib/normed_group_hom.lean
167 src/for_mathlib/normed_group.lean
360 src/for_mathlib/normed_group_quotient.lean
26 src/for_mathlib/order_basic.lean
14 src/for_mathlib/pi_nat_apply.lean
74 src/for_mathlib/preadditive_category.lean
21 src/for_mathlib/Profinite.lean
34 src/for_mathlib/pseudo_metric.lean
26 src/for_mathlib/quotient_group.lean
26 src/for_mathlib/real_Inf.lean
72 src/for_mathlib/specific_limit.lean
34 src/for_mathlib/tsum.lean
37 src/for_mathlib/uniform_space_cauchy.lean
3447 total
Kevin Buzzard (May 04 2021 at 07:26):
The biggest file there is grading.lean
and I was hoping to leave it there until the proof of Gordan's lemma is done -- basically Gordan will be the proof that Eric and I have got gradings right
Johan Commelin (May 04 2021 at 07:27):
Sure, we can leave the Gordan files there for now.
Johan Commelin (May 04 2021 at 07:28):
But there is enough other stuff that can be moved to mathlib already :grinning:
Johan Commelin (May 04 2021 at 08:22):
Some easy progress:
75 src/for_mathlib/add_monoid_hom.lean
86 src/for_mathlib/arrow.lean -- PR exists
16 src/for_mathlib/big_operators_basic.lean
32 src/for_mathlib/category.lean -- PR exists
11 src/for_mathlib/curry.lean -- PR exists
42 src/for_mathlib/dfinsupp.lean
55 src/for_mathlib/equalizers.lean
36 src/for_mathlib/filter_at_top_bot.lean
44 src/for_mathlib/finsupp.lean
400 src/for_mathlib/free_abelian_group.lean
135 src/for_mathlib/Gordan.lean
100 src/for_mathlib/grading_examples.lean
544 src/for_mathlib/grading.lean
54 src/for_mathlib/grading_monoid_algebra.lean
165 src/for_mathlib/grading_zero_subring.lean
58 src/for_mathlib/int_grading_lemma.lean
90 src/for_mathlib/kronecker.lean
70 src/for_mathlib/linear_algebra.lean
35 src/for_mathlib/nnreal.lean
99 src/for_mathlib/normed_group_hom_bound_by.lean
175 src/for_mathlib/normed_group_hom_completion.lean
96 src/for_mathlib/normed_group_hom_equalizer.lean
72 src/for_mathlib/normed_group_hom.lean
167 src/for_mathlib/normed_group.lean
360 src/for_mathlib/normed_group_quotient.lean
26 src/for_mathlib/order_basic.lean
14 src/for_mathlib/pi_nat_apply.lean
74 src/for_mathlib/preadditive_category.lean
21 src/for_mathlib/Profinite.lean
34 src/for_mathlib/pseudo_metric.lean
26 src/for_mathlib/quotient_group.lean
26 src/for_mathlib/real_Inf.lean
72 src/for_mathlib/specific_limit.lean
34 src/for_mathlib/tsum.lean
37 src/for_mathlib/uniform_space_cauchy.lean
3381 total
Patrick Massot (May 04 2021 at 08:44):
I'll open topology PRs
Johan Commelin (May 04 2021 at 08:48):
Merci!
Riccardo Brasca (May 04 2021 at 08:59):
I will do some normed_group
stuff.
Riccardo Brasca (May 04 2021 at 08:59):
You mentioned that the quotient has causes some diamond, right?
Johan Commelin (May 04 2021 at 08:59):
But with pseudo_normed_group
which isn't moving to mathlib anytime soon, I think
Johan Commelin (May 04 2021 at 09:00):
Ooh, I think you are refering to another issue.
Johan Commelin (May 04 2021 at 09:00):
Yes, I don't fully understand it.
Johan Commelin (May 04 2021 at 09:01):
https://github.com/leanprover-community/lean-liquid/blob/master/src/polyhedral_lattice/cech.lean#L156 is quite evil
Riccardo Brasca (May 04 2021 at 09:02):
My concern was much more basic: the quotient is a topological space in two ways, I don't if this is going to be a problem
Johan Commelin (May 04 2021 at 09:05):
It might very well be the problem that I was hitting
Johan Commelin (May 04 2021 at 09:05):
And it certainly will start causing problems at some point.
Johan Commelin (May 04 2021 at 09:05):
But this can be fixed by not using of_core
Johan Commelin (May 04 2021 at 09:06):
If you manually fill in all the fields the you can give it the quotient topology and prove that this is equal to the norm topology.
Eric Wieser (May 04 2021 at 09:32):
Kevin Buzzard said:
The biggest file there is
grading.lean
and I was hoping to leave it there until the proof of Gordan's lemma is done -- basically Gordan will be the proof that Eric and I have got gradings right
I've got a few mathlib PRs open for grading-related things already; (#7380, #7420, #7422)
Kevin Buzzard (May 04 2021 at 09:41):
These are all "external grading" PR's -- grading.lean
is the "internal grading" version. I've been trying to make sure that our ideas glue together with one another.
Johan Commelin (May 04 2021 at 09:42):
The first two of Eric's PRs are now on the queue. Nr3 depends on nr2, so has to wait a bit.
Johan Commelin (May 04 2021 at 09:42):
@Eric Wieser was this stuff that is also in for_mathlib
?
Kevin Buzzard (May 04 2021 at 09:43):
No I don't think so
Kevin Buzzard (May 04 2021 at 09:46):
The grading
file in for_mathlib
can be split up into two pieces: there are unfortunately four stories here, or possibly even six if you do it properly. There's gradings of an add_comm_monoid by add_submonoids indexed by a type, gradings of an add_comm_group by add_subgroups indexed by a type (the types submonoid G
and subgroup G
are not defeq, and it seems to be practical just to do everything twice :-( ), and then there are gradings of a semiring and a ring by add_submonoids and add_subgroups respectively, indexed by both a monoid and an add_monoid (and goodness knows whether to_additive
will work). In collaboration with Eric I've developed a bunch of the theory, but now it's getting to the point where I just want to get Gordan out of the way so I've started focussing on the case we're interested in, namely gradings of a ring by add_subgroups indexed by an add_monoid.
Eric Wieser (May 04 2021 at 09:46):
Yes, sorry, I should have made the fact it was external clear. I kept trying to do internal ones and ending up finding the external version easier to prove
Kevin Buzzard (May 04 2021 at 09:47):
Right now things are fine because I'm still tinkering with the API for internal stuff, and if it starts going into mathlib then this will add to the confusion.
Johan Commelin (May 04 2021 at 10:09):
Ooops! My wc -l
was too naive...
Johan Commelin (May 04 2021 at 10:10):
jmc@atarrimbo:~/data/math/lean-liquid$ git ls-files | grep for_mathlib | xargs wc -l
26 src/for_mathlib/Fintype/basic.lean
135 src/for_mathlib/Gordan.lean
30 src/for_mathlib/Profinite.lean
1029 src/for_mathlib/Profinite/functorial_limit.lean
46 src/for_mathlib/Profinite/limits.lean
69 src/for_mathlib/Profinite/locally_constant.lean
67 src/for_mathlib/Profinite/nhds.lean
34 src/for_mathlib/Top/limits.lean
86 src/for_mathlib/arrow.lean
16 src/for_mathlib/big_operators_basic.lean
32 src/for_mathlib/category.lean
11 src/for_mathlib/curry.lean
42 src/for_mathlib/dfinsupp.lean
55 src/for_mathlib/equalizers.lean
36 src/for_mathlib/filter_at_top_bot.lean
44 src/for_mathlib/finsupp.lean
400 src/for_mathlib/free_abelian_group.lean
544 src/for_mathlib/grading.lean
100 src/for_mathlib/grading_examples.lean
54 src/for_mathlib/grading_monoid_algebra.lean
165 src/for_mathlib/grading_zero_subring.lean
58 src/for_mathlib/int_grading_lemma.lean
90 src/for_mathlib/kronecker.lean
70 src/for_mathlib/linear_algebra.lean
35 src/for_mathlib/nnreal.lean
167 src/for_mathlib/normed_group.lean
72 src/for_mathlib/normed_group_hom.lean
99 src/for_mathlib/normed_group_hom_bound_by.lean
175 src/for_mathlib/normed_group_hom_completion.lean
96 src/for_mathlib/normed_group_hom_equalizer.lean
360 src/for_mathlib/normed_group_quotient.lean
26 src/for_mathlib/order_basic.lean
14 src/for_mathlib/pi_nat_apply.lean
74 src/for_mathlib/preadditive_category.lean
34 src/for_mathlib/pseudo_metric.lean
26 src/for_mathlib/quotient_group.lean
26 src/for_mathlib/real_Inf.lean
81 src/for_mathlib/simplicial/augmented.lean
158 src/for_mathlib/simplicial/complex.lean
72 src/for_mathlib/specific_limit.lean
34 src/for_mathlib/tsum.lean
37 src/for_mathlib/uniform_space_cauchy.lean
4825 total
Johan Commelin (May 04 2021 at 10:11):
Moving all of this to mathlib is going to cut the de Bruijn constant of the project by 30%
Patrick Massot (May 04 2021 at 10:31):
I PRed filter_at_top_bot.lean
and order_basic.lean
Patrick Massot (May 04 2021 at 10:37):
and big_operators_basic.lean
Patrick Massot (May 04 2021 at 10:49):
I opened a PR for nnreal.lean
and created a temporary wiki page at https://github.com/leanprover-community/lean-liquid/wiki
Johan Commelin (May 04 2021 at 10:54):
Thanks for creating that wiki page
Patrick Massot (May 04 2021 at 10:55):
I didn't add PR numbers unless it was very quick to find the number with certainty
Patrick Massot (May 04 2021 at 10:56):
Do we want to create dependent PRs or wait a bit for a first wave of merge? I think I'll be quickly stuck until #7469 is merged.
Patrick Massot (May 04 2021 at 10:58):
It would be nice if @Sebastien Gouezel could have a look at #7469 soon, it should be pretty quick, unless I missed existing lemmas or golfing opportunities.
Johan Commelin (May 04 2021 at 10:58):
I think dependent PRs are fine, if you think the PR it depends on is completely straightforward, or if you don't mind backporting updates from the dependency to the depending PR
Patrick Massot (May 04 2021 at 10:59):
Riccardo Brasca said:
I will do some
normed_group
stuff.
Do you mean the pseudo normed stuff or also my work?
Johan Commelin (May 04 2021 at 10:59):
I think he meant quotients of (semi) normed groups
Johan Commelin (May 04 2021 at 11:00):
Which are currently in the normed_group_hom
namespace. (@Riccardo Brasca they should probably move out of that...)
Riccardo Brasca (May 04 2021 at 11:01):
Yes, I meant quotient of seminormed groups. I am currently PRing for_mathlib/normed_group_hom.lean
, that is easy
Patrick Massot (May 04 2021 at 11:02):
This particular file is part of my work. I don't mind at all (although I would slightly prefer to PR my non-trivial stuff myself), I mostly want to avoid duplicating PRs.
Riccardo Brasca (May 04 2021 at 11:19):
Ah sorry, I saw that the lemma were easy enough to PR them quite quickly. In any case I will do normed_group_quotient.lean
next.
Sebastien Gouezel (May 04 2021 at 11:39):
Patrick Massot said:
It would be nice if Sebastien Gouezel could have a look at #7469 soon, it should be pretty quick, unless I missed existing lemmas or golfing opportunities.
Done.
Kevin Buzzard (May 04 2021 at 12:02):
I put a bunch of sorried statements into polyhedral_lattice.basic
a few weeks ago, and I've now moved them out into their own for_mathlib.finite_free
file. In case anyone decides to sprint towards them -- I'm sitting on these sorry
s because Anne is bundling is_basis
so all the proofs will break. All but one should be trivial, but one (kernel of a non-zero map from to is finite free of rank one less than where you started) might be difficulr. @Anne Baanen should I PR some of these (and then they become your problem) or sit on them until you've refactored?
Anne Baanen (May 04 2021 at 12:11):
I was hoping to create the final bundled basis PR today after I fix the last lint errors, though merging might take a bit longer since I still have to check for any style issues. I could make a WIP pull request right now, to allow you to base your additions on top of it.
Johan Commelin (May 04 2021 at 12:19):
I think we can wait for a couple of days (-;
Johan Commelin (May 04 2021 at 12:19):
There is so much in flux right now that I don't think we should depend on a PR instead of mathlib master
Patrick Massot (May 04 2021 at 12:21):
Thanks Sébastien!
Adam Topaz (May 04 2021 at 12:29):
Just catching up here... a mathlib sprint is a great idea! I opened #7448 yesterday which takes care of for_mathlib/***/limits.lean
where *** = Top, Profinite
. I updated the wiki as well.
Patrick Massot (May 04 2021 at 12:32):
Did we already reached that 200 open PR score before?
Kevin Buzzard (May 04 2021 at 12:34):
Surely not.
Patrick Massot (May 04 2021 at 12:35):
Johan, why did you add check boxes to the wiki page? When to you want to tick off an item? When the PR is merged?
Johan Commelin (May 04 2021 at 12:38):
For some reason the ticks didn't seem to work... but my idea was that we could tick off an item when a PR was made, and then remove the item when the PR is merged. But it's not very important.
Adam Topaz (May 04 2021 at 12:40):
For Fintype/basic.lean
we should decide whether to add instance {A : Fintype} : topological_space A := ⊥
as a global instance ;)
Riccardo Brasca (May 04 2021 at 12:41):
It works if one writes [x]
.
Johan Commelin (May 04 2021 at 12:42):
Right, but you can't just click on the checkbox. You need to edit. Well, I guess we need to edit anyway, to add PR numbers.
Johan Commelin (May 04 2021 at 12:42):
Adam Topaz said:
For
Fintype/basic.lean
we should decide whether to addinstance {A : Fintype} : topological_space A := ⊥
as a global instance ;)
I vote for def, and then make it a local instance when needed.
Adam Topaz (May 04 2021 at 12:57):
Johan Commelin (May 05 2021 at 13:00):
We're doing something wrong:
26 src/for_mathlib/Fintype/basic.lean
135 src/for_mathlib/Gordan.lean
30 src/for_mathlib/Profinite.lean
1029 src/for_mathlib/Profinite/functorial_limit.lean
46 src/for_mathlib/Profinite/limits.lean
69 src/for_mathlib/Profinite/locally_constant.lean
67 src/for_mathlib/Profinite/nhds.lean
34 src/for_mathlib/Top/limits.lean
86 src/for_mathlib/arrow.lean
16 src/for_mathlib/big_operators_basic.lean
32 src/for_mathlib/category.lean
11 src/for_mathlib/curry.lean
42 src/for_mathlib/dfinsupp.lean
55 src/for_mathlib/equalizers.lean
36 src/for_mathlib/filter_at_top_bot.lean
133 src/for_mathlib/finite_free.lean
44 src/for_mathlib/finsupp.lean
390 src/for_mathlib/free_abelian_group.lean
630 src/for_mathlib/grading.lean
104 src/for_mathlib/grading_examples.lean
54 src/for_mathlib/grading_monoid_algebra.lean
281 src/for_mathlib/grading_zero_subring.lean
58 src/for_mathlib/int_grading_lemma.lean
90 src/for_mathlib/kronecker.lean
70 src/for_mathlib/linear_algebra.lean
35 src/for_mathlib/nnreal.lean
167 src/for_mathlib/normed_group.lean
80 src/for_mathlib/normed_group_hom.lean
99 src/for_mathlib/normed_group_hom_bound_by.lean
175 src/for_mathlib/normed_group_hom_completion.lean
96 src/for_mathlib/normed_group_hom_equalizer.lean
360 src/for_mathlib/normed_group_quotient.lean
26 src/for_mathlib/order_basic.lean
14 src/for_mathlib/pi_nat_apply.lean
74 src/for_mathlib/preadditive_category.lean
34 src/for_mathlib/pseudo_metric.lean
26 src/for_mathlib/quotient_group.lean
26 src/for_mathlib/real_Inf.lean
76 src/for_mathlib/simplicial/augmented.lean
165 src/for_mathlib/simplicial/complex.lean
72 src/for_mathlib/specific_limit.lean
34 src/for_mathlib/tsum.lean
37 src/for_mathlib/uniform_space_cauchy.lean
5164 total
Johan Commelin (May 05 2021 at 13:00):
Total number of lines in for_mathlib
is going up instead of down :thinking: :cold_sweat:
Adam Topaz (May 05 2021 at 13:44):
Sorry... I think my changes to for_mathlib/simplicial/*
added a net of 2 lines.
Johan Commelin (May 05 2021 at 13:46):
Probably a bunch of grading stuff was added (-;
Yaël Dillies (May 05 2021 at 13:52):
Oh, you're doing simplicial stuff. Does that overlap in any way with the stuff Bhavik and I are doing to prove Sperner's Lemma? We define a simplicial complex as a set of finsets closed by inclusion and gluing nicely. From skimming through the files, I wouldn't say so, but I may be lacking insight.
Johan Commelin (May 05 2021 at 13:53):
No, we're not doing anything with that kind of simplicial complexes
Johan Commelin (May 05 2021 at 13:54):
I guess there is a bit of clash in terminology there
Peter Scholze (May 05 2021 at 13:54):
All this terminology with simplicial objects vs simplicial complexes is a bit of a mess...
Yaël Dillies (May 05 2021 at 13:56):
Yeah okay, that's what I was suspecting :)
Riccardo Brasca (May 05 2021 at 17:53):
I am going to start working on normed_group_quotient.lean
. Since there a little bit of work to do here and I am not very experienced with diamonds, I would to know if the following is the good strategy. The problem is that if M
is a semi_normed_group
and S : add_subgroup M
, then quotient S
is automatically a uniform_space
, but equipping quotient S
with a seminorm will equip it with another uniform_space
structure. My idea is the following.
- Equip
quotient S
with a seminorm, providinghas_norm (quotient S)
. - Equip
quotient S
with a pseudodistance, providinghas_dist (quotient S)
:dist x y
will be defined as∥x - y∥
. - Prove all the relevant properties of
∥ ∥
(this is already done) and deduce the relevant properties ofdist
. - Providing
pseudo_metric_space (quotient S)
:
*dist_self
dist_comm
dist_triangle
are already proven.
*edist
andedist_dist
can be ignored.
*to_uniform_space : uniform_space (quotient S)
here I guess thatby apply_instance
should work, but in any case it is the one already there. uniformity_dist
: this is the main point that should be proven by hand.- Redo everything for
normed_group
and a closedS
.
Johan Commelin (May 05 2021 at 17:58):
That looks good to me.
Johan Commelin (May 05 2021 at 17:58):
Note that "Redo everything" shouldn't be a lot of work, because you can probably reuse the uniformity_dist
proof.
Adam Topaz (May 05 2021 at 18:03):
Another option could be to make a type alias sub_semi_normed_group
defined as add_subgroup and derive whatever you don't want to replicate
Riccardo Brasca (May 05 2021 at 18:03):
Sure! It's funny, this is not a Lean problem, uniformity_dist
is a real mathematical theorem, whose standard proof is "it's called quotient, so it has the quotient topology".
Johan Commelin (May 05 2021 at 18:07):
That's exactly the trick that "forgetful inheritance" plays. You prove this theorem once and for all, and you never have to mention it again.
Johan Commelin (May 06 2021 at 06:15):
$ git commit -am "bump mathlib"
[master 465cbd5] bump mathlib
10 files changed, 3 insertions(+), 104 deletions(-)
delete mode 100644 src/for_mathlib/big_operators_basic.lean
delete mode 100644 src/for_mathlib/category.lean
delete mode 100644 src/for_mathlib/filter_at_top_bot.lean
Riccardo Brasca (May 06 2021 at 21:14):
I need some to solve the diamond about semi_normed_group
quotient. I am really inexperienced in working with uniformity and stuff like that, so this can very well be not difficult but I don't know how to attack it. The specific lemma I need is here:
https://github.com/leanprover-community/lean-liquid/blob/61025a2661fac60cee1adc200681a31196ba584f/src/for_mathlib/normed_group_quotient.lean#L224
The second sorry
is mathematically trivial, right? The identity from the space with the quotient topology to the same space with the topology induced by the metric is continuous since the composition with the projection (that is of course again the projection) is continuous. But I have no idea where to start
I don't mind doing the dirty work with the epsilon and so on, but I would appreciate some indication from some uniform_space
guru.
Patrick Massot (May 06 2021 at 21:16):
is this on a special branch?
Riccardo Brasca (May 06 2021 at 21:18):
Yes, it is my branch riccardobrasca
, we decided that for the LTE we could just ignore the diamond and so use normed_group.of_core
Riccardo Brasca (May 06 2021 at 21:20):
I started the work to PR it to mathlib so I did some modifications to the whole file that are irrelevant for this problem, the quickest way to show it was to add this instance to LTE (but not in master of course)
Patrick Massot (May 06 2021 at 21:21):
It's too late now, but I'll have a look tomorrow evening, don't worry.
Riccardo Brasca (May 06 2021 at 21:22):
Thank's! If I make some progress I will push it to the same branch
Riccardo Brasca (May 06 2021 at 21:30):
Note that I am not 100% sure this is the statement we want. The problem I want to solve is the following. If M
is a semi_normed_group
and S : add_subgroup M
, then quotient S
is automatically a topological_space
, but equipping quotient S
with a seminorm will equip it with another topological_space
structure. We want these to be the same. The proposed solution is to first of all provide the pseudo_metric_space
instance (via the norm of course, but by hand), using topological_add_group.to_uniform_space (quotient S)
as uniformity
, so we need to prove uniformity_dist
for this uniformity
.
Johan Commelin (May 07 2021 at 04:06):
Hmm, I don't think that is the uniformity you want to use. Is there already something for quotients of pseudo_metric_space
s?
Riccardo Brasca (May 07 2021 at 07:33):
We don't have anything about quotient of metric spaces. Indeed in general there is no hope to make it a metric space, but it's possible to make it a pseudometric space. But the compatibility with the quotient topology seems to be a subtle question, see for example here: https://mathoverflow.net/questions/195611/quotient-of-metric-spaces
In our case, quotient S
is automatically a topological space (meaning that apply_instance
works). There is no instance of uniform_space
on it, but the doc for topological_add_group.to_uniform_space
says "The right uniformity on a topological group", so I decided to work with it.
lemma test (S : add_subgroup M) :
(topological_add_group.to_uniform_space (quotient S)).to_topological_space =
quotient.topological_space := rfl
works, so I think we are good here.
Johan Commelin (May 07 2021 at 07:42):
Hmm, but topological_add_group.to_uniform_space
is somewhat non-canonical. It just chooses the right uniformity (why not the left). I would be surprised if that's the best thing to do here. But it might be the best way to avoid crazy headaches.
Let me read that MO thread.
Riccardo Brasca (May 07 2021 at 07:52):
It's possible that there is no canonical uniformity on the quotient (although here the group commutative, so left and right should be the same). I mean, of course there is one, since there is a norm. But the (canonical) topological space structure comes from free, without using the norm, I don't know if the same is true for the uniformity
Johan Commelin (May 07 2021 at 07:52):
Does mathlib have quotients of topological groups?
Johan Commelin (May 07 2021 at 07:53):
src/topology/algebra/group.lean:instance topological_group_quotient [N.normal] : topological_group (quotient N) :=
looks good
Johan Commelin (May 07 2021 at 07:53):
Let's see what they do there
Riccardo Brasca (May 07 2021 at 07:53):
Yes, there is docs#topological_add_group_quotient
Riccardo Brasca (May 07 2021 at 07:53):
But it's only a topological space, not a uniform space
Johan Commelin (May 07 2021 at 07:54):
Right, it avoids the whole issue :sad:
Riccardo Brasca (May 07 2021 at 07:54):
For the topology everything is clear, but in mathlib a metric space is a metric that is compatible with a uniformity, not with a topology
Johan Commelin (May 07 2021 at 07:55):
We need to define the uniformity on the quotient in terms of the uniformity upstairs.
Johan Commelin (May 07 2021 at 07:55):
And maybe this is hard in general, but I think that for group quotients it should be easier
Johan Commelin (May 07 2021 at 07:56):
On the other hand, if there are no other ways of putting a uniformity on a quotient, this cannot lead to a diamond
Johan Commelin (May 07 2021 at 07:57):
So maybe it is fine to use topological_add_group.to_uniform_space
on the quotient group.
Riccardo Brasca (May 07 2021 at 07:57):
But the diamond would appear for the topological_space
structure, right?
Johan Commelin (May 07 2021 at 07:58):
But that is solved by what you are doing.
Johan Commelin (May 07 2021 at 07:59):
It appeared when using normed_group.of_core
. Because then the topology wouldn't be the quotient topology.
Johan Commelin (May 07 2021 at 08:00):
I am far from an expert on uniformities, but isn't there something like a push-forward uniformity?
Riccardo Brasca (May 07 2021 at 08:00):
I have no idea :sweat_smile:
Johan Commelin (May 07 2021 at 08:03):
It looks like there is only a comap
in general.
Riccardo Brasca (May 07 2021 at 08:03):
Wait! "The right uniformity on a topological group." means "The good uniformity on a topological group." or "The not left uniformity on a topological group."??
Kevin Buzzard (May 07 2021 at 08:04):
It means the not left one
Johan Commelin (May 07 2021 at 08:04):
The "not left" uniformity
Johan Commelin (May 07 2021 at 08:04):
But given that we are in the commutative setting, it doesn't matter up to defeq issues.
Johan Commelin (May 07 2021 at 08:04):
And of course defeq is exactly what we care about now :expressionless:
Johan Commelin (May 07 2021 at 08:05):
https://core.ac.uk/download/pdf/82205121.pdf Thm 11 suggests that {pi(U) | U is an entourage upstairs}
should be a uniformity on the quotient. (Here pi
is the quotient map to the quotient group.)
Kevin Buzzard (May 07 2021 at 08:05):
A uniformity is informally a way of saying "a is as close to b as c is to d". In a metric space we can say this as d(a,b)=d(c,d). In a topological space we can't say this because there is no way of comparing neighbourhoods of a to neighbourhoods of c. In a topological group however there are two ways of doing this -- left multiplication by c/a or right multiplication by a\c.
Kevin Buzzard (May 07 2021 at 08:08):
The first line of that paper seems to indicate that pushing forward a uniform structure along a quotient map is a problematic issue in general (which would explain the non-existence of map
for uniform structures)
Patrick Massot (May 07 2021 at 08:18):
I'm on my phone and won't get to a computer in the next 8 hours. But I promise I'll handle this tonight. Indeed there is no pushfoward uniformity in general.
Riccardo Brasca (May 07 2021 at 08:26):
BTW I just bumped mathlib, removingsrc/for_mathlib/real_Inf.lean
Johan Commelin (May 07 2021 at 09:31):
Bunch of mathlib PRs merged. I'll do another bump
Riccardo Brasca (May 07 2021 at 09:43):
normed_group_hom.ker_eq_preimage
has become normed_group_hom.coe_ker
Johan Commelin (May 07 2021 at 10:46):
The mathlib bump was intterupted by a trip to Kindergarten to pick up my daughter. But now it's done.
Kevin Buzzard (May 07 2021 at 12:18):
Thank you as ever!
Grading -- I see no problems with pushing this stuff through, however I have just had around 10 days of solid marking dumped on my desk so I might be less active than usual for the next week or two. My two worries are that (a) we're going to need that the kernel of a nonzero map has rank and (b) the is_basis refactor will break a bunch of stuff (but it will be easy to fix). Everything else, I can see the light at the end of the tunnel.
Johan Commelin (May 07 2021 at 12:21):
Good luck... grading rings is sooo much more fun than grading exams.
Riccardo Brasca (May 07 2021 at 12:35):
How far are we from the following proof? Given , we know (even mathlib knows) that is free, so splits and implies .
Johan Commelin (May 07 2021 at 12:37):
We know that the rank is unique. So I think it's mostly the splitting that's needed.
Riccardo Brasca (May 07 2021 at 12:41):
I don't know the situation of the direct sum, but the section is given by docs#is_basis.constr
Riccardo Brasca (May 07 2021 at 13:58):
Now that #7523 is merged we can remove quotient_group.lean
with the next bump. I don't have time this afternoon to look at it, but note that mk'_eq_mk'_iff has become quotient_add_group.eq_iff_sub_mem and it uses ↑ instead of mk'
Johan Commelin (May 07 2021 at 15:08):
thanks for the warning (-;
Johan Commelin (May 07 2021 at 15:23):
src/for_mathlib/grading_examples.lean
is now broken, because polynomials are irreducible. I'm commenting it out for now. We can fix it after the mathlib bump.
Johan Commelin (May 07 2021 at 16:05):
Mathlib is bumped again.
Kevin Buzzard (May 07 2021 at 19:10):
Yes, we don't need that file in the proof.
Patrick Massot (May 07 2021 at 19:22):
I'm back to my computer and I have time to work on Riccardo's issue, but I fail to understand the issue. Why do you want to provide the uniform structure here?
Patrick Massot (May 07 2021 at 19:24):
I thought you had a diamond issue, but I don't see any diamond here.
Sebastien Gouezel (May 07 2021 at 19:55):
You have a topology on the quotient, which is the quotient topology. If you endow the quotient with a norm using of_core
, this creates a second topology, which is not definitionally equal to the former.
Patrick Massot (May 07 2021 at 20:08):
I see. I was confused because they were talking about uniform structures, but the issue is already with the topology.
Patrick Massot (May 07 2021 at 21:29):
I got distracted and I have to stop, but at least I can tell you this uniform structure equality is true and this has some mathematical content. I'll type the Lean proof tomorrow.
Patrick Massot (May 07 2021 at 21:31):
I can also tell you it reduces to a statement that features no uniform structure. You need to prove that neighborhoods of zero in the quotient topology are exactly sets containing an open ball with positive radius around 0 for the norm we defined on the quotient.
Riccardo Brasca (May 07 2021 at 22:16):
Sorry for the late answer: indeed the diamond is at level of topological_space
structure. My idea was to use the uniformity
since pseudo_metric_space
is set up that way.
lemma test (S : add_subgroup M) :
(topological_add_group.to_uniform_space (quotient S)).to_topological_space =
quotient.topological_space := rfl
works, so I think my strategy would solve the diamond.
Johan Commelin (May 08 2021 at 08:26):
I've started another mathlib bump on bump-08-may
. This one needs a bit of care. A bunch of limit stuff for profinite sets has moved to mathlib. @Adam Topaz if you have time, could you take a look please?
Patrick Massot (May 08 2021 at 10:05):
I finished to prove quotient normed group have the correct uniformity, but I still don't know where I should push this since I don't know what is Riccardo's branch.
Patrick Massot (May 08 2021 at 10:05):
Presumably I should simply start writing mathlib PRs with all this.
Patrick Massot (May 08 2021 at 10:06):
@Riccardo Brasca, if you are curious, you can diff your version with https://gist.github.com/PatrickMassot/a499393c0affc16281e6b66f9506a781
Patrick Massot (May 08 2021 at 10:06):
You'll see I had to add a number of lemmas about groups that should be somewhere already. I'd be interested to know if you find them in mathlib
Patrick Massot (May 08 2021 at 10:07):
For everybody, I mean:
section
open quotient_group
variables {G : Type*} [group G]
@[to_additive]
lemma monoid_hom.eq_iff {H : Type*} [group H] (f : G →* H) {x y : G} : f x = f y ↔ y⁻¹*x ∈ f.ker :=
begin
rw [f.mem_ker, f.map_mul, f.map_inv],
split,
{ intro h,
rw h,
exact inv_mul_self (f y) },
{ intro h,
convert congr_arg (λ z : H, (f y)*z) h ; simp }
end
variables (N : subgroup G) [N.normal]
@[to_additive]
lemma quotient_group.mk'_eq_iff {x y : G} : mk' N x = mk' N y ↔ y⁻¹*x ∈ N :=
by rw [(mk' N).eq_iff, quotient_group.ker_mk]
@[to_additive, simp]
lemma quotient_group.mk'_eq_one {x : G} (h : x ∈ N): mk' N x = 1 :=
by rwa [← monoid_hom.mem_ker, quotient_group.ker_mk]
@[to_additive]
lemma quotient_group.preimage_image {s : set G} :
(mk' N) ⁻¹' ((mk' N) '' s) = ⋃ n : N, (λ x : G, (x*n : G)) ⁻¹' s :=
begin
ext x,
simp,
split,
{ rintro ⟨g, g_in, h⟩,
rw quotient_group.mk'_eq_iff at h,
use ⟨_, h⟩,
simpa using g_in },
{ rintro ⟨⟨g, g_in⟩, (h : x*g ∈ s)⟩,
refine ⟨x*g, h, _⟩,
rw (mk' N).map_mul,
simp [g_in] },
end
end
Eric Wieser (May 08 2021 at 10:14):
Isn't mk'_eq_iff
docs#quotient_group.eq?
Riccardo Brasca (May 08 2021 at 10:16):
Thank you!! I don't have time this weekend to work on it, if you want to PR feel free to do it!
My plan was to PR the whole normed_group_quotient.lean
file, and this was needed to replace
instance semi_normed_group_quotient (S : add_subgroup M) :
semi_normed_group (quotient S) :=
semi_normed_group.of_core (quotient S) (quotient.is_semi_normed_group.core S)
Eric Wieser (May 08 2021 at 10:17):
mk'_eq_one
is a weaker version of docs#quotient_group.eq_one_iff
Riccardo Brasca (May 08 2021 at 10:18):
I think mk'_eq_one
was exactly quotient_group.eq_one_iff
before I PRed it and Eric improved it
Riccardo Brasca (May 08 2021 at 10:19):
In #7523
Eric Wieser (May 08 2021 at 10:21):
I don't know if we have monoid_hom.eq_iff
Patrick Massot (May 08 2021 at 11:04):
I knew I already wrote this!
Patrick Massot (May 08 2021 at 11:10):
I even wrote docs#quotient_group.preimage_image_coe, probably during the perfectoid project. But I used a direct image at that time, silly young me.
Patrick Massot (May 08 2021 at 11:22):
Eric Wieser said:
Isn't
mk'_eq_iff
docs#quotient_group.eq?
This is true only up to defeq, which is annoying for rewriting.
Eric Wieser (May 08 2021 at 11:24):
I get the feeling that mk'
is not intended to be the simp-normal form
Eric Wieser (May 08 2021 at 11:25):
In the same way that docs#submonoid.subtype has few lemmas as coe is simp-normal
Eric Wieser (May 08 2021 at 11:26):
Perhaps we're missing a quotient_group.mk'_apply : mk' N x = (x : quotient_group N)
or even quotient_group.coe_mk' : ⇑(mk' N) = coe
simp lemma
Patrick Massot (May 08 2021 at 12:11):
This is not about simp normal forms. This is about explicit argument vs type class arguments.
Patrick Massot (May 08 2021 at 12:12):
Your quotient_group.mk'_apply : mk' N x = (x : quotient_group N)
doesn't make sense because mk' N
is used only when there is no instance allowing to make sense of (x : quotient_group N)
Eric Wieser (May 08 2021 at 12:48):
What instance / typeclass argument are you referring to?
Eric Wieser (May 08 2021 at 12:52):
This works fine for me:
import group_theory.quotient_group
namespace quotient_group
@[simp]
lemma coe_mk' {G : Type*} [group G] (N : subgroup G) [N.normal] :
⇑(mk' N) = coe := rfl
@[simp]
lemma mk'_apply {G : Type*} [group G] (N : subgroup G) [N.normal] (x : G) :
mk' N x = x := rfl
end quotient_group
Patrick Massot (May 08 2021 at 12:54):
Sorry, I read too quickly what that file was doing.
Eric Wieser (May 08 2021 at 12:54):
I think you have your point backwards - it is docs#quotient_group.mk' that requires the extra N.normal
instance argument, not coe
(aka docs#quotient_group.quotient.has_coe_t)
Eric Wieser (May 08 2021 at 12:56):
To make matters worse, there's a third way to spell this, docs#quotient_group.mk
Patrick Massot (May 08 2021 at 12:57):
Yes, this whole area is a bit messy
Adam Topaz (May 08 2021 at 14:13):
Johan Commelin said:
I've started another mathlib bump on
bump-08-may
. This one needs a bit of care. A bunch of limit stuff for profinite sets has moved to mathlib. Adam Topaz if you have time, could you take a look please?
I'll take care of the profinite stuff this morning
Adam Topaz (May 08 2021 at 15:13):
Adam Topaz said:
Johan Commelin said:
I've started another mathlib bump on
bump-08-may
. This one needs a bit of care. A bunch of limit stuff for profinite sets has moved to mathlib. Adam Topaz if you have time, could you take a look please?I'll take care of the profinite stuff this morning
Done! @Johan Commelin I think this makes up for the 2 lines I added to for_mathlib
a few days ago:
https://github.com/leanprover-community/lean-liquid/compare/20019f38e734170b5574079bd268b8d3fdcbc653...009816d18fe288043abdc8980fb6a5a83e424e7e
Johan Commelin (May 08 2021 at 15:15):
Merci!
Adam Topaz (May 08 2021 at 15:15):
C'est rien
Adam Topaz (May 08 2021 at 15:18):
BTW, I also have an open PR about the Cech nerve: #7547 (it depends on #7546) in case anyone wants to take a look
Johan Commelin (May 08 2021 at 15:27):
did you merge and push to master?
Adam Topaz (May 08 2021 at 15:28):
No it's still in the brancch
Adam Topaz (May 08 2021 at 15:29):
I mean I pushed to the branch
Adam Topaz (May 08 2021 at 15:29):
Bah, I forgot about the other two files in profinite. I'll fix those now.
Adam Topaz (May 08 2021 at 15:39):
Okay, it should be fixed I think. I pushed to the branch again to see if CI is happy, then I'll merge to master
Johan Commelin (May 08 2021 at 15:50):
Thanks a lot
Adam Topaz (May 08 2021 at 15:56):
Okay, it's now updated on master
Johan Commelin (May 08 2021 at 16:12):
:tada:
Patrick Massot (May 08 2021 at 21:33):
@Riccardo Brasca I pushed a mathlib branch at https://github.com/leanprover-community/mathlib/tree/group-stuff. I still need to write a module docstring and maybe see if I can polish a bit, but you can already have a look and tell whether this looks good to you.
Riccardo Brasca (May 09 2021 at 07:41):
I will have a look at it this evening or tomorrow, thank's!
Patrick Massot (May 09 2021 at 08:45):
Note that one thing to discuss in particular is naming, especially the famous "namespace normed_group_hom -- probably needs to change" from here. I put those things in the add_subgroup
namespace instead so that the normed group homomorphism from to is S.normed_mk
. I think having access to this dot notation is nice, but I'm open to any other name for normed_mk
. It cannot be mk
because add_subgroup.mk
is already the constructor for add_subgroup
.
Patrick Massot (May 09 2021 at 08:48):
Maybe S.proj
would be nicer but that sounds rather more like the algebraic version (ie. it should replace the ugly mk' S
). We could look for a subscript or superscript evoking topology or norm, like the subscript l we use for linear maps.
Eric Wieser (May 09 2021 at 09:09):
For reference, the submodule version of docs#quotient_add_group.mk' is docs#submodule.mkq
Eric Wieser (May 09 2021 at 09:24):
And docs#quotient_add_group is analogous to docs#submodule.quotient. If renaming is on people's minds right now, it might make sense to rename the two to be more similar.
Patrick Massot (May 09 2021 at 09:31):
It would be nice to be consistent here. I'd be willing to implement any renaming if people tell me what they would like to see.
Patrick Massot (May 10 2021 at 05:31):
I'll be able to bump in about one hour.
Johan Commelin (May 10 2021 at 05:53):
@Patrick Massot ooh, I just pushed a bump...
Johan Commelin (May 10 2021 at 05:53):
Everything compiles, but maybe you had more cleanup in mind...
Patrick Massot (May 10 2021 at 06:03):
Yes there will be more cleanup.
Johan Commelin (May 10 2021 at 08:50):
I pushed a bunch of changes to #7473 (Scott's homology redesign). When that lands, some of the non-for-mathlib files of LTE can even be removed!
Johan Commelin (May 10 2021 at 08:51):
@Adam Topaz Can you take a look at this please?
Johan Commelin (May 10 2021 at 08:58):
It's going to be interesting, because when #7473 lands we probably also want to have redesigned homotopies. So maybe we shouldn't try to bump mathlib in between those PRs
Patrick Massot (May 10 2021 at 09:09):
@Riccardo Brasca and Johan, could you have a look at https://github.com/leanprover-community/lean-liquid/commit/e96a6d19b273083864d4f79269f1a41909ef531a? The commit message explains what happens.
Johan Commelin (May 10 2021 at 09:17):
Thanks a lot! This is good progress!
Patrick Massot (May 10 2021 at 09:17):
In the previous commit I also removed two files that had been PRed but were still in the repo
Patrick Massot (May 10 2021 at 09:19):
Now for_mathlib/normed_group_quotient.lean
is almost ready for PR as it is, there is one tiny lemma which belongs to normed_group/basic.lean
. But I'll wait for Riccardo's opinion before opening the mathlib PR.
Patrick Massot (May 10 2021 at 09:20):
In the mean time we'll get #7459 and #7474 which will unlock a lot of other stuff to PR.
Riccardo Brasca (May 10 2021 at 09:28):
Sorry, I've been very busy in the last days. Having a look at it now
Sebastien Gouezel (May 10 2021 at 09:29):
Can you get rid of the code duplication in add_subgroup.normed_group_quotient
by using .. add_subgroup.semi_normed_group_quotient
?
Johan Commelin (May 10 2021 at 09:35):
I'm afraid not, because they are new structures that don't extend each other.
Sebastien Gouezel (May 10 2021 at 09:38):
Yes but they have common ancestors like has_dist
or uniform_space
, so there could be some magic that unifies the fields. Does it really not work at all?
Riccardo Brasca (May 10 2021 at 09:40):
@Patrick Massot I think it's very good! We should just add a docstring missing at the beginning and probably structure is_quotient
is useless for mathlib, but the rest is excellent
Riccardo Brasca (May 10 2021 at 09:43):
And I agree with Johan that the code duplication is difficult to avoid. I don't remember the reasons at the end, but we discussed about having normed_group
extending semi_normed_group
and we decided to go the other way
Sebastien Gouezel (May 10 2021 at 09:43):
I just checked, and
/-- The quotient in the category of normed groups. -/
noncomputable
instance add_subgroup.normed_group_quotient (S : add_subgroup M) [hS : is_closed (S : set M)] :
normed_group (quotient S) :=
{ eq_of_dist_eq_zero :=
begin
rintros ⟨m⟩ ⟨m'⟩ (h : ∥mk' S m - mk' S m'∥ = 0),
erw [← (mk' S).map_sub, quotient_norm_eq_zero_iff, hS.closure_eq,
← quotient_add_group.eq_iff_sub_mem] at h,
exact h
end,
.. add_subgroup.semi_normed_group_quotient S }
seems to work fine.
Sebastien Gouezel (May 10 2021 at 09:46):
(I understand the .. foo
as: try to find in foo
stuff that will fill some of the missing fields. No need that bar
extends foo
for this).
Riccardo Brasca (May 10 2021 at 09:46):
Oh, wow!!
Sebastien Gouezel (May 10 2021 at 09:56):
I've just pushed directly to master. I hope it's allowed in LTE, otherwise don't hesitate to revert.
Kevin Buzzard (May 10 2021 at 10:00):
I push all sorts of crap directly to master :-/
Sebastien Gouezel (May 10 2021 at 10:00):
Perfect! :-)
Riccardo Brasca (May 10 2021 at 10:04):
I added some docstring
Johan Commelin (May 10 2021 at 10:05):
Sebastien Gouezel said:
I've just pushed directly to master. I hope it's allowed in LTE, otherwise don't hesitate to revert.
I wish you pushed more often :stuck_out_tongue_wink: :stuck_out_tongue_wink:
Johan Commelin (May 10 2021 at 13:48):
The basis
refactor is in mathlib! Thanks a lot @Anne Baanen!
Johan Commelin (May 10 2021 at 13:48):
Time for another mathlib bump :rofl:
Johan Commelin (May 10 2021 at 13:49):
Concerning mathlib bumps: as I alluded to a little bit in some post above, we have to coordinate the "normal" mathlib PRs coming from LTE with the big homological algebra redesign from Scott.
Johan Commelin (May 10 2021 at 13:50):
Because we are relying on hand-rolled cochain complexes and homotopies in LTE. So that's going to need refactoring.
Johan Commelin (May 10 2021 at 13:50):
And we probably don't want to mix that refactor with "ordinary" mathlib bumps.
Riccardo Brasca (May 10 2021 at 14:13):
#7459 is merged, so subgroup.mem_map_of_mem
can be removed from normed_group_hom.lean
. I think no modification is needed
Johan Commelin (May 10 2021 at 14:17):
I'm trying to bump it right now :smiley:
Johan Commelin (May 10 2021 at 14:32):
mathlib bump is done.
Riccardo Brasca (May 10 2021 at 15:54):
I just noticed that the results in for_mathlib/nnreal.lean
are never used in the project. We can maybe remove the file and the author (I think @Damiano Testa ) can open a PR if he wants to. Unless the results are there to be used somewhere in the future
Kevin Buzzard (May 10 2021 at 16:00):
I have just finished marking for the day and could work on the inevitable breakage in the Gordan stuff in about 1 hour
Johan Commelin (May 10 2021 at 16:08):
@Riccardo Brasca maybe there is even a PR already? There is a PR about nnreal stuff
Riccardo Brasca (May 10 2021 at 16:09):
Ah yes, sorry! I didn't see it somehow in the wiki
Kevin Buzzard (May 10 2021 at 17:10):
@Johan Commelin is there a branch with new mathlib and broken is_basis stuff?
After Gordan is done and I'm finished with marking I could take on the job of bumping LTE to use the new homology stuff by making a new branch which has Scott's mathlib branch as a dependency and then tries to fix everything up. This is worthwhile because Scott's ideas could be tested this way
Johan Commelin (May 10 2021 at 17:18):
@Kevin Buzzard there is no broken is_basis
stuff anymore. I fixed the breakage.
Kevin Buzzard (May 10 2021 at 17:19):
Oh thanks! I was about to start on Lean -- I'll go back to Gordan!
Johan Commelin (May 10 2021 at 17:23):
Good luck! Bhavik claimed on the toric thread that he and Yael might have a topological proof done by the end of today (-;
Kevin Buzzard (May 10 2021 at 17:27):
It was never clear to me that he was claiming that he'd prove what we're calling Gordan's Lemma. The other job I need to do is to start porting grading stuff into mathlib, parts of it are working well now although we still need to think about names.
Johan Commelin (May 10 2021 at 17:27):
I would worry about PRing to mathlib after Gordan is done
Bhavik Mehta (May 10 2021 at 17:27):
Kevin Buzzard said:
It was never clear to me that he was claiming that he'd prove what we're calling Gordan's Lemma. The other job I need to do is to start porting grading stuff into mathlib, parts of it are working well now although we still need to think about names.
I am claiming this :)
Johan Commelin (May 10 2021 at 17:28):
The game is on!
Kevin Buzzard (May 10 2021 at 17:29):
Oh I'm sure he will win easily! I still have a bunch of stuff to do and I am very limited in my lean time for the next two weeks. But I will keep trying in order to force him to see this through :D
Bhavik Mehta (May 10 2021 at 17:31):
The only difference in my version is that https://github.com/leanprover-community/lean-liquid/blob/1c9a0dd21297646b88b31cea4e36f2adc0f19d3f/src/for_mathlib/Gordan.lean#L129 is changed from
lemma explicit_gordan [module ℤ Λ] (hΛ : finite_free Λ) [fintype ι] (l : ι → Λ) :
to
lemma explicit_gordan (hΛ : finite_free Λ) [fintype ι] (l : ι → Λ) :
since there's a clash between the module instance given there and from line 14 - I'm presuming this is an oversight in master rather than anything fundamental?
Johan Commelin (May 10 2021 at 17:32):
That module instance should have been deleted after the int_smul refactor
Bhavik Mehta (May 10 2021 at 17:37):
In that case would a better temporary fix for me to be to locally disable that instance so that when the refactor goes through it doesn't break?
Johan Commelin (May 10 2021 at 17:38):
Which refactor?
Bhavik Mehta (May 10 2021 at 17:39):
The int_smul refactor
Johan Commelin (May 10 2021 at 17:41):
That was done weeks ago.
Johan Commelin (May 10 2021 at 17:41):
We just didn't carefully delete all the module instances.
Johan Commelin (May 10 2021 at 17:41):
Check master again (-;
Johan Commelin (May 10 2021 at 18:52):
@Bhavik Mehta where are you writing up your approach to Gordan?
Johan Commelin (May 10 2021 at 18:53):
Some mathlib branch?
Bhavik Mehta (May 10 2021 at 19:01):
A branch of LTE, I haven't pushed yet
Yaël Dillies (May 10 2021 at 19:23):
Johan Commelin said:
Good luck! Bhavik claimed on the toric thread that he and Yael might have a topological proof done by the end of today (-;
By the way, I'm not claiming to do anything, because Bhavik told me I'm supposed to do past papers :upside_down:
Yaël Dillies (May 10 2021 at 19:27):
Do you still need Krein-Milman? What's stuck right now is that I want to polish exposed faces, and Bhavik wants to polish Hahn-Banach.
Kevin Buzzard (May 10 2021 at 19:30):
We need the thing we're calling Gordan's Lemma and I think that you guys have done enough for Bhavik to convince himself that he can get there quickly
Yaël Dillies (May 10 2021 at 19:31):
Exactly, I want to show that exposed faces form a complete lattice (in finite dimension), and even maybe a graded lattice (basically section 2 of the paper you sent). But I'm missing some framework, most crucially I can't seem to show transivity without the H-representation.
Johan Commelin (May 11 2021 at 05:37):
mathlib bumped again
Damiano Testa (May 11 2021 at 06:32):
Dear All,
I am back from my holiday and I see lots of great activity around Gordan: I am really pleased!
Kevin / Bhavik-Yaël -- This feels like the saying on building a tunnel: start simultaneously from both ends. You either finish in half the time or you have a two-lanes tunnel!
Riccardo: my temporary fix had been to split the lemmas for mathlib, but I may not have actually used them in the project, since it was easy enough to simply replace them with their short proofs. Also, when I started moving them to mathlib I decided to finally try to refactor the ordered
hierarchy, since at the moment it is very limiting. I am almost done with a first serious attempt at this.
Johan Commelin (May 11 2021 at 06:33):
Where is my tunnel emoji?
Riccardo Brasca (May 11 2021 at 14:21):
@Patrick Massot Do you prefer to PR normed_group_quotient.lean
yourself? I think you wrote the most delicate parts so I don't want to steal it, but otherwise I can do it today (mentioning you as co-author of course)
Patrick Massot (May 11 2021 at 15:02):
Yes I'll do it tonight
Adam Topaz (May 11 2021 at 18:31):
Now that Scott's new complexes PR is merged, what's the plan with the next mathlib bump?
Kevin Buzzard (May 11 2021 at 18:38):
I think this project provides a perfect place to test his ideas
Johan Commelin (May 11 2021 at 18:46):
I think we should wait till homotopies are merged before we refactor LTE to the new complexes
Adam Topaz (May 11 2021 at 19:20):
Which PR defines homotopies?
Adam Topaz (May 11 2021 at 19:21):
Got it #7483
Adam Topaz (May 12 2021 at 03:33):
In the meantime, I made another mathlib bump to include the Cech nerve, and I adapted the work I did previously obtaining the contracting homotopy needed for 8.19. This is now in the branch bump-2021-05-11
. I wasn't sure whether there was anything else that should have been changed with the recent mathlib update, so please take a look at the diff
https://github.com/leanprover-community/lean-liquid/compare/bump-2021-05-11
Johan Commelin (May 12 2021 at 05:36):
@Adam Topaz does it build? If so, just merge into master
Johan Commelin (May 12 2021 at 05:37):
others can then clean up on top of that
Johan Commelin (May 12 2021 at 05:59):
I'm doing a bump on top of yours. Will merge it into master soon
Johan Commelin (May 12 2021 at 06:17):
merged
Patrick Massot (May 13 2021 at 17:29):
@Riccardo Brasca #7603
Riccardo Brasca (May 13 2021 at 20:14):
Very nice! It seems very good to me, I will have a closer look tomorrow
Johan Commelin (May 15 2021 at 05:22):
I bumped mathlib again, but there might be some cleanup that I missed
Scott Morrison (May 15 2021 at 08:37):
#7614 dualizes the existing material on simplicial_object
in mathlib, and incorporates Adam's for_mathlib/simplicial/augmented.lean
.
Scott Morrison (May 15 2021 at 08:55):
@Adam Topaz, what is the change_cone
stuff in for_mathlib/Profinite/functorial_limit.lean
needed for? The bottom half of the file seems happy without it, and it isn't used elsewhere.
Adam Topaz (May 15 2021 at 12:45):
Thanks for opening #7614 @Scott Morrison !
I added the change_cone
stuff just in case we ever need to use the functorial properties of the Profinite.as_limit
construction, but you're right, it's not used anywhere yet. I don't think we should delete it just yet, in case we do end up using it for 8.19.
Scott Morrison (May 15 2021 at 12:48):
Would it be reasonable to rename NormedGroup
to SemiNormedGroup
, since that's what it is?
Johan Commelin (May 15 2021 at 12:49):
@Scott Morrison yes, it's been somewhere on my todo list for a while
Johan Commelin (May 15 2021 at 12:50):
While you are in cleaning-up-mode. locally_constant/Vhat.lean
is a huge mess, it's doing everything and is only marginally related to what it's name suggests.
Johan Commelin (May 15 2021 at 12:51):
Lots of stuff is more generally about SemiNormedGroup
Scott Morrison (May 15 2021 at 12:53):
Presumably in documentation it's fine to still just talk about normed groups, even when the constructions/theorems work for seminormed groups.
Scott Morrison (May 15 2021 at 12:54):
Or would it be better to be precise, so it's clear what works for seminormed vs normed groups?
Johan Commelin (May 15 2021 at 12:54):
I guess since we're mathlib we want to be precise (-;
Scott Morrison (May 15 2021 at 12:55):
Is it okay to still use the phrase "normed group hom", or should that also be "seminormed group hom"?
Kevin Buzzard (May 15 2021 at 12:57):
We call semiring homs ring homs...
Scott Morrison (May 15 2021 at 12:57):
Exactly.
Johan Commelin (May 15 2021 at 13:02):
@Scott Morrison yes, there I wouldn't make a distinction, also because a normed group hom is really just a semi normed group hom
Scott Morrison (May 15 2021 at 13:03):
Some doc-strings refer to LCC_Mbar_pow
, but it doesn't exist. Is this future or past? :-)
Scott Morrison (May 15 2021 at 13:04):
Or just named differently?
Johan Commelin (May 15 2021 at 13:06):
ouch... that must be really old
Johan Commelin (May 15 2021 at 13:06):
It's called CLCFP
these days...
Johan Commelin (May 15 2021 at 13:07):
aka "CompletionLocallyConstantFiltrationPow
"... :head_bandage:
Johan Commelin (May 15 2021 at 13:07):
but that is so long that I decided to abbreviate
Scott Morrison (May 15 2021 at 13:26):
Okay, I did the renaming NormedGroup
to SemiNormedGroup
, and hopefully (semi?)normalized the doc-strings. :-)
Scott Morrison (May 15 2021 at 13:28):
Would SemiNormedGroupNormNoninc
really be the preferred name? Couldn't we just use a prime or something?
Johan Commelin (May 15 2021 at 13:31):
I don't have a strong opinion. A '
also seems reasonable to me
Johan Commelin (May 15 2021 at 13:31):
Or maybe a subscript 1
?
Adam Topaz (May 15 2021 at 13:32):
I vote for '
Adam Topaz (May 15 2021 at 13:34):
If only we could write
Scott Morrison (May 15 2021 at 13:42):
?
Adam Topaz (May 15 2021 at 13:45):
Sorry, maybe that joke is way too obscure... This is the "unit ball" of SemiNormedGroup
and is the unit ball of a Krull valuation v
Last updated: Dec 20 2023 at 11:08 UTC