Inductive val_casted_list: list val -> typelist -> Prop :=
| vcl_nil:
val_casted_list nil Tnil
| vcl_cons: forall v1 vl ty1 tyl,
val_casted v1 ty1 -> val_casted_list vl tyl ->
val_casted_list (v1 :: vl) (Tcons  ty1 tyl).

(* Specifications: *)
Lemma val_casted_list_params:
forall params vl,
val_casted_list vl (type_of_params params) ->
list_forall2 val_casted vl (map snd params).