Definition do_free x a b c d (e : expr) :=
let e1 := nfelim x a b c d e in
match ecompare e e1 with
| Eq => Stop _ e1
| _ =>  More _ e1
end.

(* Specifications: *)
Lemma do_free_c x a b c d e :
{v[x]} = {k[a]} .* {v[b]} + {k[c]} .* {v[d]} :> vect K ->
{e[rp_val _ (do_free x a b c d e)]} = {e[e]}.