Library comput1
Require Export alpha.
Require Export Why2Gappa.
Require Export WhyFloatsStrictLegacy.
Local Coercion FtoRradix: Float.float >-> R.
Require Export Why2Gappa.
Require Export WhyFloatsStrictLegacy.
Local Coercion FtoRradix: Float.float >-> R.
Lemmas on the inner loop computations
general case
Lemma epik_one_step_FPerrorr: forall (a dres dp dipk dik dimk dikm t t' t1 t2 t3 t4 t5:double),
(0%Z <= double_value a)%R -> (double_value a <= 1%Z)%R ->
(0%Z < double_exact a)%R -> (double_exact a <= 1%Z)%R ->
(Rle (double_round_error a) (powerRZ (IZR 2) (- 49))) ->
(Rabs (double_value dipk) <= 2%Z)%R -> (Rabs (double_value dik) <= 2%Z)%R ->
(Rabs (double_value dimk) <= 2%Z)%R -> (Rabs (double_value dikm) <= 2%Z)%R ->
double_value t = 2%R -> double_value t' = 2%R ->
(mul_double_post nearest_even t dik t1) ->
(sub_double_post nearest_even dipk t1 t2) ->
(add_double_post nearest_even t2 dimk dp) ->
(mul_double_post nearest_even t' dik t3) ->
(sub_double_post nearest_even t3 dikm t4) ->
(mul_double_post nearest_even a dp t5) ->
(add_double_post nearest_even t4 t5 dres) ->
(Rabs ( double_value dres - (2 * double_value dik - double_value dikm+ double_exact a *
(double_value dipk - 2 * double_value dik +double_value dimk)))
<= 78* powerRZ 2 (-52))%R.
case k=1
Lemma epik_step1_FPerrorr: forall (a dres dp dipk dik dimk t t1 t2 t3 t4 t5:double),
(0%Z <= double_value a)%R -> (double_value a <= 1%Z)%R ->
(0%Z < double_exact a)%R -> (double_exact a <= 1%Z)%R ->
(Rle (double_round_error a) (powerRZ (IZR 2) (- 49))) ->
(Rabs (double_value dipk) <= 2%Z)%R -> (Rabs (double_value dik) <= 2%Z)%R ->
(Rabs (double_value dimk) <= 2%Z)%R ->
double_value t = 2 ->
double_value t1 = (5/10)%R ->
(mul_double_post nearest_even t dik t2) ->
(sub_double_post nearest_even dipk t2 t3) ->
(add_double_post nearest_even t3 dimk dp) ->
(mul_double_post nearest_even t1 a t4) ->
(mul_double_post nearest_even t4 dp t5) ->
(add_double_post nearest_even dik t5 dres) ->
(Rabs ( double_value dres - (double_value dik + /2*double_exact a *
(double_value dipk - 2 * double_value dik +double_value dimk)))
<= 81* powerRZ 2 (-53))%R.