Files
why3/examples/numeric/lse/why3session.xml
Claude Marche d344b75294 fix proofs in subdir numeric
make them replayed in bench
2025-09-30 13:34:10 +02:00

861 lines
43 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
"https://www.why3.org/why3session.dtd">
<why3session shape_version="6">
<prover id="0" name="CVC5" version="1.0.5" timelimit="5" steplimit="0" memlimit="2000"/>
<prover id="1" name="Z3" version="4.8.10" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="4" name="CVC4" version="1.8" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="6" name="Z3" version="4.13.2" timelimit="5" steplimit="0" memlimit="2000"/>
<prover id="8" name="Alt-Ergo" version="2.6.2" timelimit="5" steplimit="0" memlimit="2000"/>
<prover id="9" name="CVC5" version="1.2.0" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="10" name="Coq" version="8.20.1" timelimit="0" steplimit="0" memlimit="0"/>
<file format="whyml">
<path name=".."/><path name="lse.mlw"/>
<theory name="Helpers" proved="true">
<goal name="sum_of_fun_le_sum_of_abs_fun&#39;vc" expl="VC for sum_of_fun_le_sum_of_abs_fun" proved="true">
<proof prover="8"><result status="valid" time="2.041049" steps="13461"/></proof>
</goal>
<goal name="usum_rec&#39;vc" expl="VC for usum_rec" proved="true">
<transf name="split_vc" proved="true" >
<goal name="usum_rec&#39;vc.0" expl="variant decrease" proved="true">
<proof prover="8"><result status="valid" time="0.039891" steps="90"/></proof>
</goal>
<goal name="usum_rec&#39;vc.1" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.042781" steps="90"/></proof>
</goal>
<goal name="usum_rec&#39;vc.2" expl="postcondition" proved="true">
<transf name="split_vc" proved="true" >
<goal name="usum_rec&#39;vc.2.0" expl="postcondition" proved="true">
<transf name="split_vc" proved="true" >
<goal name="usum_rec&#39;vc.2.0.0" expl="postcondition" proved="true">
<proof prover="8"><result status="valid" time="0.070498" steps="472"/></proof>
</goal>
</transf>
</goal>
<goal name="usum_rec&#39;vc.2.1" expl="postcondition" proved="true">
<transf name="split_vc" proved="true" >
<goal name="usum_rec&#39;vc.2.1.0" expl="postcondition" proved="true">
<proof prover="8"><result status="valid" time="2.330339" steps="33471"/></proof>
</goal>
<goal name="usum_rec&#39;vc.2.1.1" expl="postcondition" proved="true">
<transf name="assert" proved="true" arg1="let t = 1.0 +. eps in
let t1 = b - 1 in
let t2 = to_real (f @ t1) in
let t3 = eps *. from_int (t1 - a) in
abs (to_real result -. (sum (real_fun f) a t1 +. t2))
&lt;=. ((((t3 +. 0.0) +. eps) *. (sum (abs_real_fun f) a t1 +. abs t2))
+. (((t +. 0.0) *. 0.0) +. ((t +. t3) *. 0.0)))">
<goal name="usum_rec&#39;vc.2.1.1.0" expl="asserted formula" proved="true">
<transf name="assert" proved="true" arg1="abs (to_real result -. (sum (real_fun f) a (b - 1) +. to_real (f @ (b - 1))))
&lt;=. (((((eps *. from_int ((b - 1) - a)) +. 0.0) +. eps)
*. (sum (abs_real_fun f) a (b - 1) +. abs (to_real (f @ (b - 1)))))
+. ((((1.0 +. eps) +. 0.0) *. 0.0)
+. (((1.0 +. eps) +. (eps *. from_int ((b - 1) - a))) *. 0.0)))">
<goal name="usum_rec&#39;vc.2.1.1.0.0" expl="asserted formula" proved="true">
<transf name="apply" proved="true" arg1="uadd_single_error_propagation" arg2="with" arg3="o1,f @ (b - 1)">
<goal name="usum_rec&#39;vc.2.1.1.0.0.0" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.053655" steps="130"/></proof>
</goal>
<goal name="usum_rec&#39;vc.2.1.1.0.0.1" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.048617" steps="111"/></proof>
</goal>
<goal name="usum_rec&#39;vc.2.1.1.0.0.2" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.094701" steps="504"/></proof>
</goal>
<goal name="usum_rec&#39;vc.2.1.1.0.0.3" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.045546" steps="114"/></proof>
</goal>
<goal name="usum_rec&#39;vc.2.1.1.0.0.4" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.082211" steps="329"/></proof>
</goal>
<goal name="usum_rec&#39;vc.2.1.1.0.0.5" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.053455" steps="107"/></proof>
</goal>
<goal name="usum_rec&#39;vc.2.1.1.0.0.6" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.045652" steps="107"/></proof>
</goal>
<goal name="usum_rec&#39;vc.2.1.1.0.0.7" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.048900" steps="107"/></proof>
</goal>
<goal name="usum_rec&#39;vc.2.1.1.0.0.8" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.044080" steps="106"/></proof>
</goal>
</transf>
</goal>
<goal name="usum_rec&#39;vc.2.1.1.0.1" expl="asserted formula" proved="true">
<proof prover="8"><result status="valid" time="0.082586" steps="367"/></proof>
</goal>
</transf>
</goal>
<goal name="usum_rec&#39;vc.2.1.1.1" expl="postcondition" proved="true">
<transf name="simplify_computations" proved="true" >
<goal name="usum_rec&#39;vc.2.1.1.1.0" expl="postcondition" proved="true">
<proof prover="8"><result status="valid" time="1.978196" steps="53980"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
</transf>
</goal>
</transf>
</goal>
</transf>
</goal>
<goal name="exp_approx_pos" proved="true">
<proof prover="8"><result status="valid" time="0.809491" steps="7394"/></proof>
</goal>
<goal name="sum_strictly_pos&#39;vc" expl="VC for sum_strictly_pos" proved="true">
<transf name="split_vc" proved="true" >
<goal name="sum_strictly_pos&#39;vc.0" expl="variant decrease" proved="true">
<proof prover="8"><result status="valid" time="0.039526" steps="92"/></proof>
</goal>
<goal name="sum_strictly_pos&#39;vc.1" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.040957" steps="91"/></proof>
</goal>
<goal name="sum_strictly_pos&#39;vc.2" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.066159" steps="360"/></proof>
</goal>
<goal name="sum_strictly_pos&#39;vc.3" expl="postcondition" proved="true">
<proof prover="8"><result status="valid" time="1.884884" steps="14303"/></proof>
</goal>
</transf>
</goal>
<goal name="usum_strictly_pos&#39;vc" expl="VC for usum_strictly_pos" proved="true">
<proof prover="8"><result status="valid" time="2.073195" steps="14592"/></proof>
</goal>
<goal name="lt_compat_order_mult_l" proved="true">
<proof prover="10"><path name="lse_Helpers_lt_compat_order_mult_l_1.v"/><result status="valid" time="0.356262"/></proof>
</goal>
</theory>
<theory name="LSE" proved="true">
<goal name="exp_of_f&#39;vc" expl="VC for exp_of_f" proved="true">
<proof prover="8"><result status="valid" time="0.034104" steps="89"/></proof>
</goal>
<goal name="lse&#39;vc" expl="VC for lse" proved="true">
<transf name="split_vc" proved="true" >
<goal name="lse&#39;vc.0" expl="assertion" proved="true">
<proof prover="8"><result status="valid" time="2.738761" steps="28090"/></proof>
</goal>
<goal name="lse&#39;vc.1" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.050662" steps="93"/></proof>
</goal>
<goal name="lse&#39;vc.2" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.124979" steps="918"/></proof>
</goal>
<goal name="lse&#39;vc.3" expl="precondition" proved="true">
<proof prover="4" memlimit="2000"><result status="valid" time="0.653171" steps="107213"/></proof>
</goal>
<goal name="lse&#39;vc.4" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.039907" steps="145"/></proof>
</goal>
<goal name="lse&#39;vc.5" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.123882" steps="478"/></proof>
</goal>
<goal name="lse&#39;vc.6" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.047416" steps="140"/></proof>
</goal>
<goal name="lse&#39;vc.7" expl="assertion" proved="true">
<proof prover="8"><result status="valid" time="0.042235" steps="292"/></proof>
</goal>
<goal name="lse&#39;vc.8" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.059057" steps="287"/></proof>
</goal>
<goal name="lse&#39;vc.9" expl="precondition" proved="true">
<proof prover="0"><result status="valid" time="0.787689" steps="78339"/></proof>
</goal>
<goal name="lse&#39;vc.10" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.049418" steps="288"/></proof>
</goal>
<goal name="lse&#39;vc.11" expl="precondition" proved="true">
<proof prover="0"><result status="valid" time="0.857356" steps="95688"/></proof>
</goal>
<goal name="lse&#39;vc.12" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.054076" steps="301"/></proof>
</goal>
<goal name="lse&#39;vc.13" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="4.317368" steps="17614"/></proof>
</goal>
<goal name="lse&#39;vc.14" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.044836" steps="325"/></proof>
</goal>
<goal name="lse&#39;vc.15" expl="postcondition" proved="true">
<transf name="assert" proved="true" arg1="let t = log (sum exact_f&#39; 0 n) in
abs (to_real result -. t)
&lt;=. ((abs t *. log_error)
+. ((-. log
(1.0
-. (exp_error +. ((from_int n *. eps) *. (1.0 +. exp_error)))))
*. (1.0 +. log_error)))">
<goal name="lse&#39;vc.15.0" expl="asserted formula" proved="true">
<transf name="assert" proved="true" arg1="abs (to_real result -. log (sum exact_f&#39; 0 n))
&lt;=. ((abs (log (sum exact_f&#39; 0 n)) *. log_error)
+. ((-. log
(1.0
-. (exp_error +. ((from_int n *. eps) *. (1.0 +. exp_error)))))
*. (1.0 +. log_error)))">
<goal name="lse&#39;vc.15.0.0" expl="asserted formula" proved="true">
<transf name="assert" proved="true" arg1="abs (to_real result -. log (sum exact_f&#39; 0 n))
&lt;=. ((log_error *. abs (log (sum exact_f&#39; 0 n)))
+. (((-. log
(1.0
-. ((((exp_error
+. ((from_int n *. eps) *. (1.0 +. exp_error)))
*. sum exact_f&#39; 0 n)
+. 0.0)
/. sum exact_f&#39; 0 n)))
*. (1.0 +. log_error))
+. 0.0))">
<goal name="lse&#39;vc.15.0.0.0" expl="asserted formula" proved="true">
<transf name="apply" proved="true" arg1="log_single_error_propagation" arg2="with" arg3="s">
<goal name="lse&#39;vc.15.0.0.0.0" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.080788" steps="366"/></proof>
</goal>
<goal name="lse&#39;vc.15.0.0.0.1" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.076997" steps="367"/></proof>
</goal>
<goal name="lse&#39;vc.15.0.0.0.2" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.072168" steps="335"/></proof>
</goal>
<goal name="lse&#39;vc.15.0.0.0.3" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.051109" steps="347"/></proof>
</goal>
<goal name="lse&#39;vc.15.0.0.0.4" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.051829" steps="335"/></proof>
</goal>
</transf>
</goal>
<goal name="lse&#39;vc.15.0.0.1" expl="asserted formula" proved="true">
<transf name="inline_goal" proved="true" >
<goal name="lse&#39;vc.15.0.0.1.0" expl="asserted formula" proved="true">
<transf name="split_all_full" proved="true" >
<goal name="lse&#39;vc.15.0.0.1.0.0" expl="asserted formula" proved="true">
<transf name="inline_goal" proved="true" >
<goal name="lse&#39;vc.15.0.0.1.0.0.0" expl="asserted formula" proved="true">
<proof prover="8" timelimit="30" memlimit="4000"><result status="valid" time="9.752305" steps="83009"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
</transf>
</goal>
</transf>
</goal>
<goal name="lse&#39;vc.15.0.1" expl="asserted formula" proved="true">
<proof prover="8"><result status="valid" time="0.081766" steps="432"/></proof>
</goal>
</transf>
</goal>
<goal name="lse&#39;vc.15.1" expl="postcondition" proved="true">
<proof prover="8"><result status="valid" time="0.089013" steps="455"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
</theory>
<theory name="SLSE">
<goal name="g_error_bound">
</goal>
<goal name="exact_g&#39;vc" expl="VC for exact_g" proved="true">
<proof prover="8"><result status="valid" time="0.087981" steps="246"/></proof>
</goal>
<goal name="compat_order_mult1" proved="true">
<proof prover="8"><result status="valid" time="0.082538" steps="672"/></proof>
</goal>
<goal name="compat_order_mult2" proved="true">
<proof prover="8"><result status="valid" time="0.206613" steps="2439"/></proof>
</goal>
<goal name="g&#39;vc" expl="VC for g" proved="true">
<transf name="split_vc" proved="true" >
<goal name="g&#39;vc.0" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.055939" steps="246"/></proof>
</goal>
<goal name="g&#39;vc.1" expl="precondition" proved="true">
<proof prover="9"><result status="valid" time="0.140347" steps="31661"/></proof>
</goal>
</transf>
</goal>
<goal name="g_pos" proved="true">
<proof prover="8"><result status="valid" time="1.068580" steps="31434"/></proof>
</goal>
<goal name="error_of_g&#39;vc" expl="VC for error_of_g" proved="true">
<transf name="split_vc" proved="true" >
<goal name="error_of_g&#39;vc.0" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.045624" steps="254"/></proof>
</goal>
<goal name="error_of_g&#39;vc.1" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="1.668321" steps="45894"/></proof>
</goal>
<goal name="error_of_g&#39;vc.2" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.060590" steps="284"/></proof>
</goal>
<goal name="error_of_g&#39;vc.3" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.055170" steps="319"/></proof>
</goal>
<goal name="error_of_g&#39;vc.4" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.077295" steps="338"/></proof>
</goal>
<goal name="error_of_g&#39;vc.5" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.063406" steps="407"/></proof>
</goal>
<goal name="error_of_g&#39;vc.6" expl="assertion" proved="true">
<proof prover="6"><result status="valid" time="0.780622" steps="1280980"/></proof>
</goal>
<goal name="error_of_g&#39;vc.7" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.053766" steps="476"/></proof>
</goal>
<goal name="error_of_g&#39;vc.8" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.048628" steps="476"/></proof>
</goal>
<goal name="error_of_g&#39;vc.9" expl="precondition" proved="true">
<proof prover="4"><result status="valid" time="0.253260" steps="48425"/></proof>
</goal>
<goal name="error_of_g&#39;vc.10" expl="precondition" proved="true">
<proof prover="1"><result status="valid" time="0.847686" steps="1293715"/></proof>
</goal>
<goal name="error_of_g&#39;vc.11" expl="postcondition" proved="true">
<proof prover="8"><result status="valid" time="0.076338" steps="905"/></proof>
</goal>
<goal name="error_of_g&#39;vc.12" expl="assertion" proved="true">
<proof prover="8"><result status="valid" time="0.067206" steps="980"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13" expl="assertion" proved="true">
<transf name="assert" proved="true" arg1="let t1 = to_real y in
let t2 = to_real u2 in
let t3 = abs t2 in
let t4 = eps +. eps in
let t5 = to_real x +. to_real mu in
let t6 = t5 -. t1 in
let t7 = abs t5 +. abs t1 in
let t8 = exp ((-. (t6 *. t6)) /. t2) in
abs (to_real ret -. t8)
&lt;=. (t8
*. (exp_error
+. ((exp
(((eps +. (((t4 +. t4) +. (t4 *. t4)) *. (1.0 +. eps)))
*. ((t7 *. t7) /. t3))
+. ((eta /. t3) +. eta))
-. 1.0)
*. (1.0 +. exp_error))))">
<goal name="error_of_g&#39;vc.13.0" expl="asserted formula" proved="true">
<transf name="assert" proved="true" arg1="abs
(to_real ret
-. exp
((-. (((to_real x +. to_real mu) -. to_real y)
*. ((to_real x +. to_real mu) -. to_real y)))
/. to_real u2))
&lt;=. (exp
((-. (((to_real x +. to_real mu) -. to_real y)
*. ((to_real x +. to_real mu) -. to_real y)))
/. to_real u2)
*. (exp_error
+. ((exp
(((eps
+. ((((eps +. eps) +. (eps +. eps))
+. ((eps +. eps) *. (eps +. eps)))
*. (1.0 +. eps)))
*. (((abs (to_real x +. to_real mu) +. abs (to_real y))
*. (abs (to_real x +. to_real mu) +. abs (to_real y)))
/. abs (to_real u2)))
+. ((eta /. abs (to_real u2)) +. eta))
-. 1.0)
*. (1.0 +. exp_error))))">
<goal name="error_of_g&#39;vc.13.0.0" expl="asserted formula" proved="true">
<transf name="assert" proved="true" arg1="abs
(to_real ret
-. exp
((-. (((to_real x +. to_real mu) -. to_real y)
*. ((to_real x +. to_real mu) -. to_real y)))
/. to_real u2))
&lt;=. (((exp_error
+. ((exp
(((eps
+. ((((eps +. eps) +. (eps +. eps))
+. ((eps +. eps) *. (eps +. eps)))
*. (1.0 +. eps)))
*. (((abs (to_real x +. to_real mu) +. abs (to_real y))
*. (abs (to_real x +. to_real mu) +. abs (to_real y)))
/. abs (to_real u2)))
+. ((eta /. abs (to_real u2)) +. eta))
-. 1.0)
*. (1.0 +. exp_error)))
*. exp
((-. (((to_real x +. to_real mu) -. to_real y)
*. ((to_real x +. to_real mu) -. to_real y)))
/. to_real u2))
+. 0.0)">
<goal name="error_of_g&#39;vc.13.0.0.0" expl="asserted formula" proved="true">
<transf name="apply" proved="true" arg1="exp_single_error_propagation" arg2="with" arg3="(--. (((x ++. mu) --. y) **. ((x ++. mu) --. y))) ///. u2">
<goal name="error_of_g&#39;vc.13.0.0.0.0" expl="apply premises" proved="true">
<transf name="assert" proved="true" arg1="abs
(to_real ((--. (((x ++. mu) --. y) **. ((x ++. mu) --. y))) ///. u2)
-. ((-. (((to_real x +. to_real mu) -. to_real y)
*. ((to_real x +. to_real mu) -. to_real y)))
/. to_real u2))
&lt;=. (((eps
+. ((((eps +. eps) +. (eps +. eps)) +. ((eps +. eps) *. (eps +. eps)))
*. (1.0 +. eps)))
*. (((abs (to_real x +. to_real mu) +. abs (to_real y))
*. (abs (to_real x +. to_real mu) +. abs (to_real y)))
/. abs (to_real u2)))
+. ((eta /. abs (to_real u2)) +. eta))">
<goal name="error_of_g&#39;vc.13.0.0.0.0.0" expl="asserted formula" proved="true">
<transf name="assert" proved="true" arg1="abs
(to_real ((--. (((x ++. mu) --. y) **. ((x ++. mu) --. y))) ///. u2)
-. ((-. (((to_real x +. to_real mu) -. to_real y)
*. ((to_real x +. to_real mu) -. to_real y)))
/. to_real u2))
&lt;=. (((eps
+. ((((eps +. eps) +. (eps +. eps)) +. ((eps +. eps) *. (eps +. eps)))
*. (1.0 +. eps)))
*. (((abs (to_real x +. to_real mu) +. abs (to_real y))
*. (abs (to_real x +. to_real mu) +. abs (to_real y)))
/. abs (to_real u2)))
+. ((eta /. abs (to_real u2)) +. eta))">
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0" expl="asserted formula" proved="true">
<transf name="apply" proved="true" arg1="udiv_exact_single_error_propagation" arg2="with" arg3="--. (((x ++. mu) --. y) **. ((x ++. mu) --. y))">
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0" expl="apply premises" proved="true">
<transf name="assert" proved="true" arg1="abs
(to_real (--. (((x ++. mu) --. y) **. ((x ++. mu) --. y)))
-. (-. (((to_real x +. to_real mu) -. to_real y)
*. ((to_real x +. to_real mu) -. to_real y))))
&lt;=. (((eps
+. ((((eps +. eps) +. (eps +. eps)) +. ((eps +. eps) *. (eps +. eps)))
*. (1.0 +. eps)))
*. ((abs (to_real x +. to_real mu) +. abs (to_real y))
*. (abs (to_real x +. to_real mu) +. abs (to_real y))))
+. eta)">
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0" expl="asserted formula" proved="true">
<transf name="assert" proved="true" arg1="abs
(to_real (((x ++. mu) --. y) **. ((x ++. mu) --. y))
-. (((to_real x +. to_real mu) -. to_real y)
*. ((to_real x +. to_real mu) -. to_real y)))
&lt;=. (((eps
+. ((((eps +. eps) +. (eps +. eps)) +. ((eps +. eps) *. (eps +. eps)))
*. (1.0 +. eps)))
*. ((abs (to_real x +. to_real mu) +. abs (to_real y))
*. (abs (to_real x +. to_real mu) +. abs (to_real y))))
+. ((((((0.0 +. (0.0 *. (eps +. eps)))
*. (abs (to_real x +. to_real mu) +. abs (to_real y)))
+. ((0.0 +. (0.0 *. (eps +. eps)))
*. (abs (to_real x +. to_real mu) +. abs (to_real y))))
+. (0.0 *. 0.0))
*. (1.0 +. eps))
+. eta))">
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0" expl="asserted formula" proved="true">
<transf name="apply" proved="true" arg1="umul_single_error_propagation" arg2="with" arg3="(x ++. mu) --. y,(x ++. mu) --. y">
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.0" expl="apply premises" proved="true">
<transf name="assert" proved="true" arg1="abs (to_real ((x ++. mu) --. y) -. ((to_real x +. to_real mu) -. to_real y))
&lt;=. ((((eps +. 0.0) +. eps)
*. (abs (to_real x +. to_real mu) +. abs (to_real y)))
+. ((((1.0 +. eps) +. 0.0) *. 0.0) +. (((1.0 +. eps) +. eps) *. 0.0)))">
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.0.0" expl="asserted formula" proved="true">
<transf name="apply" proved="true" arg1="usub_single_error_propagation" arg2="with" arg3="x ++. mu,y">
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.0.0.0" expl="apply premises" proved="true">
<transf name="assert" proved="true" arg1="abs (to_real (x ++. mu) -. (to_real x +. to_real mu))
&lt;=. (eps *. abs (to_real x +. to_real mu))">
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.0.0.0.0" expl="asserted formula" proved="true">
<proof prover="8"><result status="valid" time="1.294135" steps="86017"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.0.0.0.1" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.087732" steps="730"/></proof>
</goal>
</transf>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.0.0.1" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.071164" steps="609"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.0.0.2" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.107139" steps="636"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.0.0.3" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.071643" steps="637"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.0.0.4" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.100343" steps="604"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.0.0.5" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.097733" steps="604"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.0.0.6" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.079088" steps="604"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.0.0.7" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.098703" steps="604"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.0.0.8" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.084748" steps="604"/></proof>
</goal>
</transf>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.0.1" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.114138" steps="1798"/></proof>
</goal>
</transf>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.1" expl="apply premises" proved="true">
<proof prover="4"><result status="valid" time="3.720153" steps="316615"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.2" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.176427" steps="1413"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.3" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.108421" steps="1413"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.4" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.065857" steps="604"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.5" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.121114" steps="604"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.6" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.076019" steps="604"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.7" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.103399" steps="604"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.0.8" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.063559" steps="604"/></proof>
</goal>
</transf>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.0.1" expl="asserted formula" proved="true">
<proof prover="4"><result status="valid" time="1.742465" steps="237877"/></proof>
</goal>
</transf>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.0.1" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.252589" steps="20653"/></proof>
</goal>
</transf>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.1" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.154923" steps="4746"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.2" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.081016" steps="610"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.3" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.099044" steps="604"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.4" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.072483" steps="605"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.5" expl="apply premises" proved="true">
<proof prover="0" memlimit="1000"><result status="valid" time="0.113774" steps="13464"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.0.6" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.093429" steps="604"/></proof>
</goal>
</transf>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.0.1" expl="asserted formula" proved="true">
<proof prover="8"><result status="valid" time="0.370037" steps="9598"/></proof>
</goal>
</transf>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.0.1" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.435950" steps="9598"/></proof>
</goal>
</transf>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.1" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.064241" steps="627"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.2" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.231556" steps="6367"/></proof>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.0.3" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.065894" steps="604"/></proof>
</goal>
</transf>
</goal>
<goal name="error_of_g&#39;vc.13.0.0.1" expl="asserted formula" proved="true">
<proof prover="8"><result status="valid" time="0.300340" steps="24277"/></proof>
</goal>
</transf>
</goal>
<goal name="error_of_g&#39;vc.13.0.1" expl="asserted formula" proved="true">
<proof prover="8"><result status="valid" time="0.794291" steps="23982"/></proof>
</goal>
</transf>
</goal>
<goal name="error_of_g&#39;vc.13.1" expl="assertion" proved="true">
<proof prover="8"><result status="valid" time="5.402143" steps="468144"/></proof>
</goal>
</transf>
</goal>
<goal name="error_of_g&#39;vc.14" expl="postcondition" proved="true">
<proof prover="9"><result status="valid" time="0.161900" steps="36130"/></proof>
</goal>
</transf>
</goal>
<goal name="exact_f&#39;vc" expl="VC for exact_f" proved="true">
<proof prover="8"><result status="valid" time="0.040584" steps="245"/></proof>
</goal>
<goal name="f&#39;vc" expl="VC for f" proved="true">
<transf name="split_vc" proved="true" >
<goal name="f&#39;vc.0" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.043692" steps="250"/></proof>
</goal>
<goal name="f&#39;vc.1" expl="precondition" proved="true">
<transf name="rewrite" proved="true" arg1="H2">
<goal name="f&#39;vc.1.0" expl="precondition" proved="true">
<transf name="assert" proved="true" arg1="(abs ((real_fun g&#39; @ i) -. exact_g (a @ i1) (a @ i) mu) &lt;=. ((exact_g (a @ i1) (a @ i) mu *. g_error)))">
<goal name="f&#39;vc.1.0.0" expl="asserted formula" proved="true">
<transf name="unfold" proved="true" arg1="real_fun">
<goal name="f&#39;vc.1.0.0.0" expl="asserted formula" proved="true">
<transf name="simplify_computations" proved="true" >
<goal name="f&#39;vc.1.0.0.0.0" expl="asserted formula" proved="true">
<transf name="rewrite" proved="true" arg1="H3">
<goal name="f&#39;vc.1.0.0.0.0.0" expl="asserted formula" proved="true">
<proof prover="8"><result status="valid" time="0.122249" steps="4576"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
</transf>
</goal>
<goal name="f&#39;vc.1.0.1" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.032243" steps="312"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
<goal name="f&#39;vc.2" expl="precondition" proved="true">
<proof prover="4"><result status="valid" time="3.046907" steps="329092"/></proof>
</goal>
<goal name="f&#39;vc.3" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.060453" steps="305"/></proof>
</goal>
<goal name="f&#39;vc.4" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.191223" steps="799"/></proof>
</goal>
<goal name="f&#39;vc.5" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.065021" steps="300"/></proof>
</goal>
<goal name="f&#39;vc.6" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.062942" steps="437"/></proof>
</goal>
<goal name="f&#39;vc.7" expl="precondition" proved="true">
<proof prover="4"><result status="valid" time="2.843793" steps="263498"/></proof>
</goal>
<goal name="f&#39;vc.8" expl="assertion" proved="true">
<transf name="split_vc" proved="true" >
<goal name="f&#39;vc.8.0" expl="assertion" proved="true">
<proof prover="0"><result status="valid" time="0.103879" steps="13752"/></proof>
</goal>
<goal name="f&#39;vc.8.1" expl="VC for f" proved="true">
<transf name="unfold" proved="true" arg1="exact_f">
<goal name="f&#39;vc.8.1.0" expl="VC for f" proved="true">
<transf name="rewrite" proved="true" arg1="H">
<goal name="f&#39;vc.8.1.0.0" expl="VC for f" proved="true">
<proof prover="8"><result status="valid" time="0.058161" steps="438"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
</transf>
</goal>
<goal name="f&#39;vc.9" expl="assertion" proved="true">
<proof prover="8"><result status="valid" time="0.098705" steps="460"/></proof>
</goal>
<goal name="f&#39;vc.10" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="2.710829" steps="21777"/></proof>
</goal>
<goal name="f&#39;vc.11" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="3.004572" steps="21881"/></proof>
</goal>
<goal name="f&#39;vc.12" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.064232" steps="476"/></proof>
</goal>
<goal name="f&#39;vc.13" expl="postcondition" proved="true">
<transf name="assert" proved="true" arg1="let t = from_int n in
let t1 = sum exact_g&#39; 0 n in
let t2 = eps *. t in
let t3 = log2 t1 in
abs (to_real result -. t3)
&lt;=. ((abs t3 *. log2_error)
+. ((-. log2
(1.0
-. ((g_error +. (t2 *. (1.0 +. g_error)))
+. ((((0.0 *. t) *. (1.0 +. t2)) +. 0.0) /. t1))))
*. (1.0 +. log2_error)))">
<goal name="f&#39;vc.13.0" expl="asserted formula" proved="true">
<transf name="assert" proved="true" arg1="abs (to_real result -. log2 (sum exact_g&#39; 0 n))
&lt;=. ((abs (log2 (sum exact_g&#39; 0 n)) *. log2_error)
+. ((-. log2
(1.0
-. ((g_error +. ((eps *. from_int n) *. (1.0 +. g_error)))
+. ((((0.0 *. from_int n) *. (1.0 +. (eps *. from_int n)))
+. 0.0)
/. sum exact_g&#39; 0 n))))
*. (1.0 +. log2_error)))">
<goal name="f&#39;vc.13.0.0" expl="asserted formula" proved="true">
<transf name="assert" proved="true" arg1="abs (to_real result -. log2 (sum exact_g&#39; 0 n))
&lt;=. ((log2_error *. abs (log2 (sum exact_g&#39; 0 n)))
+. (((-. log2
(1.0
-. ((((g_error +. ((eps *. from_int n) *. (1.0 +. g_error)))
*. sum exact_g&#39; 0 n)
+. (((0.0 *. from_int n) *. (1.0 +. (eps *. from_int n)))
+. 0.0))
/. sum exact_g&#39; 0 n)))
*. (1.0 +. log2_error))
+. 0.0))">
<goal name="f&#39;vc.13.0.0.0" expl="asserted formula" proved="true">
<transf name="apply" proved="true" arg1="log2_single_error_propagation" arg2="with" arg3="s">
<goal name="f&#39;vc.13.0.0.0.0" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.066001" steps="495"/></proof>
</goal>
<goal name="f&#39;vc.13.0.0.0.1" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.069097" steps="519"/></proof>
</goal>
<goal name="f&#39;vc.13.0.0.0.2" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.065389" steps="495"/></proof>
</goal>
<goal name="f&#39;vc.13.0.0.0.3" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.083296" steps="502"/></proof>
</goal>
<goal name="f&#39;vc.13.0.0.0.4" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.082835" steps="485"/></proof>
</goal>
</transf>
</goal>
<goal name="f&#39;vc.13.0.0.1" expl="asserted formula" proved="true">
<proof prover="8"><result status="valid" time="5.481684" steps="89678"/></proof>
</goal>
</transf>
</goal>
<goal name="f&#39;vc.13.0.1" expl="asserted formula" proved="true">
<proof prover="8"><result status="valid" time="0.102794" steps="785"/></proof>
</goal>
</transf>
</goal>
<goal name="f&#39;vc.13.1" expl="postcondition" proved="true">
<proof prover="8"><result status="valid" time="0.105757" steps="794"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
<goal name="slse&#39;vc" expl="VC for slse" proved="true">
<transf name="split_vc" proved="true" >
<goal name="slse&#39;vc.0" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.048305" steps="251"/></proof>
</goal>
<goal name="slse&#39;vc.1" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.176339" steps="2840"/></proof>
</goal>
<goal name="slse&#39;vc.2" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.053000" steps="251"/></proof>
</goal>
<goal name="slse&#39;vc.3" expl="assertion" proved="true">
<transf name="replace" proved="true" arg1="(f&#39; @ i)" arg2="(f a mu n i)">
<goal name="slse&#39;vc.3.0" expl="assertion" proved="true">
<transf name="replace" proved="true" arg1="(exact_f&#39; @ i)" arg2="(exact_f a mu n i)">
<goal name="slse&#39;vc.3.0.0" expl="assertion" proved="true">
<transf name="replace" proved="true" arg1="(exact_f&#39;&#39; @ i)" arg2="(abs (exact_f a mu n i))">
<goal name="slse&#39;vc.3.0.0.0" expl="assertion" proved="true">
<transf name="apply" proved="true" arg1="f&#39;spec">
<goal name="slse&#39;vc.3.0.0.0.0" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.056081" steps="252"/></proof>
</goal>
<goal name="slse&#39;vc.3.0.0.0.1" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.216685" steps="2841"/></proof>
</goal>
<goal name="slse&#39;vc.3.0.0.0.2" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.063444" steps="252"/></proof>
</goal>
</transf>
</goal>
<goal name="slse&#39;vc.3.0.0.1" expl="equality hypothesis" proved="true">
<proof prover="8"><result status="valid" time="0.265317" steps="2696"/></proof>
</goal>
</transf>
</goal>
<goal name="slse&#39;vc.3.0.1" expl="equality hypothesis" proved="true">
<proof prover="8"><result status="valid" time="0.087808" steps="761"/></proof>
</goal>
</transf>
</goal>
<goal name="slse&#39;vc.3.1" expl="equality hypothesis" proved="true">
<proof prover="8"><result status="valid" time="0.111161" steps="1084"/></proof>
</goal>
</transf>
</goal>
<goal name="slse&#39;vc.4" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.089071" steps="250"/></proof>
</goal>
<goal name="slse&#39;vc.5" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.346571" steps="8358"/></proof>
</goal>
<goal name="slse&#39;vc.6" expl="precondition" proved="true">
<transf name="rewrite" proved="true" arg1="H2">
<goal name="slse&#39;vc.6.0" expl="precondition" proved="true">
<transf name="assert" proved="true" arg1="(abs (to_real (f a mu n i) -. exact_f a mu n i) &lt;=. ((log2_error *. abs (exact_f a mu n i)) -. (log2 (1.0 -. (g_error +. ((from_int n *. eps) *. (1.0 +. g_error)))) *. (1.0 +. log2_error))))">
<goal name="slse&#39;vc.6.0.0" expl="asserted formula" proved="true">
<transf name="apply" proved="true" arg1="f&#39;spec">
<goal name="slse&#39;vc.6.0.0.0" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.047783" steps="269"/></proof>
</goal>
<goal name="slse&#39;vc.6.0.0.1" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.273561" steps="3233"/></proof>
</goal>
<goal name="slse&#39;vc.6.0.0.2" expl="apply premises" proved="true">
<proof prover="8"><result status="valid" time="0.054284" steps="269"/></proof>
</goal>
</transf>
</goal>
<goal name="slse&#39;vc.6.0.1" expl="precondition" proved="true">
<proof prover="4"><result status="valid" time="1.953948" steps="267528"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
<goal name="slse&#39;vc.7" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.045184" steps="303"/></proof>
</goal>
<goal name="slse&#39;vc.8" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.152561" steps="799"/></proof>
</goal>
<goal name="slse&#39;vc.9" expl="precondition" proved="true">
<proof prover="8"><result status="valid" time="0.065748" steps="300"/></proof>
</goal>
<goal name="slse&#39;vc.10" expl="postcondition" proved="true">
<transf name="assert" proved="true" arg1="(abs (to_real ret -. sum exact_f&#39; 0 n) &lt;=. (log2_error +. ((eps *. from_int n) *. (1.0 +. log2_error))) *. sum exact_f&#39;&#39; 0 n -. log2 (1.0 -. (g_error +. ((from_int n *. eps) *. (1.0 +. g_error)))) *. (1.0 +. log2_error) *. from_int n *. (1.0 +. (eps *. from_int n)))">
<goal name="slse&#39;vc.10.0" expl="asserted formula" proved="true">
<proof prover="8"><result status="valid" time="0.056892" steps="724"/></proof>
</goal>
<goal name="slse&#39;vc.10.1" expl="postcondition" proved="true">
<transf name="replace" proved="true" arg1="(exact_f&#39;&#39;)" arg2="(fun (i:int) -&gt; abs (exact_f a mu n i))" arg3="in" arg4="h">
<goal name="slse&#39;vc.10.1.0" expl="postcondition" proved="true">
<transf name="replace" proved="true" arg1="exact_f&#39;" arg2="(fun (i:int) -&gt; exact_f a mu n i)" arg3="in" arg4="h">
<goal name="slse&#39;vc.10.1.0.0" expl="postcondition" proved="true">
<transf name="apply" proved="true" arg1="h">
</transf>
</goal>
<goal name="slse&#39;vc.10.1.0.1" expl="equality hypothesis" proved="true">
<proof prover="8"><result status="valid" time="0.053098" steps="763"/></proof>
</goal>
</transf>
</goal>
<goal name="slse&#39;vc.10.1.1" expl="equality hypothesis" proved="true">
<proof prover="8"><result status="valid" time="0.262792" steps="13968"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
</transf>
</goal>
</theory>
</file>
</why3session>