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

(* Specifications: *)
Lemma do_elim_c x a b c d e :
{v[x]} = ({v[a]} ∨ {v[b]}) ∧ ({v[c]} ∨ {v[d]}) :> vect K ->
{e[rp_val _ (do_elim x a b c d e)]} = {e[e]}.