intros.
auto with algebra.
Qed.
Hint Resolve cast_subset_seq_nice: algebra.

Lemma cast_respects_predicates_per_elt :
forall (A D : Setoid) (B C : part_set A) (v : MAP D B)
(P : Predicate A) (H : forall i : D, in_part (Map_embed v i) C)
(i : D),
Pred_fun P (Map_embed v i) ->
Pred_fun P (Map_embed (cast_map_to_subset H) i).