FexpDiv.v



(****************************************************************************
                                                                             
          IEEE754  :  FexpDiv                                                    
                                                                             
                 Sylvie Boldo                                           
                                                                             
*****************************************************************************
*)

Require Import Arith.
Require Import Reals.
Require Export Faux.
Require Export sTactic.
Section Div.
Variables wi, wi1, qi, D, N, qi1, wi2, ai, bi, eps1, eps2, eps3, ep:R.
Hypothesis Hw:<R> wi==(Rminus wi1 (Rmult qi D)).
Hypothesis Ha:(Rle (Rabsolu (Rmult (Rinv wi1) (Rminus ai wi1))) eps1).
Hypothesis Hb:(Rle (Rabsolu (Rmult (Rinv D) (Rminus bi D))) eps2).
Hypothesis Hq:
           (Rle
              (Rabsolu
                 (Rmult
                    (Rinv (Rmult (Rinv bi) ai)) (Rminus qi (Rmult (Rinv bi) ai))))
              eps3).
Hypothesis NZwi:~ wi1==R0.
Hypothesis NZD:~ D==R0.
Hypothesis NZbi:~ bi==R0.
Hypothesis NZai:~ ai==R0.
Hypothesis PosEps1:(Rle R0 eps1).
Hypothesis PosEps2:(Rle R0 eps2).
Hypothesis PosEps3:(Rle R0 eps3).
Hypothesis LeEps1:(Rlt eps1 R1).
Hypothesis LeEps2:(Rlt eps2 R1).
Hypothesis LeEps3:(Rlt eps3 R1).
Hypothesis Hep:<R> ep==(Rmax (Rmax eps1 eps2) eps3).

Theorem InegAbsInf:
  (x, y, eps:R) ~ x==R0 -> (Rle (Rabsolu (Rmult (Rinv x) (Rminus y x))) eps) ->
  (Rle (Rabsolu y) (Rmult (Rplus R1 eps) (Rabsolu x))).

Theorem
InegAbsSup:
  (x, y, eps:R) ~ x==R0 -> (Rle (Rabsolu (Rmult (Rinv x) (Rminus y x))) eps) ->
  (Rle (Rmult (Rminus R1 eps) (Rabsolu x)) (Rabsolu y)).

Theorem
DivFirstCase:
  (Rle
     (Rmult (Rminus (Rabsolu wi1) (Rabsolu (Rmult qi D))) (Rinv (Rabsolu wi1)))
     (Rminus
        R1
        (Rmult (Rmult (Rminus R1 eps3) (Rminus R1 eps1)) (Rinv (Rplus R1 eps2))))).

Theorem
DivSecondCase:
  (Rle
     (Rmult (Rminus (Rabsolu (Rmult qi D)) (Rabsolu wi1)) (Rinv (Rabsolu wi1)))
     (Rminus
        (Rmult (Rmult (Rplus R1 eps3) (Rplus R1 eps1)) (Rinv (Rminus R1 eps2)))
        R1)).

Definition
dsd := [x, y:R](Rle R0 x) /\ (Rle R0 y) \/ (Rle x R0) /\ (Rle y R0).

Theorem
dsdAbs:
  (x, y:R) (
dsd x y) ->
  (Rabsolu (Rminus x y))==(Rabsolu (Rminus (Rabsolu x) (Rabsolu y))).

Theorem dsdsym: (x, y:R) (dsd x y) ->(dsd y x).

Theorem Inegdsd:
  (x, y, eps:R)
  ~ x==R0 ->
  (Rlt eps R1) -> (Rle (Rabsolu (Rmult (Rinv x) (Rminus y x))) eps) ->(
dsd x y).

Theorem dsdtrans: (x, y, z:R) (dsd x y) -> (dsd y z) -> ~ y==R0 ->(dsd x z).

Theorem dsdinv: (x, y:R) (dsd x y) -> ~ y==R0 ->(dsd x (Rinv y)).

Theorem dsdmult: (x, y, r:R) (dsd x y) ->(dsd (Rmult r x) (Rmult r y)).

Theorem dsdwi1qiD: (dsd wi1 (Rmult qi D)).

Theorem Maxwiwi1:
  (Rle
     (Rmult (Rabsolu wi) (Rinv (Rabsolu wi1)))
     (
Rmax
        (Rminus
           R1
           (Rmult
              (Rmult (Rminus R1 eps3) (Rminus R1 eps1)) (Rinv (Rplus R1 eps2))))
        (Rminus
           (Rmult
              (Rmult (Rplus R1 eps3) (Rplus R1 eps1)) (Rinv (Rminus R1 eps2)))
           R1))).

Theorem Rmax_simpl1: (p, q:R) (Rle p q) ->(Rmax p q)==q.

Theorem RmaxProp: (P:R ->Prop) (x, y:R) (P x) -> (P y) ->(P (Rmax x y)).

Theorem ep_aux:
  ((Rle R0 ep) /\ (Rlt ep R1)) /\
  ((Rle eps1 ep) /\ ((Rle eps2 ep) /\ (Rle eps3 ep))).

Theorem
ConvDiv:
  (Rle
     (Rmult (Rabsolu wi) (Rinv (Rabsolu wi1)))
     (Rmult
        (Rplus ep (Rplus ep (Rplus ep (Rmult ep ep)))) (Rinv (Rminus R1 ep)))).
End Div.

30/05/01, 17:53