Definition term_opp (t : term): term :=
let (z,l) := t in ((-z)%Z, l).

(* Specifications: *)
Lemma term_opp_c t : {m[term_opp t]} = (-{m[t]})%f.
Fixpoint list_insert (i: nat) (l : list nat) :=
match l with
| nil => (i :: nil)
| j :: l1 =>
match natc j i with
| Lt => j :: list_insert i l1
| _  => i :: l
end
end.