Definition term_from_active_term (t: active_term) : term :=
let (f, lv) := t in
fapply f (map (@term_from_value _ _ _) lv).
Definition value_list_order (lv lv' : list value) : Prop :=
suml (map (@value_size _) lv) < suml (map (@value_size _) lv').

Lemma unify_cons_eq_unify_list :
forall s s' c lv c' lp',
unify s (c_capply c lv) (p_capply c' lp') = Some s' ->
c = c' /\ unify_list_aux s lv lp' = Some s'.