rewrite (Fix_F_eq x).
apply F_ext; intros.
apply Fix_F_inv.
Qed.
End PointFixe.
Section WF_ROOT.
(* application au cas qui nous preoccupe, la relation est bien fondee car il existe une fonction f de E dans nat strictement croissante, la relation est decidable en ce sens qu'il existe une preuve qu'un element a ou non des antecedents et un algorithme permettant de choisir un antecedent quand il en a, il est alors possible de definir par point fixe une fonction root qui a tout element associe l'antecedent sans parent accessible par l'algorithme *)
Variable E : Set.
Variable f : E -> nat.
Variable R : E -> E -> Prop.
Hypothesis R_dec : forall x : E, {y : E | R y x} + {(forall y : E, ~ R y x)}.
Hypothesis strict : forall x y : E, R x y -> f x < f y.

(* Specifications: *)
Lemma lt_acc : forall (n : nat) (y : E), f y < n -> Acc R y.
Lemma wf_R : well_founded R.
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.
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.