Lemma free_monoid_extend_comp {X : hSet} {Y : monoid} (g : monoidfun (free_monoid X) Y): free_monoid_extend (g ∘ free_monoid_unit) ~ g. Proof. unfold homot. simpl. apply list_ind. + exact (! monoidfununel g). + intros x xs IH. rewrite map_cons, iterop_list_mon_step, IH. exact (!pr1 (pr2 g) _ _). Defined.
Require Import UniMath.MoreFoundations.Subtypes. Require Import UniMath.MoreFoundations.Sets. Require Import UniMath.Algebra.Monoids. Require Import UniMath.Algebra.Groups. Require Import UniMath.Algebra.IteratedBinaryOperations. Require Import UniMath.Combinatorics.Lists.