proposition: Lemma well_founded_well_founded_acc_relation_of B f fA : well_founded (@well_founded_acc_relation_of B f fA).
proof: Proof. intro b. constructor. unfold well_founded_acc_relation_of. generalize (fA b). generalize (f b). lazymatch goal with | [ |- forall a' wf', @?P a' wf' ] => apply (@Acc_ind_dep A RA P) end. intros a Ha IH y [pf Hy]. constructor. intros z Hz. specialize (IH (f y) pf z). apply IH; clear IH. destruct Hy. apply Hz. Defined.
imports: Coq.Setoids.Setoid Coq.Program.Program Coq.Program.Wf Coq.Arith.Wf_nat Coq.Classes.Morphisms Coq.Init.Wf Coq.Lists.SetoidList Coq.Arith.PeanoNat Fiat.Common.Coq__8_4__8_5__Compat