Zulip Chat Archive

Stream: maths

Topic: univeral property of quotient abelian groups


Kevin Buzzard (Jul 19 2018 at 20:03):

I have a comm_group G and a subgroup N, which is the kernel of an is_group_hom f : G -> H. I'd like a quotient group G/N, and an injective group homomorphism from G/N to H. The quotient has been made for general groups (in group_theory.coset) but not the injective hom as far as I can see, and also for modules over an arbitrary ring (with the injective hom), so I can either build the injection for general groups or I can persuade Lean that an abelian group is the same as a Z-module. Have either of these been done? Neither should be hard, but which to do?

Kevin Buzzard (Jul 19 2018 at 20:06):

Should there be an instance (add_comm_group G) -> module ℤ G? What about comm_group G -> module ℤ G? Do either of these cause problems?

Johan Commelin (Jul 19 2018 at 20:07):

Modules cause problems, in general. I would stay away of them for now.

Johan Commelin (Jul 19 2018 at 20:07):

I think it is best to prove a bit about the universal property of group quotients.

Kevin Buzzard (Jul 19 2018 at 20:10):

I'm trying to define perfectoid spaces, I've just spent an hour worrying about constructing an object isomorphic to an object I already have but in a different universe, and now I'm doing quotient groups :-) Some things are just slow going, I guess!

Patrick Massot (Jul 19 2018 at 20:11):

I'm also having universe issues and type class inference issues at the moment

Kevin Buzzard (Jul 19 2018 at 20:12):

It's good for the soul I guess...

Patrick Massot (Jul 19 2018 at 20:14):

I'm discovering new error messages

Patrick Massot (Jul 19 2018 at 20:14):

synthesized type class instance is not definitionally equal to expression inferred by typing rules

Mario Carneiro (Jul 19 2018 at 20:14):

I think an instance for add_comm_group G -> module ℤ G will not go awry

Kevin Buzzard (Jul 19 2018 at 20:14):

Does that say "you have a diamond"?

Mario Carneiro (Jul 19 2018 at 20:15):

comm_group G -> module ℤ G doesn't make any sense

Kevin Buzzard (Jul 19 2018 at 20:15):

I think an instance for add_comm_group G -> module ℤ G will not go awry

module might extend add_comm_group -- will there be an instance the other way?

Kevin Buzzard (Jul 19 2018 at 20:16):

comm_group G -> module ℤ G doesn't make any sense

well that's a pain because my group laws are all * :-/

Mario Carneiro (Jul 19 2018 at 20:16):

ah, actually I think you are right

Kevin Buzzard (Jul 19 2018 at 20:17):

I'm sticking to groups.

Kevin Buzzard (Jul 19 2018 at 20:18):

I think it's about time we had a mathlib issue about modules, the chat about the problems is dispersed here and there in Zulip, I don't understand the problems myself, and they're stopping Patrick from doing stuff.

Kevin Buzzard (Jul 19 2018 at 20:21):

instance [group α] (s : set α) [normal_subgroup s] : group (left_cosets s) := .... That's in section quotient_group. How do I find out the name of that instance?

Kevin Buzzard (Jul 19 2018 at 20:22):

[all in group_theory/coset.lean]

Chris Hughes (Jul 19 2018 at 20:23):

left_cosets.group

Chris Hughes (Jul 19 2018 at 20:23):

Clue is in the statement.

Kevin Buzzard (Jul 19 2018 at 20:24):

I remembered there was an algorithm but couldn't remember what it was. Thanks Chris.

Patrick Massot (Jul 19 2018 at 20:25):

you could also use that print_names command we did recently

Kevin Buzzard (Jul 19 2018 at 20:26):

That's the other type of answer to this question. All that was way over my head, but I cut and pasted some stuff and it was pretty cool :-)

Chris Hughes (Jul 19 2018 at 20:27):

you could also use that print_names command we did recently

Is that in mathlib?

Kevin Buzzard (Jul 19 2018 at 20:29):

https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/full.20names

Johan Commelin (Jul 20 2018 at 10:52):

I think it's about time we had a mathlib issue about modules, the chat about the problems is dispersed here and there in Zulip, I don't understand the problems myself, and they're stopping Patrick from doing stuff.

I completely agree. They are also stopping me from doing stuff. (Both with simplicial homology and with Lie algebras...)

Patrick Massot (Jul 20 2018 at 10:55):

My hope here is that someone will fix my issue in the norms PR, and this will explain how to handle modules

Kevin Buzzard (Jul 20 2018 at 10:58):

But you've been hoping that someone will fix modules for a long time now, and what I find I'm doing is: occasionally asking "what is the problem with modules again?", and someone answers, in some random thread, and I go "oh", and then the discussion degenerates into out_param stuff, and peters out, and then I forget everything, and it was a waste of everyone's time even talking about it. Making it an issue will at least give me a place where I can read about what the problem is and exactly what it is stopping people from doing.

Patrick Massot (Jul 20 2018 at 10:59):

The difference this time is I opened a PR for normed spaces. But feel free to open an issue

Kevin Buzzard (Jul 20 2018 at 11:01):

If I open the issue it will just be a one-liner saying "something is wrong with modules and this issue is a place where we can talk about what it is and how to fix it".

Kevin Buzzard (Jul 20 2018 at 11:01):

But I'm happy to do this.

Patrick Massot (Jul 20 2018 at 11:01):

The only ones who could write a much better description are Mario, Johannes and Sebastian

Kevin Buzzard (Jul 20 2018 at 11:03):

Not you?


Last updated: Dec 20 2023 at 11:08 UTC