Zulip Chat Archive

Stream: mathlib4

Topic: compatibility of maps and presented groups


Noah G. Singer (Dec 21 2024 at 01:42):

Hi, does anyone happen to know an idiomatic proof of the following theorem or similar:

example (α β : Type) (S : Set (FreeGroup α)) (T : Set (FreeGroup β)) (f : α  β) (r : FreeGroup α):
  (PresentedGroup.mk T (FreeGroup.map f r)) = (FreeGroup.lift (PresentedGroup.of  f)) r

I am trying to use this together with PresentedGroup.toGroup to show that you can get a homomorphism between two presented groups mapping generators to generators as long as the image of every relation is trivial.

Notification Bot (Dec 21 2024 at 01:42):

Julian Berman has marked this topic as resolved.

Notification Bot (Dec 21 2024 at 01:46):

Noah G. Singer has marked this topic as unresolved.

Noah G. Singer (Dec 21 2024 at 04:35):

(deleted)

Noah G. Singer (Dec 21 2024 at 05:49):

Actually, I have a proof. I will pr it eventually. But, I’ll refer back to check that it’s not already present somewhere else

Patrick Massot (Dec 22 2024 at 11:15):

@Noah G. Singer This issue is that Lean has trouble recognizing the group morphism composition on the left-hand side, so it needs help. For instance

example (α β : Type) (T : Set (FreeGroup β)) (f : α  β) (r : FreeGroup α):
    PresentedGroup.mk T (FreeGroup.map f r) = FreeGroup.lift (PresentedGroup.of  f) r :=
  FreeGroup.lift.unique (PresentedGroup.mk T |>.comp <| FreeGroup.map f) fun _  rfl

Patrick Massot (Dec 22 2024 at 11:15):

I agree this lemma should be somewhere. If it isn’t then adding it would be nice.

Patrick Massot (Dec 22 2024 at 11:25):

To be clear, the method I used was:

  • try apply?. See nothing where I was expecting something like uniqueness in the universal property of free groups.
  • recognize the issue is that Lean doesn’t see a group morphism on LHS.
  • type change (PresentedGroup.mk T).comp (FreeGroup.map f) r = _ and retry apply?

Last updated: May 02 2025 at 03:31 UTC