Section Maps1_3.
Comments "We define the composition of maps:".
Variable E F G : Setoid.
Variable g : MAP F G.
Variable f : MAP E F.
Comments
"First, we define the composition of the functions associated to two maps:"
f "and" g.
Definition comp_map_fun (x : E) := g (f x).
Comments "Then, we proof that the result is compatible with equality:".
red in |- *.
unfold comp_map_fun in |- *.
auto with algebra.
Qed.
Comments "With this result, we can build the composed map:".
Definition comp_map_map : MAP E G := Build_Map comp_map_fun_compatible.
End Maps1_3.
Comments "We note" (comp_map_map g f) "the composition of" g "and" f.
Comments "Composition is compatible with equality of maps:".

Lemma comp_map_comp :
forall (A B C : Setoid) (f f' : MAP A B) (g g' : MAP B C),
Equal f f' -> Equal g g' -> Equal (comp_map_map g f) (comp_map_map g' f').