∀ {G : Type u_1} [inst : Group G] (X : Type u_1) (of : X → G)
  (lift : {H : Type u_1} → [inst_1 : Group H] → (X → H) ≃ (G →* H)),
  (∀ {H : Type u_1} [inst_1 : Group H] (f : X → H) (a : X), (lift f) (of a) = f a) →
    (lift FreeGroup.of).comp (FreeGroup.lift of) = MonoidHom.id (FreeGroup X)