Zulip Chat Archive
Stream: Is there code for X?
Topic: free_abelian_group.of is injective
Eric Wieser (Nov 18 2020 at 12:32):
This strikes me as an obviously true statement, but it seems difficult to prove.
free_abelian_group.of x
is defined as abelianization.of $ free_group.of x
, where we already have docs#free_group.of.inj.
Obviously docs#abelianization.of is not injective, but it should be injective on the range of free_group.of
, right?
Adam Topaz (Nov 18 2020 at 12:34):
Yes
Adam Topaz (Nov 18 2020 at 12:35):
The image is a basis as a Z-module. If this fact is in mathlib, you can use that to prove injectivity
Eric Wieser (Nov 18 2020 at 12:36):
The image of abelianization.of
or of free_group.of
? (or both?)
Adam Topaz (Nov 18 2020 at 12:36):
The free abelian group
Adam Topaz (Nov 18 2020 at 12:36):
(which happens to be the abelianization of the free group)
Adam Topaz (Nov 18 2020 at 12:37):
So the map from X to the free abelian group generated by X is injective
Adam Topaz (Nov 18 2020 at 12:37):
The abelianization map from a group to its abelianization is almost never injective
Eric Wieser (Nov 18 2020 at 12:38):
If "The image is a basis as a Z-module" is in mathlib, it's hiding in another file somewhere
Adam Topaz (Nov 18 2020 at 12:38):
(it's injective if and only if your original group was already abelian :wink:)
Adam Topaz (Nov 18 2020 at 12:39):
You can still use it though, using the universal prop of the free abelian geoup
Adam Topaz (Nov 18 2020 at 12:43):
I.e. take the free Z-module on X, say M, which comes with an injective map f : X -> M. Now lift f to a map from the free abelian group on X, say F, to a map of abelian groups F -> M. The universal prop says that the composition with g : X -> F is just f, which in injective, so g must be injective too
Adam Topaz (Nov 18 2020 at 12:43):
(sorry for the bad typesetting, I'm on mobile)
Eric Wieser (Nov 18 2020 at 12:48):
I think your closing injectiveness argument may be missing from mathlib too - is it this one? https://github.com/leanprover-community/mathlib/compare/flat-module#diff-0dc822e485488f721fc8ef8bd0401825688b5e8b6e30d48decc73024f66e472cR37-R56
(f : α → β) (e : β ≃ γ) : function.injective (e ∘ f) ↔ function.injective f
Adam Topaz (Nov 18 2020 at 12:54):
I'm just saying that if is injective then so is . Is this not mathlib?!
Johan Commelin (Nov 18 2020 at 12:54):
That one is
Eric Wieser (Nov 18 2020 at 12:59):
That statement isn't true?
Eric Wieser (Nov 18 2020 at 12:59):
g needs to be only injective over the range of f
Reid Barton (Nov 18 2020 at 13:00):
You're reading it backwards
Adam Topaz (Nov 18 2020 at 13:02):
@Eric Wieser you're turning into a true category theorist! (who never remember the order of function composition)
Eric Wieser (Nov 18 2020 at 13:03):
Johan Commelin said:
That one is
Found it, docs#function.injective.of_comp
Adam Topaz (Nov 18 2020 at 13:03):
Don't worry though, it gets much worse when you start thinking about concatenation of paths when defining fundamental groups, and how to reconcile that with monodromy actions
Kevin Buzzard (Nov 18 2020 at 13:08):
In Freitag-Kiehl, the appendix on the fundamental group, covering groups always act on the right. I was initially surprised by this convention but things work out great with it.
Adam Topaz (Nov 18 2020 at 13:09):
I think if you always define fundamental groups as automorphism groups of fibre/fiber functors, you will never get confused :big_smile:
Johan Commelin (Nov 18 2020 at 13:09):
In mathlib, however... we don't have right actions
Last updated: Dec 20 2023 at 11:08 UTC