fact: Definition well_founded_acc_relation_of_opt B (f : B -> option A) (fA : forall b, match f b with | Some fb => Acc RA fb | None => True end) : relation B := fun b0 b1 => match f b1 as fb1 return match fb1 with | Some fb => Acc RA fb | None => True end -> _ with | Some fb1 => fun fAb => match fAb with | Acc_intro fAb1 => match f b0 as fb0 return match fb0 with | Some fb => Acc RA fb | None => True end -> _ with | Some fb0 => fun fAb0 => exists pf, fAb1 fb0 pf = fAb0 | None => fun _ => False end (fA b0) end | None => fun _ => False end (fA b1).
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