Proof with auto.
induction x; simpl; destruct x'; simpl; intros; try discriminate.
apply H.
inversion_clear H0...
destruct l; simpl; intros.
simpl.
intros.
rewrite (IHx t)...
inversion_clear H0...
discriminate.
destruct l0.
discriminate.
simpl in H0.
simpl.
inversion H0.
clear H0.
f_equal.
replace (bind x f) with (bind t f').
Focus 2.
symmetry.
apply IHx...
replace (ne_list.map (fun x0: C X => bind x0 f) l) with (ne_list.map (fun x0: C X' => bind x0 f') l0)...
assert (ne_tree.map xm (ne_tree.Node l) = ne_tree.map xm' (ne_tree.Node l0)).
simpl.
rewrite H3...
cset (IHx0 (ne_tree.Node l0) H0).
inversion_clear H1...
Qed.

(* Specifications: *)
Lemma map_bind (X Y Z: Set) (f: Y -> Z) (g: X -> M Y) (x: M X):
ne_tree.map f (bind x g) =
bind x (fun xx => ne_tree.map f (g xx)).