Section PointFixe.
(* cadeau de Christine Paulin, pour definir un point fixe avec une relation bien fondee *)
Variable A : Set.
Variable P : A -> Set.
Variable R : A -> A -> Prop.
Hypothesis Rwf : well_founded R.
Variable F : forall x : A, (forall y : A, R y x -> P y) -> P x.
Hypothesis
F_ext :
forall (x : A) (f g : forall y : A, R y x -> P y),
(forall (y : A) (p : R y x), f y p = g y p) -> F x f = F x g.
Fixpoint Fix_F (x : A) (r : Acc R x) {struct r} : P x :=
F x (fun (y : A) (p : R y x) => Fix_F y (Acc_inv r y p)).
Scheme Acc_inv_dep := Induction for Acc Sort Prop.

Lemma Fix_F_eq :
forall (x : A) (r : Acc R x),
Fix_F x r = F x (fun (y : A) (p : R y x) => Fix_F y (Acc_inv r y p)).