Definition active_term := prod function (list value).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').

(* Specifications: *)
Lemma value_list_order_wf : well_founded value_list_order.