induction ls; intuition; simpl in *.
rewrite IHls.
rewrite <- zip_app.
rewrite map_app.
trivial.
eapply H.
intuition.
eapply length_flatten_eq.
eapply list_pred_map_r'.
eapply list_pred_map_l'.
eapply list_pred_single.
intuition.
destruct a. simpl.
eapply H.
intuition.
intuition.
Qed.

(* Specifications: *)
Lemma compMap_app :
forall (A B : Set)(eqd : EqDec B)(ls1 ls2 : list A)(c : A -> Comp B) x,
evalDist (compMap _ c (ls1 ++ ls2)) x ==
evalDist (r1 <-$ compMap _ c ls1; r2 <-$ compMap _ c ls2; ret (r1 ++ r2)) x.