Fixpoint edelta (e : expr) :=
  match e with
  | nil => None
  | (c,l) :: e1  => 
     match has_delta c l e1 with 
     | None => edelta e1 
     | Some r => Some ((c,l), r) end
  end.

Lemma edelta_in e : match edelta e with None => True | Some (p,(p1,_)) => In p e /\ In p1 e end.