Section MAIN.
Variable A : Setoid.
(** %\label{concat}% *)
Definition concat :
forall (n m : Nat) (f : seq n A) (g : seq m A), seq (n + m) A.
simple induction n.
simpl in |- *.
intros.
exact g.
intros.
simpl in |- *.
exact (f (Build_finiteT (lt_O_Sn n0));; X _ (Seqtl f) g).
(* ie. (concat (f0 :: (Seqtl f) g)) = f0 :: (concat (Seqtl f) g) *)
Defined.
Infix "++" := concat (at level 60, right associativity).

Lemma concat_comp :
forall (n m : Nat) (f f' : seq n A) (g g' : seq m A),
f =' f' in _ -> g =' g' in _ -> f ++ g =' f' ++ g' in _.