(* Finally, Fix_measure_F_rect lets one prove a property of functions defined using Wf.Fix_measure_F by showing that property to be invariant over single application of the function body (f). *)

Lemma rect
(Q: forall x, P x -> Type)
(inv: forall
(x: A)
(H: forall (y: A), R y x -> Q y (Wf.Fix_sub A R Rwf P f y))
(a: Acc R x),
Q x (f (fun y: {y: A | R y x} => Wf.Fix_sub A R Rwf P f (proj1_sig y))))
: forall x, Q _ (Wf.Fix_sub A R Rwf P f x).