Definition FG_set := Build_Setoid eqFG_Equiv.Definition FreeGroup : GROUP.Fixpoint FG_lift_fun (p : FreeGroup) : G :=
  match p with
  | Var v => f v
  | Law p1 p2 => sgroup_law _ (FG_lift_fun p1) (FG_lift_fun p2)
  | Unit => monoid_unit G
  | Inv p1 => group_inverse G (FG_lift_fun p1)
  end.Definition FG_lift : Hom FreeGroup G.Definition FG_var : Hom V FreeGroup.

(* Specifications: *)
Lemma FG_comp_prop : Equal f (comp_hom (FG_lift:Hom (FreeGroup:SET) G) FG_var).