Definition F (x : E) (f : forall y : E, R y x -> E) :=
  match R_dec x with
  | inleft z => let (y0, r0) := z in f y0 r0
  | inright _ => x
  end.

(* Specifications: *)
Lemma F_eq : forall (x : E) (f1 f2 : forall y : E, R y x -> E), (forall (y : E) (r : R y x), f1 y r = f2 y r) -> F x f1 = F x f2.