(* Automatic conversion of a [value] or [pattern] into a [term] *)
Fixpoint term_from_value (v : value) : term :=
match v with
| c_capply c lc => capply c (map term_from_value lc)
end.
Coercion term_from_value : value >-> term.

Lemma term_from_value_injective (v v': value) :
term_from_value v = term_from_value v' -> v = v'.