Proof with auto.
induction x...
destruct v.
intros.
rewrite concat_nil.
rewrite Ravg_nil.
symmetry.
apply Ravg_0.
intros.
destruct (fst (conj_prod (in_map_iff _ _ _)) H0).
destruct H1.
subst.
rewrite (empty_nil x1)...
apply Ravg_nil.
intuition.
apply empty_nil...
intros.
simpl.
rewrite Ravg_cons.
rewrite <- IHx.
Focus 2. intuition.
rewrite map_length.
clear IHx.
rewrite Ravg_app.
rewrite Rmult_comm.
rewrite length_concat.
rewrite (@add_same (S v)).
rewrite map_length.
replace (length a) with (S v).
replace (S v + length x * S v)%nat with (S (length x) * S v)%nat...
rewrite mult_INR.
rewrite mult_INR.
field...
symmetry.
intuition.
intros.
destruct (fst (conj_prod (in_map_iff (@length _) x x0)) H0).
destruct H1.
subst.
intuition.
Qed.

(* Specifications: *)
Lemma Ravg_map_plus X f g (l: list X):
Ravg (map (fun x => f x + g x) l) =
Ravg (map f l) + Ravg (map g l).