Definition weight_typenv (e: typenv) : nat :=
  weight_constraints e.(te_typ) e.(te_sub).Definition typassign := positive -> T.t.

Lemma type_defs_complete: forall te xl tyl e, satisf te e -> list_forall2 T.sub tyl (map te xl) -> exists e', type_defs e xl tyl = OK e' /\ satisf te e'.