Definition do_contra (e : expr) :=
match edelta e with
| None  => Stop _ e
| Some ((c1,l1),((c2,l2),(c3,l3)))  =>
match eremove c2 l2 e with
| Some e1 =>
match eremove c1 l1 e1 with
| Some e2 =>
More _ (einsert c3 l3 e2)
| _ => Stop _ e
end
| _ => Stop _ e
end
end.

(* Specifications: *)
Lemma do_contra_c e :
{e[rp_val _ (do_contra e)]} = {e[e]}.