Lemma free_monoid_extend_funcomp {X Y : hSet} {Z : monoid} (f : X → Y) (g : Y → Z) : free_monoid_extend (g ∘ f) ~ free_monoid_extend g ∘ free_monoidfun f. Proof. unfold homot. simpl. apply list_ind. + reflexivity. + intros x xs IH. now rewrite !map_cons, !iterop_list_mon_step, IH. 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.