TorchLean API

FloatLib.Numerics.Enclosure.Interval.Real

Real meaning of rationally computed endpoint enclosures #

Rational endpoint calculations enclose arbitrary real members of an interval, not just rational samples. The rounding interface still accepts only executable rationals. Its endpoint bounds are embedded into the reals after the computation, so no real-number rounding oracle is needed.

def FloatLib.Numerics.Interval.ContainsReal {α : Type u_1} (decode : αOption ) (I : Interval α) (x : ) :

Interpret finite rational endpoints as a closed interval of real numbers.

Instances For
    theorem FloatLib.Numerics.Interval.containsReal_iff_of_decode? {α : Type u_1} {decode : αOption } {I : Interval α} {a : Interval } (ha : decode? decode I = some a) (x : ) :
    ContainsReal decode I x a.lo x x a.hi

    A successful finite decoder supplies the real endpoint inequalities.

    theorem FloatLib.Numerics.Interval.containsReal_encloseInterval? {α : Type u_1} (R : OutwardRounding α ) {a : Interval } {I : Interval α} (h : encloseInterval? R a = some I) {x : } (hx : a.lo x x a.hi) :

    Rational outward rounding encloses every real between the exact rational bounds.

    theorem FloatLib.Numerics.Interval.containsReal_liftUnary? {α : Type u_1} (R : OutwardRounding α ) (f : Interval Interval ) (g : ) (hf : ∀ (a : Interval ) (x : ), a.lo x x a.hi(f a).lo g x g x (f a).hi) {I K : Interval α} (h : liftUnary? R f I = some K) {x : } (hx : ContainsReal R.decode I x) :

    Lift a rational endpoint enclosure whose interpreted bounds enclose the desired real image.

    theorem FloatLib.Numerics.Interval.containsReal_liftBinary? {α : Type u_1} (R : OutwardRounding α ) (f : Interval Interval Interval ) (g : ) (hf : ∀ (a b : Interval ) (x y : ), a.lo x x a.hib.lo y y b.hi(f a b).lo g x y g x y (f a b).hi) {I J K : Interval α} (h : liftBinary? R f I J = some K) {x y : } (hx : ContainsReal R.decode I x) (hy : ContainsReal R.decode J y) :
    ContainsReal R.decode K (g x y)

    Lift a rational binary endpoint enclosure to arbitrary real members of its input intervals.

    theorem FloatLib.Numerics.Interval.containsReal_neg? {α : Type u_1} (R : OutwardRounding α ) {I K : Interval α} (h : neg? R I = some K) {x : } (hx : ContainsReal R.decode I x) :

    Successful negation encloses the negative of every represented real.

    theorem FloatLib.Numerics.Interval.containsReal_add? {α : Type u_1} (R : OutwardRounding α ) {I J K : Interval α} (h : add? R I J = some K) {x y : } (hx : ContainsReal R.decode I x) (hy : ContainsReal R.decode J y) :

    Successful rational endpoint addition encloses sums of arbitrary real members.

    theorem FloatLib.Numerics.Interval.containsReal_sub? {α : Type u_1} (R : OutwardRounding α ) {I J K : Interval α} (h : sub? R I J = some K) {x y : } (hx : ContainsReal R.decode I x) (hy : ContainsReal R.decode J y) :

    Successful rational endpoint subtraction encloses differences of arbitrary real members.

    theorem FloatLib.Numerics.Interval.containsReal_mul? {α : Type u_1} (R : OutwardRounding α ) {I J K : Interval α} (h : mul? R I J = some K) {x y : } (hx : ContainsReal R.decode I x) (hy : ContainsReal R.decode J y) :

    Successful rational four-corner multiplication encloses products of arbitrary real members.

    theorem FloatLib.Numerics.Interval.containsReal_div? {α : Type u_1} (R : OutwardRounding α ) {I J K : Interval α} (h : div? R I J = some K) {x y : } (hx : ContainsReal R.decode I x) (hy : ContainsReal R.decode J y) :

    Successful rational four-corner division encloses quotients of arbitrary real members.