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 <prover id="1" name="Alt-Ergo" version="2.5.4" timelimit="5" steplimit="0" memlimit="2000"/>
7 <file format="whyml" proved="true">
8 <path name=".."/><path name="add_sub_mul.mlw"/>
9 <theory name="AddSubMulSingle" proved="true">
10 <goal name="example1'vc" expl="VC for example1" proved="true">
11 <transf name="split_vc" proved="true" >
12 <goal name="example1'vc.0" expl="postcondition" proved="true">
13 <transf name="assert" proved="true" arg1="let t = to_real d in
16 let t3 = 0.0 *. 0.0 in
17 let t4 = eps +. eps in
18 let t5 = 1.0 +. eps in
19 let t6 = to_real a +. to_real b in
20 let t7 = abs t6 +. abs t1 in
21 abs (to_real result -. ((t6 -. t1) *. t))
22 <=. (((eps +. (((t4 +. 0.0) +. (t4 *. 0.0)) *. t5)) *. (t7 *. t2))
23 +. ((((((0.0 +. (0.0 *. t4)) *. t7) +. ((0.0 +. t3) *. t2)) +. t3) *. t5)
25 <goal name="example1'vc.0.0" expl="asserted formula" proved="true">
26 <transf name="assert" proved="true" arg1="abs
27 (to_real result -. (((to_real a +. to_real b) -. to_real c) *. to_real d))
29 +. ((((eps +. eps) +. 0.0) +. ((eps +. eps) *. 0.0)) *. (1.0 +. eps)))
30 *. ((abs (to_real a +. to_real b) +. abs (to_real c))
32 +. ((((((0.0 +. (0.0 *. (eps +. eps)))
33 *. (abs (to_real a +. to_real b) +. abs (to_real c)))
34 +. ((0.0 +. (0.0 *. 0.0)) *. abs (to_real d)))
38 <goal name="example1'vc.0.0.0" expl="asserted formula" proved="true">
39 <transf name="apply" proved="true" arg1="umul_single_error_propagation" arg2="with" arg3="(a ++. b) --. c,d">
40 <goal name="example1'vc.0.0.0.0" expl="apply premises" proved="true">
41 <transf name="assert" proved="true" arg1="abs (to_real ((a ++. b) --. c) -. ((to_real a +. to_real b) -. to_real c))
42 <=. ((((eps +. 0.0) +. eps)
43 *. (abs (to_real a +. to_real b) +. abs (to_real c)))
44 +. ((((1.0 +. eps) +. 0.0) *. 0.0) +. (((1.0 +. eps) +. eps) *. 0.0)))">
45 <goal name="example1'vc.0.0.0.0.0" expl="asserted formula" proved="true">
46 <transf name="apply" proved="true" arg1="usub_single_error_propagation" arg2="with" arg3="a ++. b,c">
47 <goal name="example1'vc.0.0.0.0.0.0" expl="apply premises" proved="true">
48 <transf name="assert" proved="true" arg1="abs (to_real (a ++. b) -. (to_real a +. to_real b))
49 <=. (eps *. abs (to_real a +. to_real b))">
50 <goal name="example1'vc.0.0.0.0.0.0.0" expl="asserted formula" proved="true">
51 <proof prover="0"><result status="valid" time="0.096582" steps="731"/></proof>
53 <goal name="example1'vc.0.0.0.0.0.0.1" expl="apply premises" proved="true">
54 <proof prover="0"><result status="valid" time="0.051130" steps="109"/></proof>
58 <goal name="example1'vc.0.0.0.0.0.1" expl="apply premises" proved="true">
59 <proof prover="0"><result status="valid" time="0.044124" steps="82"/></proof>
61 <goal name="example1'vc.0.0.0.0.0.2" expl="apply premises" proved="true">
62 <proof prover="0"><result status="valid" time="0.068521" steps="86"/></proof>
64 <goal name="example1'vc.0.0.0.0.0.3" expl="apply premises" proved="true">
65 <proof prover="0"><result status="valid" time="0.035291" steps="86"/></proof>
67 <goal name="example1'vc.0.0.0.0.0.4" expl="apply premises" proved="true">
68 <proof prover="0"><result status="valid" time="0.063135" steps="78"/></proof>
70 <goal name="example1'vc.0.0.0.0.0.5" expl="apply premises" proved="true">
71 <proof prover="0"><result status="valid" time="0.031234" steps="78"/></proof>
73 <goal name="example1'vc.0.0.0.0.0.6" expl="apply premises" proved="true">
74 <proof prover="0"><result status="valid" time="0.038153" steps="78"/></proof>
76 <goal name="example1'vc.0.0.0.0.0.7" expl="apply premises" proved="true">
77 <proof prover="0"><result status="valid" time="0.033268" steps="78"/></proof>
79 <goal name="example1'vc.0.0.0.0.0.8" expl="apply premises" proved="true">
80 <proof prover="0"><result status="valid" time="0.057554" steps="78"/></proof>
84 <goal name="example1'vc.0.0.0.0.1" expl="apply premises" proved="true">
85 <proof prover="0"><result status="valid" time="0.061509" steps="147"/></proof>
89 <goal name="example1'vc.0.0.0.1" expl="apply premises" proved="true">
90 <proof prover="0"><result status="valid" time="0.043852" steps="82"/></proof>
92 <goal name="example1'vc.0.0.0.2" expl="apply premises" proved="true">
93 <proof prover="0"><result status="valid" time="0.062369" steps="112"/></proof>
95 <goal name="example1'vc.0.0.0.3" expl="apply premises" proved="true">
96 <proof prover="0"><result status="valid" time="0.049050" steps="86"/></proof>
98 <goal name="example1'vc.0.0.0.4" expl="apply premises" proved="true">
99 <proof prover="0"><result status="valid" time="0.066733" steps="78"/></proof>
101 <goal name="example1'vc.0.0.0.5" expl="apply premises" proved="true">
102 <proof prover="0"><result status="valid" time="0.048525" steps="78"/></proof>
104 <goal name="example1'vc.0.0.0.6" expl="apply premises" proved="true">
105 <proof prover="0"><result status="valid" time="0.053754" steps="78"/></proof>
107 <goal name="example1'vc.0.0.0.7" expl="apply premises" proved="true">
108 <proof prover="0"><result status="valid" time="0.065989" steps="78"/></proof>
110 <goal name="example1'vc.0.0.0.8" expl="apply premises" proved="true">
111 <proof prover="0"><result status="valid" time="0.043867" steps="78"/></proof>
115 <goal name="example1'vc.0.0.1" expl="asserted formula" proved="true">
116 <proof prover="0"><result status="valid" time="0.186345" steps="618"/></proof>
120 <goal name="example1'vc.0.1" expl="postcondition" proved="true">
121 <proof prover="0"><result status="valid" time="0.394209" steps="1342"/></proof>
127 <goal name="determinant'vc" expl="VC for determinant" proved="true">
128 <transf name="split_vc" proved="true" >
129 <goal name="determinant'vc.0" expl="postcondition" proved="true">
130 <transf name="assert" proved="true" arg1="let t = to_real b *. to_real c in
131 let t1 = to_real a *. to_real d in
132 let t2 = ((1.0 +. eps) +. eps) *. eta in
133 abs (to_real result -. (t1 -. t))
134 <=. ((((eps +. eps) +. eps) *. (abs t1 +. abs t)) +. (t2 +. t2))">
135 <goal name="determinant'vc.0.0" expl="asserted formula" proved="true">
136 <transf name="assert" proved="true" arg1="abs
137 (to_real result -. ((to_real a *. to_real d) -. (to_real b *. to_real c)))
138 <=. ((((eps +. eps) +. eps)
139 *. (abs (to_real a *. to_real d) +. abs (to_real b *. to_real c)))
140 +. ((((1.0 +. eps) +. eps) *. eta) +. (((1.0 +. eps) +. eps) *. eta)))">
141 <goal name="determinant'vc.0.0.0" expl="asserted formula" proved="true">
142 <transf name="apply" proved="true" arg1="usub_single_error_propagation" arg2="with" arg3="a **. d,b **. c">
143 <goal name="determinant'vc.0.0.0.0" expl="apply premises" proved="true">
144 <transf name="assert" proved="true" arg1="abs (to_real (a **. d) -. (to_real a *. to_real d))
145 <=. ((eps *. abs (to_real a *. to_real d)) +. eta)">
146 <goal name="determinant'vc.0.0.0.0.0" expl="asserted formula" proved="true">
147 <proof prover="0"><result status="valid" time="0.125800" steps="1030"/></proof>
149 <goal name="determinant'vc.0.0.0.0.1" expl="apply premises" proved="true">
150 <proof prover="0"><result status="valid" time="0.051756" steps="136"/></proof>
154 <goal name="determinant'vc.0.0.0.1" expl="apply premises" proved="true">
155 <transf name="assert" proved="true" arg1="abs (to_real (b **. c) -. (to_real b *. to_real c))
156 <=. ((eps *. abs (to_real b *. to_real c)) +. eta)">
157 <goal name="determinant'vc.0.0.0.1.0" expl="asserted formula" proved="true">
158 <proof prover="0"><result status="valid" time="0.111470" steps="1030"/></proof>
160 <goal name="determinant'vc.0.0.0.1.1" expl="apply premises" proved="true">
161 <proof prover="0"><result status="valid" time="0.078291" steps="136"/></proof>
165 <goal name="determinant'vc.0.0.0.2" expl="apply premises" proved="true">
166 <proof prover="0"><result status="valid" time="0.043207" steps="95"/></proof>
168 <goal name="determinant'vc.0.0.0.3" expl="apply premises" proved="true">
169 <proof prover="0"><result status="valid" time="0.044141" steps="95"/></proof>
171 <goal name="determinant'vc.0.0.0.4" expl="apply premises" proved="true">
172 <proof prover="0"><result status="valid" time="0.067001" steps="78"/></proof>
174 <goal name="determinant'vc.0.0.0.5" expl="apply premises" proved="true">
175 <proof prover="0"><result status="valid" time="0.068716" steps="78"/></proof>
177 <goal name="determinant'vc.0.0.0.6" expl="apply premises" proved="true">
178 <proof prover="0"><result status="valid" time="0.062778" steps="78"/></proof>
180 <goal name="determinant'vc.0.0.0.7" expl="apply premises" proved="true">
181 <proof prover="0"><result status="valid" time="0.048144" steps="78"/></proof>
183 <goal name="determinant'vc.0.0.0.8" expl="apply premises" proved="true">
184 <proof prover="0"><result status="valid" time="0.056372" steps="78"/></proof>
188 <goal name="determinant'vc.0.0.1" expl="asserted formula" proved="true">
189 <proof prover="0"><result status="valid" time="0.067481" steps="367"/></proof>
193 <goal name="determinant'vc.0.1" expl="postcondition" proved="true">
194 <proof prover="0"><result status="valid" time="0.057612" steps="385"/></proof>
200 <goal name="square_norm'vc" expl="VC for square_norm" proved="true">
201 <transf name="split_vc" proved="true" >
202 <goal name="square_norm'vc.0" expl="postcondition" proved="true">
203 <transf name="assert" proved="true" arg1="let t = to_real c in
204 let t1 = to_real b in
205 let t2 = to_real a in
206 let t3 = 1.0 +. eps in
210 let t7 = (eps +. eps) +. eps in
211 let t8 = t3 +. eps in
212 let t9 = t8 *. eta in
213 abs (to_real result -. ((t6 +. t5) +. t4))
214 <=. ((((t7 +. eps) +. eps) *. ((abs t6 +. abs t5) +. abs t4))
215 +. ((t8 *. (t9 +. t9)) +. ((t3 +. t7) *. eta)))">
216 <goal name="square_norm'vc.0.0" expl="asserted formula" proved="true">
217 <transf name="assert" proved="true" arg1="abs
219 -. (((to_real a *. to_real a) +. (to_real b *. to_real b))
220 +. (to_real c *. to_real c)))
221 <=. ((((((eps +. eps) +. eps) +. eps) +. eps)
222 *. ((abs (to_real a *. to_real a) +. abs (to_real b *. to_real b))
223 +. abs (to_real c *. to_real c)))
224 +. ((((1.0 +. eps) +. eps)
225 *. ((((1.0 +. eps) +. eps) *. eta)
226 +. (((1.0 +. eps) +. eps) *. eta)))
227 +. (((1.0 +. eps) +. ((eps +. eps) +. eps)) *. eta)))">
228 <goal name="square_norm'vc.0.0.0" expl="asserted formula" proved="true">
229 <transf name="apply" proved="true" arg1="uadd_single_error_propagation" arg2="with" arg3="(a **. a) ++. (b **. b),c **. c">
230 <goal name="square_norm'vc.0.0.0.0" expl="apply premises" proved="true">
231 <transf name="assert" proved="true" arg1="abs
232 (to_real ((a **. a) ++. (b **. b))
233 -. ((to_real a *. to_real a) +. (to_real b *. to_real b)))
234 <=. ((((eps +. eps) +. eps)
235 *. (abs (to_real a *. to_real a) +. abs (to_real b *. to_real b)))
236 +. ((((1.0 +. eps) +. eps) *. eta) +. (((1.0 +. eps) +. eps) *. eta)))">
237 <goal name="square_norm'vc.0.0.0.0.0" expl="asserted formula" proved="true">
238 <transf name="apply" proved="true" arg1="uadd_single_error_propagation" arg2="with" arg3="a **. a,b **. b">
239 <goal name="square_norm'vc.0.0.0.0.0.0" expl="apply premises" proved="true">
240 <transf name="assert" proved="true" arg1="abs (to_real (a **. a) -. (to_real a *. to_real a))
241 <=. ((eps *. abs (to_real a *. to_real a)) +. eta)">
242 <goal name="square_norm'vc.0.0.0.0.0.0.0" expl="asserted formula" proved="true">
243 <proof prover="0"><result status="valid" time="0.155207" steps="1108"/></proof>
245 <goal name="square_norm'vc.0.0.0.0.0.0.1" expl="apply premises" proved="true">
246 <proof prover="0"><result status="valid" time="0.046347" steps="119"/></proof>
250 <goal name="square_norm'vc.0.0.0.0.0.1" expl="apply premises" proved="true">
251 <transf name="assert" proved="true" arg1="abs (to_real (b **. b) -. (to_real b *. to_real b))
252 <=. ((eps *. abs (to_real b *. to_real b)) +. eta)">
253 <goal name="square_norm'vc.0.0.0.0.0.1.0" expl="asserted formula" proved="true">
254 <proof prover="0"><result status="valid" time="0.164855" steps="1108"/></proof>
256 <goal name="square_norm'vc.0.0.0.0.0.1.1" expl="apply premises" proved="true">
257 <proof prover="0"><result status="valid" time="0.066630" steps="119"/></proof>
261 <goal name="square_norm'vc.0.0.0.0.0.2" expl="apply premises" proved="true">
262 <proof prover="0"><result status="valid" time="0.064438" steps="89"/></proof>
264 <goal name="square_norm'vc.0.0.0.0.0.3" expl="apply premises" proved="true">
265 <proof prover="0"><result status="valid" time="0.056631" steps="89"/></proof>
267 <goal name="square_norm'vc.0.0.0.0.0.4" expl="apply premises" proved="true">
268 <proof prover="0"><result status="valid" time="0.050232" steps="78"/></proof>
270 <goal name="square_norm'vc.0.0.0.0.0.5" expl="apply premises" proved="true">
271 <proof prover="0"><result status="valid" time="0.059252" steps="78"/></proof>
273 <goal name="square_norm'vc.0.0.0.0.0.6" expl="apply premises" proved="true">
274 <proof prover="0"><result status="valid" time="0.049400" steps="78"/></proof>
276 <goal name="square_norm'vc.0.0.0.0.0.7" expl="apply premises" proved="true">
277 <proof prover="0"><result status="valid" time="0.044623" steps="78"/></proof>
279 <goal name="square_norm'vc.0.0.0.0.0.8" expl="apply premises" proved="true">
280 <proof prover="0"><result status="valid" time="0.040518" steps="78"/></proof>
284 <goal name="square_norm'vc.0.0.0.0.1" expl="apply premises" proved="true">
285 <proof prover="0"><result status="valid" time="0.057341" steps="156"/></proof>
289 <goal name="square_norm'vc.0.0.0.1" expl="apply premises" proved="true">
290 <transf name="assert" proved="true" arg1="abs (to_real (c **. c) -. (to_real c *. to_real c))
291 <=. ((eps *. abs (to_real c *. to_real c)) +. eta)">
292 <goal name="square_norm'vc.0.0.0.1.0" expl="asserted formula" proved="true">
293 <proof prover="0"><result status="valid" time="0.140113" steps="1108"/></proof>
295 <goal name="square_norm'vc.0.0.0.1.1" expl="apply premises" proved="true">
296 <proof prover="0"><result status="valid" time="0.052440" steps="119"/></proof>
300 <goal name="square_norm'vc.0.0.0.2" expl="apply premises" proved="true">
301 <proof prover="0"><result status="valid" time="0.078605" steps="114"/></proof>
303 <goal name="square_norm'vc.0.0.0.3" expl="apply premises" proved="true">
304 <proof prover="0"><result status="valid" time="0.055868" steps="89"/></proof>
306 <goal name="square_norm'vc.0.0.0.4" expl="apply premises" proved="true">
307 <proof prover="0"><result status="valid" time="0.041893" steps="78"/></proof>
309 <goal name="square_norm'vc.0.0.0.5" expl="apply premises" proved="true">
310 <proof prover="0"><result status="valid" time="0.069972" steps="78"/></proof>
312 <goal name="square_norm'vc.0.0.0.6" expl="apply premises" proved="true">
313 <proof prover="0"><result status="valid" time="0.054893" steps="78"/></proof>
315 <goal name="square_norm'vc.0.0.0.7" expl="apply premises" proved="true">
316 <proof prover="0"><result status="valid" time="0.037490" steps="78"/></proof>
318 <goal name="square_norm'vc.0.0.0.8" expl="apply premises" proved="true">
319 <proof prover="0"><result status="valid" time="0.073473" steps="78"/></proof>
323 <goal name="square_norm'vc.0.0.1" expl="asserted formula" proved="true">
324 <proof prover="0"><result status="valid" time="0.072001" steps="448"/></proof>
328 <goal name="square_norm'vc.0.1" expl="postcondition" proved="true">
329 <proof prover="0"><result status="valid" time="0.053215" steps="284"/></proof>
335 <goal name="example2'vc" expl="VC for example2" proved="true">
336 <transf name="split_vc" proved="true" >
337 <goal name="example2'vc.0" expl="postcondition" proved="true">
338 <transf name="assert" proved="true" arg1="let t = 1.0 +. eps in
339 let t1 = eps +. (eps *. t) in
340 let t2 = (to_real a +. to_real b) *. to_real c in
342 let t4 = (t +. t1) *. eta in
343 abs (to_real result -. (t2 +. t2))
344 <=. ((((t1 +. t1) +. eps) *. (t3 +. t3)) +. (t4 +. t4))">
345 <goal name="example2'vc.0.0" expl="asserted formula" proved="true">
346 <transf name="assert" proved="true" arg1="abs
348 -. (((to_real a +. to_real b) *. to_real c)
349 +. ((to_real a +. to_real b) *. to_real c)))
350 <=. (((((eps +. (eps *. (1.0 +. eps))) +. (eps +. (eps *. (1.0 +. eps))))
352 *. (abs ((to_real a +. to_real b) *. to_real c)
353 +. abs ((to_real a +. to_real b) *. to_real c)))
354 +. ((((1.0 +. eps) +. (eps +. (eps *. (1.0 +. eps)))) *. eta)
355 +. (((1.0 +. eps) +. (eps +. (eps *. (1.0 +. eps)))) *. eta)))">
356 <goal name="example2'vc.0.0.0" expl="asserted formula" proved="true">
357 <transf name="apply" proved="true" arg1="uadd_single_error_propagation" arg2="with" arg3="(a ++. b) **. c,(a ++. b) **. c">
358 <goal name="example2'vc.0.0.0.0" expl="apply premises" proved="true">
359 <transf name="assert" proved="true" arg1="abs (to_real ((a ++. b) **. c) -. ((to_real a +. to_real b) *. to_real c))
360 <=. (((eps +. (((eps +. 0.0) +. (eps *. 0.0)) *. (1.0 +. eps)))
361 *. abs ((to_real a +. to_real b) *. to_real c))
362 +. ((((((0.0 +. (0.0 *. eps)) *. abs (to_real a +. to_real b))
363 +. ((0.0 +. (0.0 *. 0.0)) *. abs (to_real c)))
367 <goal name="example2'vc.0.0.0.0.0" expl="asserted formula" proved="true">
368 <transf name="assert" proved="true" arg1="abs (to_real ((a ++. b) **. c) -. ((to_real a +. to_real b) *. to_real c))
369 <=. (((eps +. (((eps +. 0.0) +. (eps *. 0.0)) *. (1.0 +. eps)))
370 *. (abs (to_real a +. to_real b) *. abs (to_real c)))
371 +. ((((((0.0 +. (0.0 *. eps)) *. abs (to_real a +. to_real b))
372 +. ((0.0 +. (0.0 *. 0.0)) *. abs (to_real c)))
376 <goal name="example2'vc.0.0.0.0.0.0" expl="asserted formula" proved="true">
377 <transf name="apply" proved="true" arg1="umul_single_error_propagation" arg2="with" arg3="a ++. b,c">
378 <goal name="example2'vc.0.0.0.0.0.0.0" expl="apply premises" proved="true">
379 <transf name="assert" proved="true" arg1="abs (to_real (a ++. b) -. (to_real a +. to_real b))
380 <=. (eps *. abs (to_real a +. to_real b))">
381 <goal name="example2'vc.0.0.0.0.0.0.0.0" expl="asserted formula" proved="true">
382 <proof prover="0"><result status="valid" time="0.113924" steps="731"/></proof>
384 <goal name="example2'vc.0.0.0.0.0.0.0.1" expl="apply premises" proved="true">
385 <proof prover="0"><result status="valid" time="0.075772" steps="109"/></proof>
389 <goal name="example2'vc.0.0.0.0.0.0.1" expl="apply premises" proved="true">
390 <proof prover="0"><result status="valid" time="0.049509" steps="82"/></proof>
392 <goal name="example2'vc.0.0.0.0.0.0.2" expl="apply premises" proved="true">
393 <proof prover="0"><result status="valid" time="0.064965" steps="86"/></proof>
395 <goal name="example2'vc.0.0.0.0.0.0.3" expl="apply premises" proved="true">
396 <proof prover="0"><result status="valid" time="0.054580" steps="86"/></proof>
398 <goal name="example2'vc.0.0.0.0.0.0.4" expl="apply premises" proved="true">
399 <proof prover="0"><result status="valid" time="0.041857" steps="78"/></proof>
401 <goal name="example2'vc.0.0.0.0.0.0.5" expl="apply premises" proved="true">
402 <proof prover="0"><result status="valid" time="0.053300" steps="78"/></proof>
404 <goal name="example2'vc.0.0.0.0.0.0.6" expl="apply premises" proved="true">
405 <proof prover="0"><result status="valid" time="0.063986" steps="78"/></proof>
407 <goal name="example2'vc.0.0.0.0.0.0.7" expl="apply premises" proved="true">
408 <proof prover="0"><result status="valid" time="0.041146" steps="78"/></proof>
410 <goal name="example2'vc.0.0.0.0.0.0.8" expl="apply premises" proved="true">
411 <proof prover="0"><result status="valid" time="0.045187" steps="78"/></proof>
415 <goal name="example2'vc.0.0.0.0.0.1" expl="asserted formula" proved="true">
416 <proof prover="0"><result status="valid" time="0.099733" steps="502"/></proof>
420 <goal name="example2'vc.0.0.0.0.1" expl="apply premises" proved="true">
421 <proof prover="0"><result status="valid" time="0.053032" steps="150"/></proof>
425 <goal name="example2'vc.0.0.0.1" expl="apply premises" proved="true">
426 <transf name="assert" proved="true" arg1="abs (to_real ((a ++. b) **. c) -. ((to_real a +. to_real b) *. to_real c))
427 <=. (((eps +. (((eps +. 0.0) +. (eps *. 0.0)) *. (1.0 +. eps)))
428 *. abs ((to_real a +. to_real b) *. to_real c))
429 +. ((((((0.0 +. (0.0 *. eps)) *. abs (to_real a +. to_real b))
430 +. ((0.0 +. (0.0 *. 0.0)) *. abs (to_real c)))
434 <goal name="example2'vc.0.0.0.1.0" expl="asserted formula" proved="true">
435 <transf name="assert" proved="true" arg1="abs (to_real ((a ++. b) **. c) -. ((to_real a +. to_real b) *. to_real c))
436 <=. (((eps +. (((eps +. 0.0) +. (eps *. 0.0)) *. (1.0 +. eps)))
437 *. (abs (to_real a +. to_real b) *. abs (to_real c)))
438 +. ((((((0.0 +. (0.0 *. eps)) *. abs (to_real a +. to_real b))
439 +. ((0.0 +. (0.0 *. 0.0)) *. abs (to_real c)))
443 <goal name="example2'vc.0.0.0.1.0.0" expl="asserted formula" proved="true">
444 <transf name="apply" proved="true" arg1="umul_single_error_propagation" arg2="with" arg3="a ++. b,c">
445 <goal name="example2'vc.0.0.0.1.0.0.0" expl="apply premises" proved="true">
446 <transf name="assert" proved="true" arg1="abs (to_real (a ++. b) -. (to_real a +. to_real b))
447 <=. (eps *. abs (to_real a +. to_real b))">
448 <goal name="example2'vc.0.0.0.1.0.0.0.0" expl="asserted formula" proved="true">
449 <proof prover="0"><result status="valid" time="0.123771" steps="731"/></proof>
451 <goal name="example2'vc.0.0.0.1.0.0.0.1" expl="apply premises" proved="true">
452 <proof prover="0"><result status="valid" time="0.043863" steps="109"/></proof>
456 <goal name="example2'vc.0.0.0.1.0.0.1" expl="apply premises" proved="true">
457 <proof prover="0"><result status="valid" time="0.060064" steps="82"/></proof>
459 <goal name="example2'vc.0.0.0.1.0.0.2" expl="apply premises" proved="true">
460 <proof prover="0"><result status="valid" time="0.068035" steps="86"/></proof>
462 <goal name="example2'vc.0.0.0.1.0.0.3" expl="apply premises" proved="true">
463 <proof prover="0"><result status="valid" time="0.047839" steps="86"/></proof>
465 <goal name="example2'vc.0.0.0.1.0.0.4" expl="apply premises" proved="true">
466 <proof prover="0"><result status="valid" time="0.077064" steps="78"/></proof>
468 <goal name="example2'vc.0.0.0.1.0.0.5" expl="apply premises" proved="true">
469 <proof prover="0"><result status="valid" time="0.041935" steps="78"/></proof>
471 <goal name="example2'vc.0.0.0.1.0.0.6" expl="apply premises" proved="true">
472 <proof prover="0"><result status="valid" time="0.042320" steps="78"/></proof>
474 <goal name="example2'vc.0.0.0.1.0.0.7" expl="apply premises" proved="true">
475 <proof prover="0"><result status="valid" time="0.044650" steps="78"/></proof>
477 <goal name="example2'vc.0.0.0.1.0.0.8" expl="apply premises" proved="true">
478 <proof prover="0"><result status="valid" time="0.051728" steps="78"/></proof>
482 <goal name="example2'vc.0.0.0.1.0.1" expl="asserted formula" proved="true">
483 <proof prover="0"><result status="valid" time="0.087111" steps="502"/></proof>
487 <goal name="example2'vc.0.0.0.1.1" expl="apply premises" proved="true">
488 <proof prover="0"><result status="valid" time="0.075421" steps="150"/></proof>
492 <goal name="example2'vc.0.0.0.2" expl="apply premises" proved="true">
493 <proof prover="0"><result status="valid" time="0.061820" steps="96"/></proof>
495 <goal name="example2'vc.0.0.0.3" expl="apply premises" proved="true">
496 <proof prover="0"><result status="valid" time="0.057548" steps="96"/></proof>
498 <goal name="example2'vc.0.0.0.4" expl="apply premises" proved="true">
499 <proof prover="0"><result status="valid" time="0.046061" steps="78"/></proof>
501 <goal name="example2'vc.0.0.0.5" expl="apply premises" proved="true">
502 <proof prover="0"><result status="valid" time="0.032188" steps="78"/></proof>
504 <goal name="example2'vc.0.0.0.6" expl="apply premises" proved="true">
505 <proof prover="0"><result status="valid" time="0.044784" steps="78"/></proof>
507 <goal name="example2'vc.0.0.0.7" expl="apply premises" proved="true">
508 <proof prover="0"><result status="valid" time="0.035306" steps="78"/></proof>
510 <goal name="example2'vc.0.0.0.8" expl="apply premises" proved="true">
511 <proof prover="0"><result status="valid" time="0.058143" steps="78"/></proof>
515 <goal name="example2'vc.0.0.1" expl="asserted formula" proved="true">
516 <proof prover="0"><result status="valid" time="0.044230" steps="209"/></proof>
520 <goal name="example2'vc.0.1" expl="postcondition" proved="true">
521 <proof prover="1"><result status="valid" time="0.038699" steps="228"/></proof>
528 <theory name="AddSubMulDouble" proved="true">
529 <goal name="example1'vc" expl="VC for example1" proved="true">
530 <transf name="split_vc" proved="true" >
531 <goal name="example1'vc.0" expl="postcondition" proved="true">
532 <transf name="assert" proved="true" arg1="let t = to_real d in
533 let t1 = to_real c in
535 let t3 = 0.0 *. 0.0 in
536 let t4 = eps +. eps in
537 let t5 = 1.0 +. eps in
538 let t6 = to_real a +. to_real b in
539 let t7 = abs t6 +. abs t1 in
540 abs (to_real result -. ((t6 -. t1) *. t))
541 <=. (((eps +. (((t4 +. 0.0) +. (t4 *. 0.0)) *. t5)) *. (t7 *. t2))
542 +. ((((((0.0 +. (0.0 *. t4)) *. t7) +. ((0.0 +. t3) *. t2)) +. t3) *. t5)
544 <goal name="example1'vc.0.0" expl="asserted formula" proved="true">
545 <transf name="assert" proved="true" arg1="abs
546 (to_real result -. (((to_real a +. to_real b) -. to_real c) *. to_real d))
548 +. ((((eps +. eps) +. 0.0) +. ((eps +. eps) *. 0.0)) *. (1.0 +. eps)))
549 *. ((abs (to_real a +. to_real b) +. abs (to_real c))
551 +. ((((((0.0 +. (0.0 *. (eps +. eps)))
552 *. (abs (to_real a +. to_real b) +. abs (to_real c)))
553 +. ((0.0 +. (0.0 *. 0.0)) *. abs (to_real d)))
557 <goal name="example1'vc.0.0.0" expl="asserted formula" proved="true">
558 <transf name="apply" proved="true" arg1="umul_double_error_propagation" arg2="with" arg3="(a ++. b) --. c,d">
559 <goal name="example1'vc.0.0.0.0" expl="apply premises" proved="true">
560 <transf name="assert" proved="true" arg1="abs (to_real ((a ++. b) --. c) -. ((to_real a +. to_real b) -. to_real c))
561 <=. ((((eps +. 0.0) +. eps)
562 *. (abs (to_real a +. to_real b) +. abs (to_real c)))
563 +. ((((1.0 +. eps) +. 0.0) *. 0.0) +. (((1.0 +. eps) +. eps) *. 0.0)))">
564 <goal name="example1'vc.0.0.0.0.0" expl="asserted formula" proved="true">
565 <transf name="apply" proved="true" arg1="usub_double_error_propagation" arg2="with" arg3="a ++. b,c">
566 <goal name="example1'vc.0.0.0.0.0.0" expl="apply premises" proved="true">
567 <transf name="assert" proved="true" arg1="abs (to_real (a ++. b) -. (to_real a +. to_real b))
568 <=. (eps *. abs (to_real a +. to_real b))">
569 <goal name="example1'vc.0.0.0.0.0.0.0" expl="asserted formula" proved="true">
570 <proof prover="0"><result status="valid" time="0.099338" steps="731"/></proof>
572 <goal name="example1'vc.0.0.0.0.0.0.1" expl="apply premises" proved="true">
573 <proof prover="0"><result status="valid" time="0.044111" steps="109"/></proof>
577 <goal name="example1'vc.0.0.0.0.0.1" expl="apply premises" proved="true">
578 <proof prover="0"><result status="valid" time="0.039709" steps="82"/></proof>
580 <goal name="example1'vc.0.0.0.0.0.2" expl="apply premises" proved="true">
581 <proof prover="0"><result status="valid" time="0.052334" steps="86"/></proof>
583 <goal name="example1'vc.0.0.0.0.0.3" expl="apply premises" proved="true">
584 <proof prover="0"><result status="valid" time="0.040767" steps="86"/></proof>
586 <goal name="example1'vc.0.0.0.0.0.4" expl="apply premises" proved="true">
587 <proof prover="0"><result status="valid" time="0.039429" steps="78"/></proof>
589 <goal name="example1'vc.0.0.0.0.0.5" expl="apply premises" proved="true">
590 <proof prover="0"><result status="valid" time="0.046250" steps="78"/></proof>
592 <goal name="example1'vc.0.0.0.0.0.6" expl="apply premises" proved="true">
593 <proof prover="0"><result status="valid" time="0.050161" steps="78"/></proof>
595 <goal name="example1'vc.0.0.0.0.0.7" expl="apply premises" proved="true">
596 <proof prover="0"><result status="valid" time="0.044826" steps="78"/></proof>
598 <goal name="example1'vc.0.0.0.0.0.8" expl="apply premises" proved="true">
599 <proof prover="0"><result status="valid" time="0.038337" steps="78"/></proof>
603 <goal name="example1'vc.0.0.0.0.1" expl="apply premises" proved="true">
604 <proof prover="0"><result status="valid" time="0.057962" steps="145"/></proof>
608 <goal name="example1'vc.0.0.0.1" expl="apply premises" proved="true">
609 <proof prover="0"><result status="valid" time="0.039300" steps="82"/></proof>
611 <goal name="example1'vc.0.0.0.2" expl="apply premises" proved="true">
612 <proof prover="0"><result status="valid" time="0.048197" steps="112"/></proof>
614 <goal name="example1'vc.0.0.0.3" expl="apply premises" proved="true">
615 <proof prover="0"><result status="valid" time="0.045211" steps="86"/></proof>
617 <goal name="example1'vc.0.0.0.4" expl="apply premises" proved="true">
618 <proof prover="0"><result status="valid" time="0.037370" steps="78"/></proof>
620 <goal name="example1'vc.0.0.0.5" expl="apply premises" proved="true">
621 <proof prover="0"><result status="valid" time="0.040803" steps="78"/></proof>
623 <goal name="example1'vc.0.0.0.6" expl="apply premises" proved="true">
624 <proof prover="0"><result status="valid" time="0.047850" steps="78"/></proof>
626 <goal name="example1'vc.0.0.0.7" expl="apply premises" proved="true">
627 <proof prover="0"><result status="valid" time="0.038349" steps="78"/></proof>
629 <goal name="example1'vc.0.0.0.8" expl="apply premises" proved="true">
630 <proof prover="0"><result status="valid" time="0.036098" steps="78"/></proof>
634 <goal name="example1'vc.0.0.1" expl="asserted formula" proved="true">
635 <proof prover="0"><result status="valid" time="0.354877" steps="619"/></proof>
639 <goal name="example1'vc.0.1" expl="postcondition" proved="true">
640 <proof prover="0"><result status="valid" time="0.419084" steps="1517"/></proof>
646 <goal name="determinant'vc" expl="VC for determinant" proved="true">
647 <transf name="split_vc" proved="true" >
648 <goal name="determinant'vc.0" expl="postcondition" proved="true">
649 <transf name="assert" proved="true" arg1="let t = to_real b *. to_real c in
650 let t3 = to_real a *. to_real d in
651 let t4 = ((1.0 +. eps) +. eps) *. eta in
652 abs (to_real result -. (t3 -. t))
653 <=. ((((eps +. eps) +. eps) *. (abs t3 +. abs t)) +. (t4 +. t4))">
654 <goal name="determinant'vc.0.0" expl="asserted formula" proved="true">
655 <transf name="assert" proved="true" arg1="abs
656 (to_real result -. ((to_real a *. to_real d) -. (to_real b *. to_real c)))
657 <=. ((((eps +. eps) +. eps)
658 *. (abs (to_real a *. to_real d) +. abs (to_real b *. to_real c)))
659 +. ((((1.0 +. eps) +. eps) *. eta) +. (((1.0 +. eps) +. eps) *. eta)))">
660 <goal name="determinant'vc.0.0.0" expl="asserted formula" proved="true">
661 <transf name="apply" proved="true" arg1="usub_double_error_propagation" arg2="with" arg3="a **. d,b **. c">
662 <goal name="determinant'vc.0.0.0.0" expl="apply premises" proved="true">
663 <transf name="assert" proved="true" arg1="abs (to_real (a **. d) -. (to_real a *. to_real d))
664 <=. ((eps *. abs (to_real a *. to_real d)) +. eta)">
665 <goal name="determinant'vc.0.0.0.0.0" expl="asserted formula" proved="true">
666 <proof prover="0"><result status="valid" time="0.112748" steps="1044"/></proof>
668 <goal name="determinant'vc.0.0.0.0.1" expl="apply premises" proved="true">
669 <proof prover="0"><result status="valid" time="0.052974" steps="136"/></proof>
673 <goal name="determinant'vc.0.0.0.1" expl="apply premises" proved="true">
674 <transf name="assert" proved="true" arg1="abs (to_real (b **. c) -. (to_real b *. to_real c))
675 <=. ((eps *. abs (to_real b *. to_real c)) +. eta)">
676 <goal name="determinant'vc.0.0.0.1.0" expl="asserted formula" proved="true">
677 <proof prover="0"><result status="valid" time="0.117956" steps="1034"/></proof>
679 <goal name="determinant'vc.0.0.0.1.1" expl="apply premises" proved="true">
680 <proof prover="0"><result status="valid" time="0.080507" steps="136"/></proof>
684 <goal name="determinant'vc.0.0.0.2" expl="apply premises" proved="true">
685 <proof prover="0"><result status="valid" time="0.049878" steps="95"/></proof>
687 <goal name="determinant'vc.0.0.0.3" expl="apply premises" proved="true">
688 <proof prover="0"><result status="valid" time="0.059504" steps="95"/></proof>
690 <goal name="determinant'vc.0.0.0.4" expl="apply premises" proved="true">
691 <proof prover="0"><result status="valid" time="0.067906" steps="78"/></proof>
693 <goal name="determinant'vc.0.0.0.5" expl="apply premises" proved="true">
694 <proof prover="0"><result status="valid" time="0.041347" steps="78"/></proof>
696 <goal name="determinant'vc.0.0.0.6" expl="apply premises" proved="true">
697 <proof prover="0"><result status="valid" time="0.048682" steps="78"/></proof>
699 <goal name="determinant'vc.0.0.0.7" expl="apply premises" proved="true">
700 <proof prover="0"><result status="valid" time="0.047418" steps="78"/></proof>
702 <goal name="determinant'vc.0.0.0.8" expl="apply premises" proved="true">
703 <proof prover="0"><result status="valid" time="0.044028" steps="78"/></proof>
707 <goal name="determinant'vc.0.0.1" expl="asserted formula" proved="true">
708 <proof prover="0"><result status="valid" time="0.068004" steps="367"/></proof>
712 <goal name="determinant'vc.0.1" expl="postcondition" proved="true">
713 <proof prover="0"><result status="valid" time="0.066228" steps="387"/></proof>
719 <goal name="square_norm'vc" expl="VC for square_norm" proved="true">
720 <transf name="split_vc" proved="true" >
721 <goal name="square_norm'vc.0" expl="postcondition" proved="true">
722 <transf name="assert" proved="true" arg1="let t = to_real c in
723 let t4 = to_real b in
724 let t5 = to_real a in
725 let t6 = 1.0 +. eps in
729 let t10 = (eps +. eps) +. eps in
730 let t11 = t6 +. eps in
731 let t12 = t11 *. eta in
732 abs (to_real result -. ((t9 +. t8) +. t7))
733 <=. ((((t10 +. eps) +. eps) *. ((abs t9 +. abs t8) +. abs t7))
734 +. ((t11 *. (t12 +. t12)) +. ((t6 +. t10) *. eta)))">
735 <goal name="square_norm'vc.0.0" expl="asserted formula" proved="true">
736 <transf name="assert" proved="true" arg1="abs
738 -. (((to_real a *. to_real a) +. (to_real b *. to_real b))
739 +. (to_real c *. to_real c)))
740 <=. ((((((eps +. eps) +. eps) +. eps) +. eps)
741 *. ((abs (to_real a *. to_real a) +. abs (to_real b *. to_real b))
742 +. abs (to_real c *. to_real c)))
743 +. ((((1.0 +. eps) +. eps)
744 *. ((((1.0 +. eps) +. eps) *. eta)
745 +. (((1.0 +. eps) +. eps) *. eta)))
746 +. (((1.0 +. eps) +. ((eps +. eps) +. eps)) *. eta)))">
747 <goal name="square_norm'vc.0.0.0" expl="asserted formula" proved="true">
748 <transf name="apply" proved="true" arg1="uadd_double_error_propagation" arg2="with" arg3="(a **. a) ++. (b **. b),c **. c">
749 <goal name="square_norm'vc.0.0.0.0" expl="apply premises" proved="true">
750 <transf name="assert" proved="true" arg1="abs
751 (to_real ((a **. a) ++. (b **. b))
752 -. ((to_real a *. to_real a) +. (to_real b *. to_real b)))
753 <=. ((((eps +. eps) +. eps)
754 *. (abs (to_real a *. to_real a) +. abs (to_real b *. to_real b)))
755 +. ((((1.0 +. eps) +. eps) *. eta) +. (((1.0 +. eps) +. eps) *. eta)))">
756 <goal name="square_norm'vc.0.0.0.0.0" expl="asserted formula" proved="true">
757 <transf name="apply" proved="true" arg1="uadd_double_error_propagation" arg2="with" arg3="a **. a,b **. b">
758 <goal name="square_norm'vc.0.0.0.0.0.0" expl="apply premises" proved="true">
759 <transf name="assert" proved="true" arg1="abs (to_real (a **. a) -. (to_real a *. to_real a))
760 <=. ((eps *. abs (to_real a *. to_real a)) +. eta)">
761 <goal name="square_norm'vc.0.0.0.0.0.0.0" expl="asserted formula" proved="true">
762 <proof prover="0"><result status="valid" time="0.093713" steps="1108"/></proof>
764 <goal name="square_norm'vc.0.0.0.0.0.0.1" expl="apply premises" proved="true">
765 <proof prover="0"><result status="valid" time="0.042975" steps="119"/></proof>
769 <goal name="square_norm'vc.0.0.0.0.0.1" expl="apply premises" proved="true">
770 <transf name="assert" proved="true" arg1="abs (to_real (b **. b) -. (to_real b *. to_real b))
771 <=. ((eps *. abs (to_real b *. to_real b)) +. eta)">
772 <goal name="square_norm'vc.0.0.0.0.0.1.0" expl="asserted formula" proved="true">
773 <proof prover="0"><result status="valid" time="0.108802" steps="1108"/></proof>
775 <goal name="square_norm'vc.0.0.0.0.0.1.1" expl="apply premises" proved="true">
776 <proof prover="0"><result status="valid" time="0.071893" steps="119"/></proof>
780 <goal name="square_norm'vc.0.0.0.0.0.2" expl="apply premises" proved="true">
781 <proof prover="0"><result status="valid" time="0.042091" steps="89"/></proof>
783 <goal name="square_norm'vc.0.0.0.0.0.3" expl="apply premises" proved="true">
784 <proof prover="0"><result status="valid" time="0.041152" steps="89"/></proof>
786 <goal name="square_norm'vc.0.0.0.0.0.4" expl="apply premises" proved="true">
787 <proof prover="0"><result status="valid" time="0.055265" steps="78"/></proof>
789 <goal name="square_norm'vc.0.0.0.0.0.5" expl="apply premises" proved="true">
790 <proof prover="0"><result status="valid" time="0.042744" steps="78"/></proof>
792 <goal name="square_norm'vc.0.0.0.0.0.6" expl="apply premises" proved="true">
793 <proof prover="0"><result status="valid" time="0.070463" steps="78"/></proof>
795 <goal name="square_norm'vc.0.0.0.0.0.7" expl="apply premises" proved="true">
796 <proof prover="0"><result status="valid" time="0.070842" steps="78"/></proof>
798 <goal name="square_norm'vc.0.0.0.0.0.8" expl="apply premises" proved="true">
799 <proof prover="0"><result status="valid" time="0.045319" steps="78"/></proof>
803 <goal name="square_norm'vc.0.0.0.0.1" expl="apply premises" proved="true">
804 <proof prover="0"><result status="valid" time="0.057372" steps="156"/></proof>
808 <goal name="square_norm'vc.0.0.0.1" expl="apply premises" proved="true">
809 <transf name="assert" proved="true" arg1="abs (to_real (c **. c) -. (to_real c *. to_real c))
810 <=. ((eps *. abs (to_real c *. to_real c)) +. eta)">
811 <goal name="square_norm'vc.0.0.0.1.0" expl="asserted formula" proved="true">
812 <proof prover="0"><result status="valid" time="0.106320" steps="1108"/></proof>
814 <goal name="square_norm'vc.0.0.0.1.1" expl="apply premises" proved="true">
815 <proof prover="0"><result status="valid" time="0.055363" steps="119"/></proof>
819 <goal name="square_norm'vc.0.0.0.2" expl="apply premises" proved="true">
820 <proof prover="0"><result status="valid" time="0.064110" steps="114"/></proof>
822 <goal name="square_norm'vc.0.0.0.3" expl="apply premises" proved="true">
823 <proof prover="0"><result status="valid" time="0.060803" steps="89"/></proof>
825 <goal name="square_norm'vc.0.0.0.4" expl="apply premises" proved="true">
826 <proof prover="0"><result status="valid" time="0.046007" steps="78"/></proof>
828 <goal name="square_norm'vc.0.0.0.5" expl="apply premises" proved="true">
829 <proof prover="0"><result status="valid" time="0.068342" steps="78"/></proof>
831 <goal name="square_norm'vc.0.0.0.6" expl="apply premises" proved="true">
832 <proof prover="0"><result status="valid" time="0.061078" steps="78"/></proof>
834 <goal name="square_norm'vc.0.0.0.7" expl="apply premises" proved="true">
835 <proof prover="0"><result status="valid" time="0.050386" steps="78"/></proof>
837 <goal name="square_norm'vc.0.0.0.8" expl="apply premises" proved="true">
838 <proof prover="0"><result status="valid" time="0.038568" steps="78"/></proof>
842 <goal name="square_norm'vc.0.0.1" expl="asserted formula" proved="true">
843 <proof prover="0"><result status="valid" time="0.068279" steps="448"/></proof>
847 <goal name="square_norm'vc.0.1" expl="postcondition" proved="true">
848 <proof prover="0"><result status="valid" time="0.066598" steps="284"/></proof>
854 <goal name="example2'vc" expl="VC for example2" proved="true">
855 <transf name="split_vc" proved="true" >
856 <goal name="example2'vc.0" expl="postcondition" proved="true">
857 <transf name="assert" proved="true" arg1="let t5 = 1.0 +. eps in
858 let t6 = eps +. (eps *. t5) in
859 let t7 = (to_real a +. to_real b) *. to_real c in
861 let t9 = (t5 +. t6) *. eta in
862 abs (to_real result -. (t7 +. t7))
863 <=. ((((t6 +. t6) +. eps) *. (t8 +. t8)) +. (t9 +. t9))">
864 <goal name="example2'vc.0.0" expl="asserted formula" proved="true">
865 <transf name="assert" proved="true" arg1="abs
867 -. (((to_real a +. to_real b) *. to_real c)
868 +. ((to_real a +. to_real b) *. to_real c)))
869 <=. (((((eps +. (eps *. (1.0 +. eps))) +. (eps +. (eps *. (1.0 +. eps))))
871 *. (abs ((to_real a +. to_real b) *. to_real c)
872 +. abs ((to_real a +. to_real b) *. to_real c)))
873 +. ((((1.0 +. eps) +. (eps +. (eps *. (1.0 +. eps)))) *. eta)
874 +. (((1.0 +. eps) +. (eps +. (eps *. (1.0 +. eps)))) *. eta)))">
875 <goal name="example2'vc.0.0.0" expl="asserted formula" proved="true">
876 <transf name="apply" proved="true" arg1="uadd_double_error_propagation" arg2="with" arg3="(a ++. b) **. c,(a ++. b) **. c">
877 <goal name="example2'vc.0.0.0.0" expl="apply premises" proved="true">
878 <transf name="assert" proved="true" arg1="abs (to_real ((a ++. b) **. c) -. ((to_real a +. to_real b) *. to_real c))
879 <=. (((eps +. (((eps +. 0.0) +. (eps *. 0.0)) *. (1.0 +. eps)))
880 *. abs ((to_real a +. to_real b) *. to_real c))
881 +. ((((((0.0 +. (0.0 *. eps)) *. abs (to_real a +. to_real b))
882 +. ((0.0 +. (0.0 *. 0.0)) *. abs (to_real c)))
886 <goal name="example2'vc.0.0.0.0.0" expl="asserted formula" proved="true">
887 <transf name="assert" proved="true" arg1="abs (to_real ((a ++. b) **. c) -. ((to_real a +. to_real b) *. to_real c))
888 <=. (((eps +. (((eps +. 0.0) +. (eps *. 0.0)) *. (1.0 +. eps)))
889 *. (abs (to_real a +. to_real b) *. abs (to_real c)))
890 +. ((((((0.0 +. (0.0 *. eps)) *. abs (to_real a +. to_real b))
891 +. ((0.0 +. (0.0 *. 0.0)) *. abs (to_real c)))
895 <goal name="example2'vc.0.0.0.0.0.0" expl="asserted formula" proved="true">
896 <transf name="apply" proved="true" arg1="umul_double_error_propagation" arg2="with" arg3="a ++. b,c">
897 <goal name="example2'vc.0.0.0.0.0.0.0" expl="apply premises" proved="true">
898 <transf name="assert" proved="true" arg1="abs (to_real (a ++. b) -. (to_real a +. to_real b))
899 <=. (eps *. abs (to_real a +. to_real b))">
900 <goal name="example2'vc.0.0.0.0.0.0.0.0" expl="asserted formula" proved="true">
901 <proof prover="0"><result status="valid" time="0.113869" steps="732"/></proof>
903 <goal name="example2'vc.0.0.0.0.0.0.0.1" expl="apply premises" proved="true">
904 <proof prover="0"><result status="valid" time="0.043755" steps="109"/></proof>
908 <goal name="example2'vc.0.0.0.0.0.0.1" expl="apply premises" proved="true">
909 <proof prover="0"><result status="valid" time="0.068017" steps="82"/></proof>
911 <goal name="example2'vc.0.0.0.0.0.0.2" expl="apply premises" proved="true">
912 <proof prover="0"><result status="valid" time="0.064696" steps="86"/></proof>
914 <goal name="example2'vc.0.0.0.0.0.0.3" expl="apply premises" proved="true">
915 <proof prover="0"><result status="valid" time="0.038286" steps="86"/></proof>
917 <goal name="example2'vc.0.0.0.0.0.0.4" expl="apply premises" proved="true">
918 <proof prover="0"><result status="valid" time="0.043526" steps="78"/></proof>
920 <goal name="example2'vc.0.0.0.0.0.0.5" expl="apply premises" proved="true">
921 <proof prover="0"><result status="valid" time="0.040759" steps="78"/></proof>
923 <goal name="example2'vc.0.0.0.0.0.0.6" expl="apply premises" proved="true">
924 <proof prover="0"><result status="valid" time="0.061148" steps="78"/></proof>
926 <goal name="example2'vc.0.0.0.0.0.0.7" expl="apply premises" proved="true">
927 <proof prover="0"><result status="valid" time="0.071233" steps="78"/></proof>
929 <goal name="example2'vc.0.0.0.0.0.0.8" expl="apply premises" proved="true">
930 <proof prover="0"><result status="valid" time="0.041913" steps="78"/></proof>
934 <goal name="example2'vc.0.0.0.0.0.1" expl="asserted formula" proved="true">
935 <proof prover="0"><result status="valid" time="0.113913" steps="510"/></proof>
939 <goal name="example2'vc.0.0.0.0.1" expl="apply premises" proved="true">
940 <proof prover="0"><result status="valid" time="0.055692" steps="150"/></proof>
944 <goal name="example2'vc.0.0.0.1" expl="apply premises" proved="true">
945 <transf name="assert" proved="true" arg1="abs (to_real ((a ++. b) **. c) -. ((to_real a +. to_real b) *. to_real c))
946 <=. (((eps +. (((eps +. 0.0) +. (eps *. 0.0)) *. (1.0 +. eps)))
947 *. abs ((to_real a +. to_real b) *. to_real c))
948 +. ((((((0.0 +. (0.0 *. eps)) *. abs (to_real a +. to_real b))
949 +. ((0.0 +. (0.0 *. 0.0)) *. abs (to_real c)))
953 <goal name="example2'vc.0.0.0.1.0" expl="asserted formula" proved="true">
954 <transf name="assert" proved="true" arg1="abs (to_real ((a ++. b) **. c) -. ((to_real a +. to_real b) *. to_real c))
955 <=. (((eps +. (((eps +. 0.0) +. (eps *. 0.0)) *. (1.0 +. eps)))
956 *. (abs (to_real a +. to_real b) *. abs (to_real c)))
957 +. ((((((0.0 +. (0.0 *. eps)) *. abs (to_real a +. to_real b))
958 +. ((0.0 +. (0.0 *. 0.0)) *. abs (to_real c)))
962 <goal name="example2'vc.0.0.0.1.0.0" expl="asserted formula" proved="true">
963 <transf name="apply" proved="true" arg1="umul_double_error_propagation" arg2="with" arg3="a ++. b,c">
964 <goal name="example2'vc.0.0.0.1.0.0.0" expl="apply premises" proved="true">
965 <transf name="assert" proved="true" arg1="abs (to_real (a ++. b) -. (to_real a +. to_real b))
966 <=. (eps *. abs (to_real a +. to_real b))">
967 <goal name="example2'vc.0.0.0.1.0.0.0.0" expl="asserted formula" proved="true">
968 <proof prover="0"><result status="valid" time="0.125627" steps="732"/></proof>
970 <goal name="example2'vc.0.0.0.1.0.0.0.1" expl="apply premises" proved="true">
971 <proof prover="0"><result status="valid" time="0.078666" steps="109"/></proof>
975 <goal name="example2'vc.0.0.0.1.0.0.1" expl="apply premises" proved="true">
976 <proof prover="0"><result status="valid" time="0.066025" steps="82"/></proof>
978 <goal name="example2'vc.0.0.0.1.0.0.2" expl="apply premises" proved="true">
979 <proof prover="0"><result status="valid" time="0.051434" steps="86"/></proof>
981 <goal name="example2'vc.0.0.0.1.0.0.3" expl="apply premises" proved="true">
982 <proof prover="0"><result status="valid" time="0.052211" steps="86"/></proof>
984 <goal name="example2'vc.0.0.0.1.0.0.4" expl="apply premises" proved="true">
985 <proof prover="0"><result status="valid" time="0.039701" steps="78"/></proof>
987 <goal name="example2'vc.0.0.0.1.0.0.5" expl="apply premises" proved="true">
988 <proof prover="0"><result status="valid" time="0.048932" steps="78"/></proof>
990 <goal name="example2'vc.0.0.0.1.0.0.6" expl="apply premises" proved="true">
991 <proof prover="0"><result status="valid" time="0.043339" steps="78"/></proof>
993 <goal name="example2'vc.0.0.0.1.0.0.7" expl="apply premises" proved="true">
994 <proof prover="0"><result status="valid" time="0.040041" steps="78"/></proof>
996 <goal name="example2'vc.0.0.0.1.0.0.8" expl="apply premises" proved="true">
997 <proof prover="0"><result status="valid" time="0.041882" steps="78"/></proof>
1001 <goal name="example2'vc.0.0.0.1.0.1" expl="asserted formula" proved="true">
1002 <proof prover="0"><result status="valid" time="0.122295" steps="510"/></proof>
1006 <goal name="example2'vc.0.0.0.1.1" expl="apply premises" proved="true">
1007 <proof prover="0"><result status="valid" time="0.091872" steps="150"/></proof>
1011 <goal name="example2'vc.0.0.0.2" expl="apply premises" proved="true">
1012 <proof prover="0"><result status="valid" time="0.056166" steps="96"/></proof>
1014 <goal name="example2'vc.0.0.0.3" expl="apply premises" proved="true">
1015 <proof prover="0"><result status="valid" time="0.064147" steps="96"/></proof>
1017 <goal name="example2'vc.0.0.0.4" expl="apply premises" proved="true">
1018 <proof prover="0"><result status="valid" time="0.053921" steps="78"/></proof>
1020 <goal name="example2'vc.0.0.0.5" expl="apply premises" proved="true">
1021 <proof prover="0"><result status="valid" time="0.045842" steps="78"/></proof>
1023 <goal name="example2'vc.0.0.0.6" expl="apply premises" proved="true">
1024 <proof prover="0"><result status="valid" time="0.048885" steps="78"/></proof>
1026 <goal name="example2'vc.0.0.0.7" expl="apply premises" proved="true">
1027 <proof prover="0"><result status="valid" time="0.053499" steps="78"/></proof>
1029 <goal name="example2'vc.0.0.0.8" expl="apply premises" proved="true">
1030 <proof prover="0"><result status="valid" time="0.057707" steps="78"/></proof>
1034 <goal name="example2'vc.0.0.1" expl="asserted formula" proved="true">
1035 <proof prover="0"><result status="valid" time="0.073772" steps="208"/></proof>
1039 <goal name="example2'vc.0.1" expl="postcondition" proved="true">
1040 <proof prover="0"><result status="valid" time="0.049202" steps="229"/></proof>