(* assignment of a value*)
Fixpoint value_assignment (qic:assignment_constructor) (v:value) {struct v}:=
   match v with
  | c_capply c lv => qic c (map (value_assignment qic) lv)
   end.

Lemma QI_le_value_size qic cs: additive qic cs -> mcs_is_max_constructor_size cs -> forall v:value, value_assignment qic v <= mcs*(value_size v).