1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
3 "https://www.why3.org/why3session.dtd">
4 <why3session shape_version="6">
5 <prover id="0" name="Alt-Ergo" version="2.5.4" alternative="FPA" timelimit="5" steplimit="0" memlimit="2000"/>
6 <file format="whyml" proved="true">
7 <path name=".."/><path name="exp_log.mlw"/>
8 <theory name="ExpLogSingle" proved="true">
9 <goal name="example1'vc" expl="VC for example1" proved="true">
10 <transf name="split_vc" proved="true" >
11 <goal name="example1'vc.0" expl="precondition" proved="true">
12 <proof prover="0"><result status="valid" time="0.099935" steps="869"/></proof>
14 <goal name="example1'vc.1" expl="precondition" proved="true">
15 <proof prover="0"><result status="valid" time="0.133523" steps="1138"/></proof>
17 <goal name="example1'vc.2" expl="postcondition" proved="true">
18 <transf name="assert" proved="true" arg1="let t3 = log (exp (to_real y)) in
19 let t4 = log (exp (to_real x)) in
21 ((1.0 +. eps) +. log_error)
22 *. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)) +. log_cst_error)
24 abs (to_real result -. (t4 +. t3))
25 <=. ((((log_error +. log_error) +. eps) *. (abs t4 +. abs t3)) +. (t5 +. t5))">
26 <goal name="example1'vc.2.0" expl="asserted formula" proved="true">
27 <transf name="assert" proved="true" arg1="abs (to_real result -. (log (exp (to_real x)) +. log (exp (to_real y))))
28 <=. ((((log_error +. log_error) +. eps)
29 *. (abs (log (exp (to_real x))) +. abs (log (exp (to_real y)))))
30 +. ((((1.0 +. eps) +. log_error)
31 *. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error))
33 +. (((1.0 +. eps) +. log_error)
34 *. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error))
35 +. log_cst_error))))">
36 <goal name="example1'vc.2.0.0" expl="asserted formula" proved="true">
37 <transf name="apply" proved="true" arg1="uadd_single_error_propagation" arg2="with" arg3="log_approx (exp_approx x),log_approx (exp_approx y)">
38 <goal name="example1'vc.2.0.0.0" expl="apply premises" proved="true">
39 <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx x)) -. log (exp (to_real x)))
40 <=. ((abs (log (exp (to_real x))) *. log_error)
41 +. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)) +. log_cst_error))">
42 <goal name="example1'vc.2.0.0.0.0" expl="asserted formula" proved="true">
43 <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx x)) -. log (exp (to_real x)))
44 <=. ((log_error *. abs (log (exp (to_real x))))
47 -. (((exp_error *. exp (to_real x)) +. 0.0) /. exp (to_real x))))
48 *. (1.0 +. log_error))
50 <goal name="example1'vc.2.0.0.0.0.0" expl="asserted formula" proved="true">
51 <transf name="apply" proved="true" arg1="log_single_error_propagation" arg2="with" arg3="exp_approx x">
52 <goal name="example1'vc.2.0.0.0.0.0.0" expl="apply premises" proved="true">
53 <proof prover="0"><result status="valid" time="0.059324" steps="119"/></proof>
55 <goal name="example1'vc.2.0.0.0.0.0.1" expl="apply premises" proved="true">
56 <proof prover="0"><result status="valid" time="0.066218" steps="139"/></proof>
58 <goal name="example1'vc.2.0.0.0.0.0.2" expl="apply premises" proved="true">
59 <proof prover="0"><result status="valid" time="0.155626" steps="1123"/></proof>
61 <goal name="example1'vc.2.0.0.0.0.0.3" expl="apply premises" proved="true">
62 <proof prover="0"><result status="valid" time="0.292973" steps="1211"/></proof>
64 <goal name="example1'vc.2.0.0.0.0.0.4" expl="apply premises" proved="true">
65 <proof prover="0"><result status="valid" time="0.055604" steps="113"/></proof>
69 <goal name="example1'vc.2.0.0.0.0.1" expl="asserted formula" proved="true">
70 <proof prover="0"><result status="valid" time="1.919679" steps="11510"/></proof>
74 <goal name="example1'vc.2.0.0.0.1" expl="apply premises" proved="true">
75 <proof prover="0"><result status="valid" time="0.082547" steps="147"/></proof>
79 <goal name="example1'vc.2.0.0.1" expl="apply premises" proved="true">
80 <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx y)) -. log (exp (to_real y)))
81 <=. ((abs (log (exp (to_real y))) *. log_error)
82 +. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)) +. log_cst_error))">
83 <goal name="example1'vc.2.0.0.1.0" expl="asserted formula" proved="true">
84 <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx y)) -. log (exp (to_real y)))
85 <=. ((log_error *. abs (log (exp (to_real y))))
88 -. (((exp_error *. exp (to_real y)) +. 0.0) /. exp (to_real y))))
89 *. (1.0 +. log_error))
91 <goal name="example1'vc.2.0.0.1.0.0" expl="asserted formula" proved="true">
92 <transf name="apply" proved="true" arg1="log_single_error_propagation" arg2="with" arg3="exp_approx y">
93 <goal name="example1'vc.2.0.0.1.0.0.0" expl="apply premises" proved="true">
94 <proof prover="0"><result status="valid" time="0.066752" steps="119"/></proof>
96 <goal name="example1'vc.2.0.0.1.0.0.1" expl="apply premises" proved="true">
97 <proof prover="0"><result status="valid" time="0.065825" steps="139"/></proof>
99 <goal name="example1'vc.2.0.0.1.0.0.2" expl="apply premises" proved="true">
100 <proof prover="0"><result status="valid" time="0.202765" steps="1119"/></proof>
102 <goal name="example1'vc.2.0.0.1.0.0.3" expl="apply premises" proved="true">
103 <proof prover="0"><result status="valid" time="0.216068" steps="1165"/></proof>
105 <goal name="example1'vc.2.0.0.1.0.0.4" expl="apply premises" proved="true">
106 <proof prover="0"><result status="valid" time="0.090507" steps="113"/></proof>
110 <goal name="example1'vc.2.0.0.1.0.1" expl="asserted formula" proved="true">
111 <proof prover="0"><result status="valid" time="2.109322" steps="11407"/></proof>
115 <goal name="example1'vc.2.0.0.1.1" expl="apply premises" proved="true">
116 <proof prover="0"><result status="valid" time="0.052866" steps="147"/></proof>
120 <goal name="example1'vc.2.0.0.2" expl="apply premises" proved="true">
121 <proof prover="0"><result status="valid" time="0.062021" steps="121"/></proof>
123 <goal name="example1'vc.2.0.0.3" expl="apply premises" proved="true">
124 <proof prover="0"><result status="valid" time="0.047311" steps="121"/></proof>
126 <goal name="example1'vc.2.0.0.4" expl="apply premises" proved="true">
127 <proof prover="0"><result status="valid" time="0.050301" steps="113"/></proof>
129 <goal name="example1'vc.2.0.0.5" expl="apply premises" proved="true">
130 <proof prover="0"><result status="valid" time="0.044891" steps="113"/></proof>
132 <goal name="example1'vc.2.0.0.6" expl="apply premises" proved="true">
133 <proof prover="0"><result status="valid" time="0.135051" steps="773"/></proof>
135 <goal name="example1'vc.2.0.0.7" expl="apply premises" proved="true">
136 <proof prover="0"><result status="valid" time="0.147596" steps="773"/></proof>
138 <goal name="example1'vc.2.0.0.8" expl="apply premises" proved="true">
139 <proof prover="0"><result status="valid" time="0.053723" steps="113"/></proof>
143 <goal name="example1'vc.2.0.1" expl="asserted formula" proved="true">
144 <proof prover="0"><result status="valid" time="0.094205" steps="314"/></proof>
148 <goal name="example1'vc.2.1" expl="postcondition" proved="true">
149 <proof prover="0"><result status="valid" time="0.108349" steps="314"/></proof>
155 <goal name="example2'vc" expl="VC for example2" proved="true">
156 <transf name="split_vc" proved="true" >
157 <goal name="example2'vc.0" expl="precondition" proved="true">
158 <proof prover="0"><result status="valid" time="0.190269" steps="1639"/></proof>
160 <goal name="example2'vc.1" expl="postcondition" proved="true">
161 <transf name="assert" proved="true" arg1="let t = log (exp (to_real x) +. exp (to_real y)) in
162 abs (to_real result -. t)
163 <=. ((abs t *. log_error)
164 +. (((-. log (1.0 -. ((exp_error +. exp_error) +. eps)))
165 *. (1.0 +. log_error))
167 <goal name="example2'vc.1.0" expl="asserted formula" proved="true">
168 <transf name="assert" proved="true" arg1="abs (to_real result -. log (exp (to_real x) +. exp (to_real y)))
169 <=. ((abs (log (exp (to_real x) +. exp (to_real y))) *. log_error)
170 +. (((-. log (1.0 -. ((exp_error +. exp_error) +. eps)))
171 *. (1.0 +. log_error))
173 <goal name="example2'vc.1.0.0" expl="asserted formula" proved="true">
174 <transf name="assert" proved="true" arg1="abs (to_real result -. log (exp (to_real x) +. exp (to_real y)))
175 <=. ((log_error *. abs (log (exp (to_real x) +. exp (to_real y))))
178 -. (((((exp_error +. exp_error) +. eps)
179 *. (exp (to_real x) +. exp (to_real y)))
181 /. (exp (to_real x) +. exp (to_real y)))))
182 *. (1.0 +. log_error))
184 <goal name="example2'vc.1.0.0.0" expl="asserted formula" proved="true">
185 <transf name="apply" proved="true" arg1="log_single_error_propagation" arg2="with" arg3="exp_approx x ++. exp_approx y">
186 <goal name="example2'vc.1.0.0.0.0" expl="apply premises" proved="true">
187 <transf name="assert" proved="true" arg1="abs
188 (to_real (exp_approx x ++. exp_approx y)
189 -. (exp (to_real x) +. exp (to_real y)))
190 <=. ((((exp_error +. exp_error) +. eps)
191 *. (exp (to_real x) +. exp (to_real y)))
192 +. ((((1.0 +. eps) +. exp_error) *. 0.0)
193 +. (((1.0 +. eps) +. exp_error) *. 0.0)))">
194 <goal name="example2'vc.1.0.0.0.0.0" expl="asserted formula" proved="true">
195 <transf name="apply" proved="true" arg1="uadd_single_error_propagation" arg2="with" arg3="exp_approx x,exp_approx y">
196 <goal name="example2'vc.1.0.0.0.0.0.0" expl="apply premises" proved="true">
197 <proof prover="0"><result status="valid" time="0.058112" steps="114"/></proof>
199 <goal name="example2'vc.1.0.0.0.0.0.1" expl="apply premises" proved="true">
200 <proof prover="0"><result status="valid" time="0.062115" steps="114"/></proof>
202 <goal name="example2'vc.1.0.0.0.0.0.2" expl="apply premises" proved="true">
203 <proof prover="0"><result status="valid" time="0.151173" steps="944"/></proof>
205 <goal name="example2'vc.1.0.0.0.0.0.3" expl="apply premises" proved="true">
206 <proof prover="0"><result status="valid" time="0.195041" steps="943"/></proof>
208 <goal name="example2'vc.1.0.0.0.0.0.4" expl="apply premises" proved="true">
209 <proof prover="0"><result status="valid" time="0.052021" steps="106"/></proof>
211 <goal name="example2'vc.1.0.0.0.0.0.5" expl="apply premises" proved="true">
212 <proof prover="0"><result status="valid" time="0.066532" steps="106"/></proof>
214 <goal name="example2'vc.1.0.0.0.0.0.6" expl="apply premises" proved="true">
215 <proof prover="0"><result status="valid" time="0.061686" steps="106"/></proof>
217 <goal name="example2'vc.1.0.0.0.0.0.7" expl="apply premises" proved="true">
218 <proof prover="0"><result status="valid" time="0.047719" steps="106"/></proof>
220 <goal name="example2'vc.1.0.0.0.0.0.8" expl="apply premises" proved="true">
221 <proof prover="0"><result status="valid" time="0.050702" steps="106"/></proof>
225 <goal name="example2'vc.1.0.0.0.0.1" expl="apply premises" proved="true">
226 <proof prover="0"><result status="valid" time="0.057204" steps="119"/></proof>
230 <goal name="example2'vc.1.0.0.0.1" expl="apply premises" proved="true">
231 <proof prover="0"><result status="valid" time="0.053816" steps="132"/></proof>
233 <goal name="example2'vc.1.0.0.0.2" expl="apply premises" proved="true">
234 <proof prover="0"><result status="valid" time="0.116471" steps="727"/></proof>
236 <goal name="example2'vc.1.0.0.0.3" expl="apply premises" proved="true">
237 <proof prover="0"><result status="valid" time="0.205825" steps="1152"/></proof>
239 <goal name="example2'vc.1.0.0.0.4" expl="apply premises" proved="true">
240 <proof prover="0"><result status="valid" time="0.075268" steps="106"/></proof>
244 <goal name="example2'vc.1.0.0.1" expl="asserted formula" proved="true">
245 <proof prover="0"><result status="valid" time="1.950455" steps="12497"/></proof>
249 <goal name="example2'vc.1.0.1" expl="asserted formula" proved="true">
250 <proof prover="0"><result status="valid" time="0.066275" steps="164"/></proof>
254 <goal name="example2'vc.1.1" expl="postcondition" proved="true">
255 <proof prover="0"><result status="valid" time="0.084567" steps="170"/></proof>
261 <goal name="example3'vc" expl="VC for example3" proved="true">
262 <transf name="split_vc" proved="true" >
263 <goal name="example3'vc.0" expl="precondition" proved="true">
264 <proof prover="0"><result status="valid" time="0.086160" steps="588"/></proof>
266 <goal name="example3'vc.1" expl="postcondition" proved="true">
267 <transf name="assert" proved="true" arg1="let t = log2 (to_real x +. to_real y) in
268 abs (to_real result -. t)
269 <=. ((abs t *. log2_error) +. ((-. log2 (1.0 -. eps)) *. (1.0 +. log2_error)))">
270 <goal name="example3'vc.1.0" expl="asserted formula" proved="true">
271 <transf name="assert" proved="true" arg1="abs (to_real result -. log2 (to_real x +. to_real y))
272 <=. ((abs (log2 (to_real x +. to_real y)) *. log2_error)
273 +. ((-. log2 (1.0 -. eps)) *. (1.0 +. log2_error)))">
274 <goal name="example3'vc.1.0.0" expl="asserted formula" proved="true">
275 <transf name="assert" proved="true" arg1="abs (to_real result -. log2 (to_real x +. to_real y))
276 <=. ((log2_error *. abs (log2 (to_real x +. to_real y)))
279 -. (((eps *. abs (to_real x +. to_real y)) +. 0.0)
280 /. (to_real x +. to_real y))))
281 *. (1.0 +. log2_error))
283 <goal name="example3'vc.1.0.0.0" expl="asserted formula" proved="true">
284 <transf name="apply" proved="true" arg1="log2_single_error_propagation" arg2="with" arg3="x ++. y">
285 <goal name="example3'vc.1.0.0.0.0" expl="apply premises" proved="true">
286 <transf name="assert" proved="true" arg1="abs (to_real (x ++. y) -. (to_real x +. to_real y))
287 <=. (eps *. abs (to_real x +. to_real y))">
288 <goal name="example3'vc.1.0.0.0.0.0" expl="asserted formula" proved="true">
289 <proof prover="0"><result status="valid" time="0.138606" steps="773"/></proof>
291 <goal name="example3'vc.1.0.0.0.0.1" expl="apply premises" proved="true">
292 <proof prover="0"><result status="valid" time="0.060096" steps="123"/></proof>
296 <goal name="example3'vc.1.0.0.0.1" expl="apply premises" proved="true">
297 <proof prover="0"><result status="valid" time="0.065559" steps="127"/></proof>
299 <goal name="example3'vc.1.0.0.0.2" expl="apply premises" proved="true">
300 <proof prover="0"><result status="valid" time="0.068605" steps="106"/></proof>
302 <goal name="example3'vc.1.0.0.0.3" expl="apply premises" proved="true">
303 <proof prover="0"><result status="valid" time="0.060663" steps="105"/></proof>
305 <goal name="example3'vc.1.0.0.0.4" expl="apply premises" proved="true">
306 <proof prover="0"><result status="valid" time="0.049046" steps="101"/></proof>
310 <goal name="example3'vc.1.0.0.1" expl="asserted formula" proved="true">
311 <proof prover="0"><result status="valid" time="0.067871" steps="171"/></proof>
315 <goal name="example3'vc.1.0.1" expl="asserted formula" proved="true">
316 <proof prover="0"><result status="valid" time="0.061491" steps="157"/></proof>
320 <goal name="example3'vc.1.1" expl="postcondition" proved="true">
321 <proof prover="0"><result status="valid" time="0.048102" steps="150"/></proof>
327 <goal name="example4'vc" expl="VC for example4" proved="true">
328 <transf name="split_vc" proved="true" >
329 <goal name="example4'vc.0" expl="precondition" proved="true">
330 <proof prover="0"><result status="valid" time="0.087385" steps="588"/></proof>
332 <goal name="example4'vc.1" expl="postcondition" proved="true">
333 <transf name="assert" proved="true" arg1="let t = log10 (to_real x +. to_real y) in
334 abs (to_real result -. t)
335 <=. ((abs t *. log10_error)
336 +. ((-. log10 (1.0 -. eps)) *. (1.0 +. log10_error)))">
337 <goal name="example4'vc.1.0" expl="asserted formula" proved="true">
338 <transf name="assert" proved="true" arg1="abs (to_real result -. log10 (to_real x +. to_real y))
339 <=. ((abs (log10 (to_real x +. to_real y)) *. log10_error)
340 +. ((-. log10 (1.0 -. eps)) *. (1.0 +. log10_error)))">
341 <goal name="example4'vc.1.0.0" expl="asserted formula" proved="true">
342 <transf name="assert" proved="true" arg1="abs (to_real result -. log10 (to_real x +. to_real y))
343 <=. ((log10_error *. abs (log10 (to_real x +. to_real y)))
346 -. (((eps *. abs (to_real x +. to_real y)) +. 0.0)
347 /. (to_real x +. to_real y))))
348 *. (1.0 +. log10_error))
350 <goal name="example4'vc.1.0.0.0" expl="asserted formula" proved="true">
351 <transf name="apply" proved="true" arg1="log10_single_error_propagation" arg2="with" arg3="x ++. y">
352 <goal name="example4'vc.1.0.0.0.0" expl="apply premises" proved="true">
353 <transf name="assert" proved="true" arg1="abs (to_real (x ++. y) -. (to_real x +. to_real y))
354 <=. (eps *. abs (to_real x +. to_real y))">
355 <goal name="example4'vc.1.0.0.0.0.0" expl="asserted formula" proved="true">
356 <proof prover="0"><result status="valid" time="0.150117" steps="773"/></proof>
358 <goal name="example4'vc.1.0.0.0.0.1" expl="apply premises" proved="true">
359 <proof prover="0"><result status="valid" time="0.056298" steps="123"/></proof>
363 <goal name="example4'vc.1.0.0.0.1" expl="apply premises" proved="true">
364 <proof prover="0"><result status="valid" time="0.069932" steps="127"/></proof>
366 <goal name="example4'vc.1.0.0.0.2" expl="apply premises" proved="true">
367 <proof prover="0"><result status="valid" time="0.073209" steps="106"/></proof>
369 <goal name="example4'vc.1.0.0.0.3" expl="apply premises" proved="true">
370 <proof prover="0"><result status="valid" time="0.052681" steps="105"/></proof>
372 <goal name="example4'vc.1.0.0.0.4" expl="apply premises" proved="true">
373 <proof prover="0"><result status="valid" time="0.073549" steps="101"/></proof>
377 <goal name="example4'vc.1.0.0.1" expl="asserted formula" proved="true">
378 <proof prover="0"><result status="valid" time="0.069611" steps="171"/></proof>
382 <goal name="example4'vc.1.0.1" expl="asserted formula" proved="true">
383 <proof prover="0"><result status="valid" time="0.058950" steps="157"/></proof>
387 <goal name="example4'vc.1.1" expl="postcondition" proved="true">
388 <proof prover="0"><result status="valid" time="0.039820" steps="150"/></proof>
395 <theory name="ExpLogDouble" proved="true">
396 <goal name="example1'vc" expl="VC for example1" proved="true">
397 <transf name="split_vc" proved="true" >
398 <goal name="example1'vc.0" expl="precondition" proved="true">
399 <proof prover="0"><result status="valid" time="0.103938" steps="868"/></proof>
401 <goal name="example1'vc.1" expl="precondition" proved="true">
402 <proof prover="0"><result status="valid" time="0.136607" steps="1143"/></proof>
404 <goal name="example1'vc.2" expl="postcondition" proved="true">
405 <transf name="assert" proved="true" arg1="let t3 = log (exp (to_real y)) in
406 let t4 = log (exp (to_real x)) in
408 ((1.0 +. eps) +. log_error)
409 *. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)) +. log_cst_error)
411 abs (to_real result -. (t4 +. t3))
412 <=. ((((log_error +. log_error) +. eps) *. (abs t4 +. abs t3)) +. (t5 +. t5))">
413 <goal name="example1'vc.2.0" expl="asserted formula" proved="true">
414 <transf name="assert" proved="true" arg1="abs (to_real result -. (log (exp (to_real x)) +. log (exp (to_real y))))
415 <=. ((((log_error +. log_error) +. eps)
416 *. (abs (log (exp (to_real x))) +. abs (log (exp (to_real y)))))
417 +. ((((1.0 +. eps) +. log_error)
418 *. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error))
420 +. (((1.0 +. eps) +. log_error)
421 *. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error))
422 +. log_cst_error))))">
423 <goal name="example1'vc.2.0.0" expl="asserted formula" proved="true">
424 <transf name="apply" proved="true" arg1="uadd_double_error_propagation" arg2="with" arg3="log_approx (exp_approx x),log_approx (exp_approx y)">
425 <goal name="example1'vc.2.0.0.0" expl="apply premises" proved="true">
426 <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx x)) -. log (exp (to_real x)))
427 <=. ((abs (log (exp (to_real x))) *. log_error)
428 +. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)) +. log_cst_error))">
429 <goal name="example1'vc.2.0.0.0.0" expl="asserted formula" proved="true">
430 <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx x)) -. log (exp (to_real x)))
431 <=. ((log_error *. abs (log (exp (to_real x))))
434 -. (((exp_error *. exp (to_real x)) +. 0.0) /. exp (to_real x))))
435 *. (1.0 +. log_error))
437 <goal name="example1'vc.2.0.0.0.0.0" expl="asserted formula" proved="true">
438 <transf name="apply" proved="true" arg1="log_double_error_propagation" arg2="with" arg3="exp_approx x">
439 <goal name="example1'vc.2.0.0.0.0.0.0" expl="apply premises" proved="true">
440 <proof prover="0"><result status="valid" time="0.054264" steps="119"/></proof>
442 <goal name="example1'vc.2.0.0.0.0.0.1" expl="apply premises" proved="true">
443 <proof prover="0"><result status="valid" time="0.066207" steps="139"/></proof>
445 <goal name="example1'vc.2.0.0.0.0.0.2" expl="apply premises" proved="true">
446 <proof prover="0"><result status="valid" time="0.148397" steps="1125"/></proof>
448 <goal name="example1'vc.2.0.0.0.0.0.3" expl="apply premises" proved="true">
449 <proof prover="0"><result status="valid" time="0.237261" steps="1205"/></proof>
451 <goal name="example1'vc.2.0.0.0.0.0.4" expl="apply premises" proved="true">
452 <proof prover="0"><result status="valid" time="0.081769" steps="113"/></proof>
456 <goal name="example1'vc.2.0.0.0.0.1" expl="asserted formula" proved="true">
457 <proof prover="0"><result status="valid" time="1.903047" steps="11502"/></proof>
461 <goal name="example1'vc.2.0.0.0.1" expl="apply premises" proved="true">
462 <proof prover="0"><result status="valid" time="0.106152" steps="147"/></proof>
466 <goal name="example1'vc.2.0.0.1" expl="apply premises" proved="true">
467 <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx y)) -. log (exp (to_real y)))
468 <=. ((abs (log (exp (to_real y))) *. log_error)
469 +. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)) +. log_cst_error))">
470 <goal name="example1'vc.2.0.0.1.0" expl="asserted formula" proved="true">
471 <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx y)) -. log (exp (to_real y)))
472 <=. ((log_error *. abs (log (exp (to_real y))))
475 -. (((exp_error *. exp (to_real y)) +. 0.0) /. exp (to_real y))))
476 *. (1.0 +. log_error))
478 <goal name="example1'vc.2.0.0.1.0.0" expl="asserted formula" proved="true">
479 <transf name="apply" proved="true" arg1="log_double_error_propagation" arg2="with" arg3="exp_approx y">
480 <goal name="example1'vc.2.0.0.1.0.0.0" expl="apply premises" proved="true">
481 <proof prover="0"><result status="valid" time="0.064546" steps="119"/></proof>
483 <goal name="example1'vc.2.0.0.1.0.0.1" expl="apply premises" proved="true">
484 <proof prover="0"><result status="valid" time="0.083584" steps="139"/></proof>
486 <goal name="example1'vc.2.0.0.1.0.0.2" expl="apply premises" proved="true">
487 <proof prover="0"><result status="valid" time="0.170696" steps="1119"/></proof>
489 <goal name="example1'vc.2.0.0.1.0.0.3" expl="apply premises" proved="true">
490 <proof prover="0"><result status="valid" time="0.261198" steps="1171"/></proof>
492 <goal name="example1'vc.2.0.0.1.0.0.4" expl="apply premises" proved="true">
493 <proof prover="0"><result status="valid" time="0.094898" steps="113"/></proof>
497 <goal name="example1'vc.2.0.0.1.0.1" expl="asserted formula" proved="true">
498 <proof prover="0"><result status="valid" time="2.108976" steps="12636"/></proof>
502 <goal name="example1'vc.2.0.0.1.1" expl="apply premises" proved="true">
503 <proof prover="0"><result status="valid" time="0.089793" steps="147"/></proof>
507 <goal name="example1'vc.2.0.0.2" expl="apply premises" proved="true">
508 <proof prover="0"><result status="valid" time="0.075301" steps="121"/></proof>
510 <goal name="example1'vc.2.0.0.3" expl="apply premises" proved="true">
511 <proof prover="0"><result status="valid" time="0.054163" steps="121"/></proof>
513 <goal name="example1'vc.2.0.0.4" expl="apply premises" proved="true">
514 <proof prover="0"><result status="valid" time="0.075151" steps="113"/></proof>
516 <goal name="example1'vc.2.0.0.5" expl="apply premises" proved="true">
517 <proof prover="0"><result status="valid" time="0.074363" steps="113"/></proof>
519 <goal name="example1'vc.2.0.0.6" expl="apply premises" proved="true">
520 <proof prover="0"><result status="valid" time="0.156171" steps="774"/></proof>
522 <goal name="example1'vc.2.0.0.7" expl="apply premises" proved="true">
523 <proof prover="0"><result status="valid" time="0.145470" steps="774"/></proof>
525 <goal name="example1'vc.2.0.0.8" expl="apply premises" proved="true">
526 <proof prover="0"><result status="valid" time="0.052221" steps="113"/></proof>
530 <goal name="example1'vc.2.0.1" expl="asserted formula" proved="true">
531 <proof prover="0"><result status="valid" time="0.108821" steps="314"/></proof>
535 <goal name="example1'vc.2.1" expl="postcondition" proved="true">
536 <proof prover="0"><result status="valid" time="0.099029" steps="314"/></proof>
542 <goal name="example2'vc" expl="VC for example2" proved="true">
543 <transf name="split_vc" proved="true" >
544 <goal name="example2'vc.0" expl="precondition" proved="true">
545 <proof prover="0"><result status="valid" time="0.180146" steps="1625"/></proof>
547 <goal name="example2'vc.1" expl="postcondition" proved="true">
548 <transf name="assert" proved="true" arg1="let t = log (exp (to_real x) +. exp (to_real y)) in
549 abs (to_real result -. t)
550 <=. ((abs t *. log_error)
551 +. (((-. log (1.0 -. ((exp_error +. exp_error) +. eps)))
552 *. (1.0 +. log_error))
554 <goal name="example2'vc.1.0" expl="asserted formula" proved="true">
555 <transf name="assert" proved="true" arg1="abs (to_real result -. log (exp (to_real x) +. exp (to_real y)))
556 <=. ((abs (log (exp (to_real x) +. exp (to_real y))) *. log_error)
557 +. (((-. log (1.0 -. ((exp_error +. exp_error) +. eps)))
558 *. (1.0 +. log_error))
560 <goal name="example2'vc.1.0.0" expl="asserted formula" proved="true">
561 <transf name="assert" proved="true" arg1="abs (to_real result -. log (exp (to_real x) +. exp (to_real y)))
562 <=. ((log_error *. abs (log (exp (to_real x) +. exp (to_real y))))
565 -. (((((exp_error +. exp_error) +. eps)
566 *. (exp (to_real x) +. exp (to_real y)))
568 /. (exp (to_real x) +. exp (to_real y)))))
569 *. (1.0 +. log_error))
571 <goal name="example2'vc.1.0.0.0" expl="asserted formula" proved="true">
572 <transf name="apply" proved="true" arg1="log_double_error_propagation" arg2="with" arg3="exp_approx x ++. exp_approx y">
573 <goal name="example2'vc.1.0.0.0.0" expl="apply premises" proved="true">
574 <transf name="assert" proved="true" arg1="abs
575 (to_real (exp_approx x ++. exp_approx y)
576 -. (exp (to_real x) +. exp (to_real y)))
577 <=. ((((exp_error +. exp_error) +. eps)
578 *. (exp (to_real x) +. exp (to_real y)))
579 +. ((((1.0 +. eps) +. exp_error) *. 0.0)
580 +. (((1.0 +. eps) +. exp_error) *. 0.0)))">
581 <goal name="example2'vc.1.0.0.0.0.0" expl="asserted formula" proved="true">
582 <transf name="apply" proved="true" arg1="uadd_double_error_propagation" arg2="with" arg3="exp_approx x,exp_approx y">
583 <goal name="example2'vc.1.0.0.0.0.0.0" expl="apply premises" proved="true">
584 <proof prover="0"><result status="valid" time="0.047119" steps="114"/></proof>
586 <goal name="example2'vc.1.0.0.0.0.0.1" expl="apply premises" proved="true">
587 <proof prover="0"><result status="valid" time="0.049479" steps="114"/></proof>
589 <goal name="example2'vc.1.0.0.0.0.0.2" expl="apply premises" proved="true">
590 <proof prover="0"><result status="valid" time="0.178458" steps="942"/></proof>
592 <goal name="example2'vc.1.0.0.0.0.0.3" expl="apply premises" proved="true">
593 <proof prover="0"><result status="valid" time="0.179100" steps="943"/></proof>
595 <goal name="example2'vc.1.0.0.0.0.0.4" expl="apply premises" proved="true">
596 <proof prover="0"><result status="valid" time="0.054563" steps="106"/></proof>
598 <goal name="example2'vc.1.0.0.0.0.0.5" expl="apply premises" proved="true">
599 <proof prover="0"><result status="valid" time="0.092445" steps="106"/></proof>
601 <goal name="example2'vc.1.0.0.0.0.0.6" expl="apply premises" proved="true">
602 <proof prover="0"><result status="valid" time="0.059794" steps="106"/></proof>
604 <goal name="example2'vc.1.0.0.0.0.0.7" expl="apply premises" proved="true">
605 <proof prover="0"><result status="valid" time="0.083316" steps="106"/></proof>
607 <goal name="example2'vc.1.0.0.0.0.0.8" expl="apply premises" proved="true">
608 <proof prover="0"><result status="valid" time="0.076636" steps="106"/></proof>
612 <goal name="example2'vc.1.0.0.0.0.1" expl="apply premises" proved="true">
613 <proof prover="0"><result status="valid" time="0.069311" steps="119"/></proof>
617 <goal name="example2'vc.1.0.0.0.1" expl="apply premises" proved="true">
618 <proof prover="0"><result status="valid" time="0.068558" steps="132"/></proof>
620 <goal name="example2'vc.1.0.0.0.2" expl="apply premises" proved="true">
621 <proof prover="0"><result status="valid" time="0.131529" steps="727"/></proof>
623 <goal name="example2'vc.1.0.0.0.3" expl="apply premises" proved="true">
624 <proof prover="0"><result status="valid" time="0.249078" steps="1171"/></proof>
626 <goal name="example2'vc.1.0.0.0.4" expl="apply premises" proved="true">
627 <proof prover="0"><result status="valid" time="0.053611" steps="106"/></proof>
631 <goal name="example2'vc.1.0.0.1" expl="asserted formula" proved="true">
632 <proof prover="0"><result status="valid" time="1.835473" steps="12473"/></proof>
636 <goal name="example2'vc.1.0.1" expl="asserted formula" proved="true">
637 <proof prover="0"><result status="valid" time="0.063839" steps="164"/></proof>
641 <goal name="example2'vc.1.1" expl="postcondition" proved="true">
642 <proof prover="0"><result status="valid" time="0.075798" steps="170"/></proof>
648 <goal name="example3'vc" expl="VC for example3" proved="true">
649 <transf name="split_vc" proved="true" >
650 <goal name="example3'vc.0" expl="precondition" proved="true">
651 <proof prover="0"><result status="valid" time="0.080734" steps="588"/></proof>
653 <goal name="example3'vc.1" expl="postcondition" proved="true">
654 <transf name="assert" proved="true" arg1="let t = log2 (to_real x +. to_real y) in
655 abs (to_real result -. t)
656 <=. ((abs t *. log2_error) +. ((-. log2 (1.0 -. eps)) *. (1.0 +. log2_error)))">
657 <goal name="example3'vc.1.0" expl="asserted formula" proved="true">
658 <transf name="assert" proved="true" arg1="abs (to_real result -. log2 (to_real x +. to_real y))
659 <=. ((abs (log2 (to_real x +. to_real y)) *. log2_error)
660 +. ((-. log2 (1.0 -. eps)) *. (1.0 +. log2_error)))">
661 <goal name="example3'vc.1.0.0" expl="asserted formula" proved="true">
662 <transf name="assert" proved="true" arg1="abs (to_real result -. log2 (to_real x +. to_real y))
663 <=. ((log2_error *. abs (log2 (to_real x +. to_real y)))
666 -. (((eps *. abs (to_real x +. to_real y)) +. 0.0)
667 /. (to_real x +. to_real y))))
668 *. (1.0 +. log2_error))
670 <goal name="example3'vc.1.0.0.0" expl="asserted formula" proved="true">
671 <transf name="apply" proved="true" arg1="log2_double_error_propagation" arg2="with" arg3="x ++. y">
672 <goal name="example3'vc.1.0.0.0.0" expl="apply premises" proved="true">
673 <transf name="assert" proved="true" arg1="abs (to_real (x ++. y) -. (to_real x +. to_real y))
674 <=. (eps *. abs (to_real x +. to_real y))">
675 <goal name="example3'vc.1.0.0.0.0.0" expl="asserted formula" proved="true">
676 <proof prover="0"><result status="valid" time="0.153510" steps="773"/></proof>
678 <goal name="example3'vc.1.0.0.0.0.1" expl="apply premises" proved="true">
679 <proof prover="0"><result status="valid" time="0.060039" steps="123"/></proof>
683 <goal name="example3'vc.1.0.0.0.1" expl="apply premises" proved="true">
684 <proof prover="0"><result status="valid" time="0.057203" steps="127"/></proof>
686 <goal name="example3'vc.1.0.0.0.2" expl="apply premises" proved="true">
687 <proof prover="0"><result status="valid" time="0.056627" steps="106"/></proof>
689 <goal name="example3'vc.1.0.0.0.3" expl="apply premises" proved="true">
690 <proof prover="0"><result status="valid" time="0.056319" steps="105"/></proof>
692 <goal name="example3'vc.1.0.0.0.4" expl="apply premises" proved="true">
693 <proof prover="0"><result status="valid" time="0.059745" steps="101"/></proof>
697 <goal name="example3'vc.1.0.0.1" expl="asserted formula" proved="true">
698 <proof prover="0"><result status="valid" time="0.074560" steps="171"/></proof>
702 <goal name="example3'vc.1.0.1" expl="asserted formula" proved="true">
703 <proof prover="0"><result status="valid" time="0.072442" steps="157"/></proof>
707 <goal name="example3'vc.1.1" expl="postcondition" proved="true">
708 <proof prover="0"><result status="valid" time="0.067725" steps="150"/></proof>
714 <goal name="example4'vc" expl="VC for example4" proved="true">
715 <transf name="split_vc" proved="true" >
716 <goal name="example4'vc.0" expl="precondition" proved="true">
717 <proof prover="0"><result status="valid" time="0.099433" steps="588"/></proof>
719 <goal name="example4'vc.1" expl="postcondition" proved="true">
720 <transf name="assert" proved="true" arg1="let t = log10 (to_real x +. to_real y) in
721 abs (to_real result -. t)
722 <=. ((abs t *. log10_error)
723 +. ((-. log10 (1.0 -. eps)) *. (1.0 +. log10_error)))">
724 <goal name="example4'vc.1.0" expl="asserted formula" proved="true">
725 <transf name="assert" proved="true" arg1="abs (to_real result -. log10 (to_real x +. to_real y))
726 <=. ((abs (log10 (to_real x +. to_real y)) *. log10_error)
727 +. ((-. log10 (1.0 -. eps)) *. (1.0 +. log10_error)))">
728 <goal name="example4'vc.1.0.0" expl="asserted formula" proved="true">
729 <transf name="assert" proved="true" arg1="abs (to_real result -. log10 (to_real x +. to_real y))
730 <=. ((log10_error *. abs (log10 (to_real x +. to_real y)))
733 -. (((eps *. abs (to_real x +. to_real y)) +. 0.0)
734 /. (to_real x +. to_real y))))
735 *. (1.0 +. log10_error))
737 <goal name="example4'vc.1.0.0.0" expl="asserted formula" proved="true">
738 <transf name="apply" proved="true" arg1="log10_double_error_propagation" arg2="with" arg3="x ++. y">
739 <goal name="example4'vc.1.0.0.0.0" expl="apply premises" proved="true">
740 <transf name="assert" proved="true" arg1="abs (to_real (x ++. y) -. (to_real x +. to_real y))
741 <=. (eps *. abs (to_real x +. to_real y))">
742 <goal name="example4'vc.1.0.0.0.0.0" expl="asserted formula" proved="true">
743 <proof prover="0"><result status="valid" time="0.151494" steps="773"/></proof>
745 <goal name="example4'vc.1.0.0.0.0.1" expl="apply premises" proved="true">
746 <proof prover="0"><result status="valid" time="0.056304" steps="123"/></proof>
750 <goal name="example4'vc.1.0.0.0.1" expl="apply premises" proved="true">
751 <proof prover="0"><result status="valid" time="0.053633" steps="127"/></proof>
753 <goal name="example4'vc.1.0.0.0.2" expl="apply premises" proved="true">
754 <proof prover="0"><result status="valid" time="0.067975" steps="106"/></proof>
756 <goal name="example4'vc.1.0.0.0.3" expl="apply premises" proved="true">
757 <proof prover="0"><result status="valid" time="0.054963" steps="105"/></proof>
759 <goal name="example4'vc.1.0.0.0.4" expl="apply premises" proved="true">
760 <proof prover="0"><result status="valid" time="0.056240" steps="101"/></proof>
764 <goal name="example4'vc.1.0.0.1" expl="asserted formula" proved="true">
765 <proof prover="0"><result status="valid" time="0.059401" steps="171"/></proof>
769 <goal name="example4'vc.1.0.1" expl="asserted formula" proved="true">
770 <proof prover="0"><result status="valid" time="0.064877" steps="157"/></proof>
774 <goal name="example4'vc.1.1" expl="postcondition" proved="true">
775 <proof prover="0"><result status="valid" time="0.053458" steps="150"/></proof>