fact: Definition eval_RInt_gen_infty_init prec deg hyps (mi : F.precision -> I.type -> I.type) pf pfm pu cf cfm cu := let fi := let bounds := hyps ++ map (T.eval_bnd prec) cf in fun b => nth 0 (A.BndValuator.eval prec pf (b :: bounds)) I.nai in let fmi := let bounds := hyps ++ map (T.eval_bnd prec) cfm in fun b => nth 0 (A.BndValuator.eval prec pfm (b :: bounds)) I.nai in let ui := let bounds := hyps ++ map (T.eval_bnd prec) cu in nth 0 (A.BndValuator.eval prec pu bounds) I.nai in let mid u v := match u, v with | IR.IBu, IR.IBv => I.midpoint (I.upper_extent ui) | IR.IBu, IR.IBp v => I.midpoint (I.join ui (I.singleton v)) | IR.IBp u, IR.IBv => I.midpoint (I.upper_extent (I.singleton u)) | IR.IBp u, IR.IBp v => I.midpoint (I.bnd u v) | _, _ => F.zero end in let Fi1 := let bounds := hyps ++ map (T.eval_bnd prec) cfm in let bounds := map A.TaylorValuator.TM.const bounds in fun ui vi => let xi := I.join ui vi in let gi := A.TaylorValuator.TM.get_tm (prec, deg) xi (nth 0 (A.TaylorValuator.eval prec deg xi pfm (A.TaylorValuator.TM.var :: bounds)) A.TaylorValuator.TM.dummy) in IT.taylor_integral_naive_intersection prec fmi gi xi ui vi in let Fi2 := let bounds := hyps ++ map (T.eval_bnd prec) cf in let bounds := map A.TaylorValuator.TM.const bounds in fun ui => let yi := fi (I.upper_extent ui) in if I.bounded yi then I.mul prec yi (mi prec ui) else I.nai in let Fi u v := match u, v with | IR.IBu, IR.IBv => Fi2 ui | IR.IBu, IR.IBp v => Fi1 ui (I.singleton v) | IR.IBp u, IR.IBv => Fi2 (I.singleton u) | IR.IBp u, IR.IBp v => Fi1 (I.singleton u) (I.singleton v) | _, _ => I.nai end in (mid, Fi).
imports: Coq(Reals List ZArith Psatz) Flocq(Zaux) Coquelicot(Coquelicot) Stdlib Coquelicot Xreal Basic Sig Interval Integral Eval Bertrand Tree Prog Reify Refine Interval_helper