Reduce the size of the formula produced, using let bindings so as to share common...
[why3.git] / examples / numeric / exp_log / why3session.xml
blob680fa579b671449d0efe70e7d8a804f79578cb51
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="2" 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&#39;vc" expl="VC for example1" proved="true">
10  <transf name="split_vc" proved="true" >
11   <goal name="example1&#39;vc.0" expl="precondition" proved="true">
12   <proof prover="2"><result status="valid" time="0.052160" steps="871"/></proof>
13   </goal>
14   <goal name="example1&#39;vc.1" expl="precondition" proved="true">
15   <proof prover="2"><result status="valid" time="0.090134" steps="1034"/></proof>
16   </goal>
17   <goal name="example1&#39;vc.2" expl="postcondition" proved="true">
18   <transf name="assert" proved="true" arg1="let t = log (exp (to_real y)) in
19 let t1 = log (exp (to_real x)) in
20 let t2 =
21   ((1.0 +. eps) +. log_error)
22   *. ((-. log (1.0 -. exp_error)) *. (1.0 +. log_error))
24 abs (to_real result -. (t1 +. t))
25 &lt;=. ((((log_error +. log_error) +. eps) *. (abs t1 +. abs t)) +. (t2 +. t2))">
26    <goal name="example1&#39;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 &lt;=. ((((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)))
32          +. (((1.0 +. eps) +. log_error)
33              *. ((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)))))">
34     <goal name="example1&#39;vc.2.0.0" expl="asserted formula" proved="true">
35     <transf name="apply" proved="true" arg1="uadd_single_error_propagation" arg2="with" arg3="log_approx (exp_approx x),log_approx (exp_approx y)">
36      <goal name="example1&#39;vc.2.0.0.0" expl="apply premises" proved="true">
37      <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx x)) -. log (exp (to_real x)))
38 &lt;=. ((abs (log (exp (to_real x))) *. log_error)
39      +. ((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)))">
40       <goal name="example1&#39;vc.2.0.0.0.0" expl="asserted formula" proved="true">
41       <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx x)) -. log (exp (to_real x)))
42 &lt;=. ((log_error *. abs (log (exp (to_real x))))
43      +. (((-. log
44               (1.0
45                -. (((exp_error *. exp (to_real x)) +. 0.0) /. exp (to_real x))))
46           *. (1.0 +. log_error))
47          +. 0.0))">
48        <goal name="example1&#39;vc.2.0.0.0.0.0" expl="asserted formula" proved="true">
49        <transf name="assert" proved="true" arg1="abs
50 (to_real ((fun (y0:usingle) -&gt; log_approx y0) @ exp_approx x)
51  -. log (exp (to_real x)))
52 &lt;=. ((log_error *. abs (log (exp (to_real x))))
53      +. (((-. log
54               (1.0
55                -. (((exp_error *. exp (to_real x)) +. 0.0) /. exp (to_real x))))
56           *. (1.0 +. log_error))
57          +. 0.0))">
58         <goal name="example1&#39;vc.2.0.0.0.0.0.0" expl="asserted formula" proved="true">
59         <transf name="apply" proved="true" arg1="log_single_error_propagation">
60          <goal name="example1&#39;vc.2.0.0.0.0.0.0.0" expl="apply premises" proved="true">
61          <proof prover="2"><result status="valid" time="0.053633" steps="108"/></proof>
62          </goal>
63          <goal name="example1&#39;vc.2.0.0.0.0.0.0.1" expl="apply premises" proved="true">
64          <proof prover="2"><result status="valid" time="0.256933" steps="1738"/></proof>
65          </goal>
66          <goal name="example1&#39;vc.2.0.0.0.0.0.0.2" expl="apply premises" proved="true">
67          <proof prover="2"><result status="valid" time="0.119913" steps="956"/></proof>
68          </goal>
69          <goal name="example1&#39;vc.2.0.0.0.0.0.0.3" expl="apply premises" proved="true">
70          <proof prover="2"><result status="valid" time="0.265578" steps="1096"/></proof>
71          </goal>
72          <goal name="example1&#39;vc.2.0.0.0.0.0.0.4" expl="apply premises" proved="true">
73          <proof prover="2"><result status="valid" time="0.048327" steps="103"/></proof>
74          </goal>
75         </transf>
76         </goal>
77         <goal name="example1&#39;vc.2.0.0.0.0.0.1" expl="asserted formula" proved="true">
78         <proof prover="2"><result status="valid" time="0.510193" steps="2760"/></proof>
79         </goal>
80        </transf>
81        </goal>
82        <goal name="example1&#39;vc.2.0.0.0.0.1" expl="asserted formula" proved="true">
83        <proof prover="2"><result status="valid" time="0.538622" steps="4518"/></proof>
84        </goal>
85       </transf>
86       </goal>
87       <goal name="example1&#39;vc.2.0.0.0.1" expl="apply premises" proved="true">
88       <proof prover="2"><result status="valid" time="0.070726" steps="134"/></proof>
89       </goal>
90      </transf>
91      </goal>
92      <goal name="example1&#39;vc.2.0.0.1" expl="apply premises" proved="true">
93      <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx y)) -. log (exp (to_real y)))
94 &lt;=. ((abs (log (exp (to_real y))) *. log_error)
95      +. ((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)))">
96       <goal name="example1&#39;vc.2.0.0.1.0" expl="asserted formula" proved="true">
97       <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx y)) -. log (exp (to_real y)))
98 &lt;=. ((log_error *. abs (log (exp (to_real y))))
99      +. (((-. log
100               (1.0
101                -. (((exp_error *. exp (to_real y)) +. 0.0) /. exp (to_real y))))
102           *. (1.0 +. log_error))
103          +. 0.0))">
104        <goal name="example1&#39;vc.2.0.0.1.0.0" expl="asserted formula" proved="true">
105        <transf name="assert" proved="true" arg1="abs
106 (to_real ((fun (y0:usingle) -&gt; log_approx y0) @ exp_approx y)
107  -. log (exp (to_real y)))
108 &lt;=. ((log_error *. abs (log (exp (to_real y))))
109      +. (((-. log
110               (1.0
111                -. (((exp_error *. exp (to_real y)) +. 0.0) /. exp (to_real y))))
112           *. (1.0 +. log_error))
113          +. 0.0))">
114         <goal name="example1&#39;vc.2.0.0.1.0.0.0" expl="asserted formula" proved="true">
115         <transf name="apply" proved="true" arg1="log_single_error_propagation">
116          <goal name="example1&#39;vc.2.0.0.1.0.0.0.0" expl="apply premises" proved="true">
117          <proof prover="2"><result status="valid" time="0.063878" steps="108"/></proof>
118          </goal>
119          <goal name="example1&#39;vc.2.0.0.1.0.0.0.1" expl="apply premises" proved="true">
120          <proof prover="2"><result status="valid" time="0.351352" steps="1764"/></proof>
121          </goal>
122          <goal name="example1&#39;vc.2.0.0.1.0.0.0.2" expl="apply premises" proved="true">
123          <proof prover="2"><result status="valid" time="0.109382" steps="952"/></proof>
124          </goal>
125          <goal name="example1&#39;vc.2.0.0.1.0.0.0.3" expl="apply premises" proved="true">
126          <proof prover="2"><result status="valid" time="0.172776" steps="1044"/></proof>
127          </goal>
128          <goal name="example1&#39;vc.2.0.0.1.0.0.0.4" expl="apply premises" proved="true">
129          <proof prover="2"><result status="valid" time="0.080213" steps="103"/></proof>
130          </goal>
131         </transf>
132         </goal>
133         <goal name="example1&#39;vc.2.0.0.1.0.0.1" expl="asserted formula" proved="true">
134         <proof prover="2"><result status="valid" time="0.460793" steps="2446"/></proof>
135         </goal>
136        </transf>
137        </goal>
138        <goal name="example1&#39;vc.2.0.0.1.0.1" expl="asserted formula" proved="true">
139        <proof prover="2"><result status="valid" time="0.657721" steps="5070"/></proof>
140        </goal>
141       </transf>
142       </goal>
143       <goal name="example1&#39;vc.2.0.0.1.1" expl="apply premises" proved="true">
144       <proof prover="2"><result status="valid" time="0.059395" steps="134"/></proof>
145       </goal>
146      </transf>
147      </goal>
148      <goal name="example1&#39;vc.2.0.0.2" expl="apply premises" proved="true">
149      <proof prover="2"><result status="valid" time="0.048864" steps="110"/></proof>
150      </goal>
151      <goal name="example1&#39;vc.2.0.0.3" expl="apply premises" proved="true">
152      <proof prover="2"><result status="valid" time="0.045970" steps="110"/></proof>
153      </goal>
154      <goal name="example1&#39;vc.2.0.0.4" expl="apply premises" proved="true">
155      <proof prover="2"><result status="valid" time="0.056673" steps="103"/></proof>
156      </goal>
157      <goal name="example1&#39;vc.2.0.0.5" expl="apply premises" proved="true">
158      <proof prover="2"><result status="valid" time="0.041649" steps="103"/></proof>
159      </goal>
160      <goal name="example1&#39;vc.2.0.0.6" expl="apply premises" proved="true">
161      <proof prover="2"><result status="valid" time="0.122526" steps="649"/></proof>
162      </goal>
163      <goal name="example1&#39;vc.2.0.0.7" expl="apply premises" proved="true">
164      <proof prover="2"><result status="valid" time="0.123367" steps="649"/></proof>
165      </goal>
166      <goal name="example1&#39;vc.2.0.0.8" expl="apply premises" proved="true">
167      <proof prover="2"><result status="valid" time="0.053356" steps="103"/></proof>
168      </goal>
169     </transf>
170     </goal>
171     <goal name="example1&#39;vc.2.0.1" expl="asserted formula" proved="true">
172     <proof prover="2"><result status="valid" time="0.101478" steps="303"/></proof>
173     </goal>
174    </transf>
175    </goal>
176    <goal name="example1&#39;vc.2.1" expl="postcondition" proved="true">
177    <proof prover="2"><result status="valid" time="1.345438" steps="6975"/></proof>
178    </goal>
179   </transf>
180   </goal>
181  </transf>
182  </goal>
183  <goal name="example2&#39;vc" expl="VC for example2" proved="true">
184  <transf name="split_vc" proved="true" >
185   <goal name="example2&#39;vc.0" expl="precondition" proved="true">
186   <proof prover="2"><result status="valid" time="0.108956" steps="1659"/></proof>
187   </goal>
188   <goal name="example2&#39;vc.1" expl="postcondition" proved="true">
189   <transf name="assert" proved="true" arg1="let t = log (exp (to_real x) +. exp (to_real y)) in
190 abs (to_real result -. t)
191 &lt;=. ((abs t *. log_error)
192      +. ((-. log (1.0 -. ((exp_error +. exp_error) +. eps)))
193          *. (1.0 +. log_error)))">
194    <goal name="example2&#39;vc.1.0" expl="asserted formula" proved="true">
195    <transf name="assert" proved="true" arg1="abs (to_real result -. log (exp (to_real x) +. exp (to_real y)))
196 &lt;=. ((abs (log (exp (to_real x) +. exp (to_real y))) *. log_error)
197      +. ((-. log (1.0 -. ((exp_error +. exp_error) +. eps)))
198          *. (1.0 +. log_error)))">
199     <goal name="example2&#39;vc.1.0.0" expl="asserted formula" proved="true">
200     <transf name="assert" proved="true" arg1="abs (to_real result -. log (exp (to_real x) +. exp (to_real y)))
201 &lt;=. ((log_error *. abs (log (exp (to_real x) +. exp (to_real y))))
202      +. (((-. log
203               (1.0
204                -. (((((exp_error +. exp_error) +. eps)
205                      *. (exp (to_real x) +. exp (to_real y)))
206                     +. 0.0)
207                    /. (exp (to_real x) +. exp (to_real y)))))
208           *. (1.0 +. log_error))
209          +. 0.0))">
210      <goal name="example2&#39;vc.1.0.0.0" expl="asserted formula" proved="true">
211      <transf name="assert" proved="true" arg1="abs
212 (to_real
213  ((fun (y0:usingle) -&gt; log_approx y0) @ (exp_approx x ++. exp_approx y))
214  -. log (exp (to_real x) +. exp (to_real y)))
215 &lt;=. ((log_error *. abs (log (exp (to_real x) +. exp (to_real y))))
216      +. (((-. log
217               (1.0
218                -. (((((exp_error +. exp_error) +. eps)
219                      *. (exp (to_real x) +. exp (to_real y)))
220                     +. 0.0)
221                    /. (exp (to_real x) +. exp (to_real y)))))
222           *. (1.0 +. log_error))
223          +. 0.0))">
224       <goal name="example2&#39;vc.1.0.0.0.0" expl="asserted formula" proved="true">
225       <transf name="apply" proved="true" arg1="log_single_error_propagation">
226        <goal name="example2&#39;vc.1.0.0.0.0.0" expl="apply premises" proved="true">
227        <transf name="assert" proved="true" arg1="abs
228 (to_real (exp_approx x ++. exp_approx y)
229  -. (exp (to_real x) +. exp (to_real y)))
230 &lt;=. ((((exp_error +. exp_error) +. eps)
231       *. (exp (to_real x) +. exp (to_real y)))
232      +. ((((1.0 +. eps) +. exp_error) *. 0.0)
233          +. (((1.0 +. eps) +. exp_error) *. 0.0)))">
234         <goal name="example2&#39;vc.1.0.0.0.0.0.0" expl="asserted formula" proved="true">
235         <transf name="apply" proved="true" arg1="uadd_single_error_propagation" arg2="with" arg3="exp_approx x,exp_approx y">
236          <goal name="example2&#39;vc.1.0.0.0.0.0.0.0" expl="apply premises" proved="true">
237          <proof prover="2"><result status="valid" time="0.047157" steps="104"/></proof>
238          </goal>
239          <goal name="example2&#39;vc.1.0.0.0.0.0.0.1" expl="apply premises" proved="true">
240          <proof prover="2"><result status="valid" time="0.045597" steps="104"/></proof>
241          </goal>
242          <goal name="example2&#39;vc.1.0.0.0.0.0.0.2" expl="apply premises" proved="true">
243          <proof prover="2"><result status="valid" time="0.126866" steps="804"/></proof>
244          </goal>
245          <goal name="example2&#39;vc.1.0.0.0.0.0.0.3" expl="apply premises" proved="true">
246          <proof prover="2"><result status="valid" time="0.129691" steps="807"/></proof>
247          </goal>
248          <goal name="example2&#39;vc.1.0.0.0.0.0.0.4" expl="apply premises" proved="true">
249          <proof prover="2"><result status="valid" time="0.078660" steps="97"/></proof>
250          </goal>
251          <goal name="example2&#39;vc.1.0.0.0.0.0.0.5" expl="apply premises" proved="true">
252          <proof prover="2"><result status="valid" time="0.073957" steps="97"/></proof>
253          </goal>
254          <goal name="example2&#39;vc.1.0.0.0.0.0.0.6" expl="apply premises" proved="true">
255          <proof prover="2"><result status="valid" time="0.062206" steps="97"/></proof>
256          </goal>
257          <goal name="example2&#39;vc.1.0.0.0.0.0.0.7" expl="apply premises" proved="true">
258          <proof prover="2"><result status="valid" time="0.084683" steps="97"/></proof>
259          </goal>
260          <goal name="example2&#39;vc.1.0.0.0.0.0.0.8" expl="apply premises" proved="true">
261          <proof prover="2"><result status="valid" time="0.071985" steps="97"/></proof>
262          </goal>
263         </transf>
264         </goal>
265         <goal name="example2&#39;vc.1.0.0.0.0.0.1" expl="apply premises" proved="true">
266         <proof prover="2"><result status="valid" time="0.058649" steps="108"/></proof>
267         </goal>
268        </transf>
269        </goal>
270        <goal name="example2&#39;vc.1.0.0.0.0.1" expl="apply premises" proved="true">
271        <proof prover="2"><result status="valid" time="0.293682" steps="1700"/></proof>
272        </goal>
273        <goal name="example2&#39;vc.1.0.0.0.0.2" expl="apply premises" proved="true">
274        <proof prover="2"><result status="valid" time="0.158214" steps="605"/></proof>
275        </goal>
276        <goal name="example2&#39;vc.1.0.0.0.0.3" expl="apply premises" proved="true">
277        <proof prover="2"><result status="valid" time="0.160169" steps="1031"/></proof>
278        </goal>
279        <goal name="example2&#39;vc.1.0.0.0.0.4" expl="apply premises" proved="true">
280        <proof prover="2"><result status="valid" time="0.042031" steps="97"/></proof>
281        </goal>
282       </transf>
283       </goal>
284       <goal name="example2&#39;vc.1.0.0.0.1" expl="asserted formula" proved="true">
285       <proof prover="2"><result status="valid" time="0.342849" steps="2907"/></proof>
286       </goal>
287      </transf>
288      </goal>
289      <goal name="example2&#39;vc.1.0.0.1" expl="asserted formula" proved="true">
290      <proof prover="2"><result status="valid" time="0.449556" steps="4731"/></proof>
291      </goal>
292     </transf>
293     </goal>
294     <goal name="example2&#39;vc.1.0.1" expl="asserted formula" proved="true">
295     <proof prover="2"><result status="valid" time="0.052670" steps="152"/></proof>
296     </goal>
297    </transf>
298    </goal>
299    <goal name="example2&#39;vc.1.1" expl="postcondition" proved="true">
300    <proof prover="2"><result status="valid" time="0.049317" steps="158"/></proof>
301    </goal>
302   </transf>
303   </goal>
304  </transf>
305  </goal>
306  <goal name="example3&#39;vc" expl="VC for example3" proved="true">
307  <transf name="split_vc" proved="true" >
308   <goal name="example3&#39;vc.0" expl="precondition" proved="true">
309   <proof prover="2"><result status="valid" time="0.053312" steps="652"/></proof>
310   </goal>
311   <goal name="example3&#39;vc.1" expl="postcondition" proved="true">
312   <transf name="assert" proved="true" arg1="let t = log2 (to_real x +. to_real y) in
313 abs (to_real result -. t)
314 &lt;=. ((abs t *. log2_error) +. ((-. log2 (1.0 -. eps)) *. (1.0 +. log2_error)))">
315    <goal name="example3&#39;vc.1.0" expl="asserted formula" proved="true">
316    <transf name="assert" proved="true" arg1="abs (to_real result -. log2 (to_real x +. to_real y))
317 &lt;=. ((abs (log2 (to_real x +. to_real y)) *. log2_error)
318      +. ((-. log2 (1.0 -. eps)) *. (1.0 +. log2_error)))">
319     <goal name="example3&#39;vc.1.0.0" expl="asserted formula" proved="true">
320     <transf name="assert" proved="true" arg1="abs (to_real result -. log2 (to_real x +. to_real y))
321 &lt;=. ((log2_error *. abs (log2 (to_real x +. to_real y)))
322      +. (((-. log2
323               (1.0
324                -. (((eps *. abs (to_real x +. to_real y)) +. 0.0)
325                    /. (to_real x +. to_real y))))
326           *. (1.0 +. log2_error))
327          +. 0.0))">
328      <goal name="example3&#39;vc.1.0.0.0" expl="asserted formula" proved="true">
329      <transf name="assert" proved="true" arg1="abs
330 (to_real ((fun (y0:usingle) -&gt; log2_approx y0) @ (x ++. y))
331  -. log2 (to_real x +. to_real y))
332 &lt;=. ((log2_error *. abs (log2 (to_real x +. to_real y)))
333      +. (((-. log2
334               (1.0
335                -. (((eps *. abs (to_real x +. to_real y)) +. 0.0)
336                    /. (to_real x +. to_real y))))
337           *. (1.0 +. log2_error))
338          +. 0.0))">
339       <goal name="example3&#39;vc.1.0.0.0.0" expl="asserted formula" proved="true">
340       <transf name="apply" proved="true" arg1="log2_single_error_propagation">
341        <goal name="example3&#39;vc.1.0.0.0.0.0" expl="apply premises" proved="true">
342        <transf name="assert" proved="true" arg1="abs (to_real (x ++. y) -. (to_real x +. to_real y))
343 &lt;=. (eps *. abs (to_real x +. to_real y))">
344         <goal name="example3&#39;vc.1.0.0.0.0.0.0" expl="asserted formula" proved="true">
345         <proof prover="2"><result status="valid" time="0.117111" steps="845"/></proof>
346         </goal>
347         <goal name="example3&#39;vc.1.0.0.0.0.0.1" expl="apply premises" proved="true">
348         <proof prover="2"><result status="valid" time="0.048219" steps="113"/></proof>
349         </goal>
350        </transf>
351        </goal>
352        <goal name="example3&#39;vc.1.0.0.0.0.1" expl="apply premises" proved="true">
353        <proof prover="2"><result status="valid" time="0.202150" steps="1551"/></proof>
354        </goal>
355        <goal name="example3&#39;vc.1.0.0.0.0.2" expl="apply premises" proved="true">
356        <proof prover="2"><result status="valid" time="0.068201" steps="96"/></proof>
357        </goal>
358        <goal name="example3&#39;vc.1.0.0.0.0.3" expl="apply premises" proved="true">
359        <proof prover="2"><result status="valid" time="0.049889" steps="95"/></proof>
360        </goal>
361        <goal name="example3&#39;vc.1.0.0.0.0.4" expl="apply premises" proved="true">
362        <proof prover="2"><result status="valid" time="0.076572" steps="92"/></proof>
363        </goal>
364       </transf>
365       </goal>
366       <goal name="example3&#39;vc.1.0.0.0.1" expl="asserted formula" proved="true">
367       <proof prover="2"><result status="valid" time="0.318865" steps="3195"/></proof>
368       </goal>
369      </transf>
370      </goal>
371      <goal name="example3&#39;vc.1.0.0.1" expl="asserted formula" proved="true">
372      <proof prover="2"><result status="valid" time="0.059172" steps="161"/></proof>
373      </goal>
374     </transf>
375     </goal>
376     <goal name="example3&#39;vc.1.0.1" expl="asserted formula" proved="true">
377     <proof prover="2"><result status="valid" time="0.044173" steps="148"/></proof>
378     </goal>
379    </transf>
380    </goal>
381    <goal name="example3&#39;vc.1.1" expl="postcondition" proved="true">
382    <proof prover="2"><result status="valid" time="0.054142" steps="140"/></proof>
383    </goal>
384   </transf>
385   </goal>
386  </transf>
387  </goal>
388  <goal name="example4&#39;vc" expl="VC for example4" proved="true">
389  <transf name="split_vc" proved="true" >
390   <goal name="example4&#39;vc.0" expl="precondition" proved="true">
391   <proof prover="2"><result status="valid" time="0.044697" steps="652"/></proof>
392   </goal>
393   <goal name="example4&#39;vc.1" expl="postcondition" proved="true">
394   <transf name="assert" proved="true" arg1="let t = log10 (to_real x +. to_real y) in
395 abs (to_real result -. t)
396 &lt;=. ((abs t *. log10_error)
397      +. ((-. log10 (1.0 -. eps)) *. (1.0 +. log10_error)))">
398    <goal name="example4&#39;vc.1.0" expl="asserted formula" proved="true">
399    <transf name="assert" proved="true" arg1="abs (to_real result -. log10 (to_real x +. to_real y))
400 &lt;=. ((abs (log10 (to_real x +. to_real y)) *. log10_error)
401      +. ((-. log10 (1.0 -. eps)) *. (1.0 +. log10_error)))">
402     <goal name="example4&#39;vc.1.0.0" expl="asserted formula" proved="true">
403     <transf name="assert" proved="true" arg1="abs (to_real result -. log10 (to_real x +. to_real y))
404 &lt;=. ((log10_error *. abs (log10 (to_real x +. to_real y)))
405      +. (((-. log10
406               (1.0
407                -. (((eps *. abs (to_real x +. to_real y)) +. 0.0)
408                    /. (to_real x +. to_real y))))
409           *. (1.0 +. log10_error))
410          +. 0.0))">
411      <goal name="example4&#39;vc.1.0.0.0" expl="asserted formula" proved="true">
412      <transf name="assert" proved="true" arg1="abs
413 (to_real ((fun (y0:usingle) -&gt; log10_approx y0) @ (x ++. y))
414  -. log10 (to_real x +. to_real y))
415 &lt;=. ((log10_error *. abs (log10 (to_real x +. to_real y)))
416      +. (((-. log10
417               (1.0
418                -. (((eps *. abs (to_real x +. to_real y)) +. 0.0)
419                    /. (to_real x +. to_real y))))
420           *. (1.0 +. log10_error))
421          +. 0.0))">
422       <goal name="example4&#39;vc.1.0.0.0.0" expl="asserted formula" proved="true">
423       <transf name="apply" proved="true" arg1="log10_single_error_propagation">
424        <goal name="example4&#39;vc.1.0.0.0.0.0" expl="apply premises" proved="true">
425        <transf name="assert" proved="true" arg1="abs (to_real (x ++. y) -. (to_real x +. to_real y))
426 &lt;=. (eps *. abs (to_real x +. to_real y))">
427         <goal name="example4&#39;vc.1.0.0.0.0.0.0" expl="asserted formula" proved="true">
428         <proof prover="2"><result status="valid" time="0.153891" steps="849"/></proof>
429         </goal>
430         <goal name="example4&#39;vc.1.0.0.0.0.0.1" expl="apply premises" proved="true">
431         <proof prover="2"><result status="valid" time="0.055530" steps="113"/></proof>
432         </goal>
433        </transf>
434        </goal>
435        <goal name="example4&#39;vc.1.0.0.0.0.1" expl="apply premises" proved="true">
436        <proof prover="2"><result status="valid" time="0.204980" steps="1545"/></proof>
437        </goal>
438        <goal name="example4&#39;vc.1.0.0.0.0.2" expl="apply premises" proved="true">
439        <proof prover="2"><result status="valid" time="0.066154" steps="96"/></proof>
440        </goal>
441        <goal name="example4&#39;vc.1.0.0.0.0.3" expl="apply premises" proved="true">
442        <proof prover="2"><result status="valid" time="0.060541" steps="95"/></proof>
443        </goal>
444        <goal name="example4&#39;vc.1.0.0.0.0.4" expl="apply premises" proved="true">
445        <proof prover="2"><result status="valid" time="0.069524" steps="92"/></proof>
446        </goal>
447       </transf>
448       </goal>
449       <goal name="example4&#39;vc.1.0.0.0.1" expl="asserted formula" proved="true">
450       <proof prover="2"><result status="valid" time="0.290082" steps="3175"/></proof>
451       </goal>
452      </transf>
453      </goal>
454      <goal name="example4&#39;vc.1.0.0.1" expl="asserted formula" proved="true">
455      <proof prover="2"><result status="valid" time="0.056574" steps="159"/></proof>
456      </goal>
457     </transf>
458     </goal>
459     <goal name="example4&#39;vc.1.0.1" expl="asserted formula" proved="true">
460     <proof prover="2"><result status="valid" time="0.048803" steps="148"/></proof>
461     </goal>
462    </transf>
463    </goal>
464    <goal name="example4&#39;vc.1.1" expl="postcondition" proved="true">
465    <proof prover="2"><result status="valid" time="0.046835" steps="140"/></proof>
466    </goal>
467   </transf>
468   </goal>
469  </transf>
470  </goal>
471 </theory>
472 <theory name="ExpLogDouble" proved="true">
473  <goal name="example1&#39;vc" expl="VC for example1" proved="true">
474  <transf name="split_vc" proved="true" >
475   <goal name="example1&#39;vc.0" expl="precondition" proved="true">
476   <proof prover="2"><result status="valid" time="0.054807" steps="867"/></proof>
477   </goal>
478   <goal name="example1&#39;vc.1" expl="precondition" proved="true">
479   <proof prover="2"><result status="valid" time="0.075010" steps="1020"/></proof>
480   </goal>
481   <goal name="example1&#39;vc.2" expl="postcondition" proved="true">
482   <transf name="assert" proved="true" arg1="let t = log (exp (to_real y)) in
483 let t1 = log (exp (to_real x)) in
484 let t2 =
485   ((1.0 +. eps) +. log_error)
486   *. ((-. log (1.0 -. exp_error)) *. (1.0 +. log_error))
488 abs (to_real result -. (t1 +. t))
489 &lt;=. ((((log_error +. log_error) +. eps) *. (abs t1 +. abs t)) +. (t2 +. t2))">
490    <goal name="example1&#39;vc.2.0" expl="asserted formula" proved="true">
491    <transf name="assert" proved="true" arg1="abs (to_real result -. (log (exp (to_real x)) +. log (exp (to_real y))))
492 &lt;=. ((((log_error +. log_error) +. eps)
493       *. (abs (log (exp (to_real x))) +. abs (log (exp (to_real y)))))
494      +. ((((1.0 +. eps) +. log_error)
495           *. ((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)))
496          +. (((1.0 +. eps) +. log_error)
497              *. ((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)))))">
498     <goal name="example1&#39;vc.2.0.0" expl="asserted formula" proved="true">
499     <transf name="apply" proved="true" arg1="uadd_double_error_propagation" arg2="with" arg3="log_approx (exp_approx x),log_approx (exp_approx y)">
500      <goal name="example1&#39;vc.2.0.0.0" expl="apply premises" proved="true">
501      <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx x)) -. log (exp (to_real x)))
502 &lt;=. ((abs (log (exp (to_real x))) *. log_error)
503      +. ((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)))">
504       <goal name="example1&#39;vc.2.0.0.0.0" expl="asserted formula" proved="true">
505       <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx x)) -. log (exp (to_real x)))
506 &lt;=. ((log_error *. abs (log (exp (to_real x))))
507      +. (((-. log
508               (1.0
509                -. (((exp_error *. exp (to_real x)) +. 0.0) /. exp (to_real x))))
510           *. (1.0 +. log_error))
511          +. 0.0))">
512        <goal name="example1&#39;vc.2.0.0.0.0.0" expl="asserted formula" proved="true">
513        <transf name="assert" proved="true" arg1="abs
514 (to_real ((fun (y0:udouble) -&gt; log_approx y0) @ exp_approx x)
515  -. log (exp (to_real x)))
516 &lt;=. ((log_error *. abs (log (exp (to_real x))))
517      +. (((-. log
518               (1.0
519                -. (((exp_error *. exp (to_real x)) +. 0.0) /. exp (to_real x))))
520           *. (1.0 +. log_error))
521          +. 0.0))">
522         <goal name="example1&#39;vc.2.0.0.0.0.0.0" expl="asserted formula" proved="true">
523         <transf name="apply" proved="true" arg1="log_double_error_propagation">
524          <goal name="example1&#39;vc.2.0.0.0.0.0.0.0" expl="apply premises" proved="true">
525          <proof prover="2"><result status="valid" time="0.043651" steps="108"/></proof>
526          </goal>
527          <goal name="example1&#39;vc.2.0.0.0.0.0.0.1" expl="apply premises" proved="true">
528          <proof prover="2"><result status="valid" time="0.358678" steps="1738"/></proof>
529          </goal>
530          <goal name="example1&#39;vc.2.0.0.0.0.0.0.2" expl="apply premises" proved="true">
531          <proof prover="2"><result status="valid" time="0.123091" steps="956"/></proof>
532          </goal>
533          <goal name="example1&#39;vc.2.0.0.0.0.0.0.3" expl="apply premises" proved="true">
534          <proof prover="2"><result status="valid" time="0.286920" steps="1104"/></proof>
535          </goal>
536          <goal name="example1&#39;vc.2.0.0.0.0.0.0.4" expl="apply premises" proved="true">
537          <proof prover="2"><result status="valid" time="0.058031" steps="103"/></proof>
538          </goal>
539         </transf>
540         </goal>
541         <goal name="example1&#39;vc.2.0.0.0.0.0.1" expl="asserted formula" proved="true">
542         <proof prover="2"><result status="valid" time="0.396684" steps="2722"/></proof>
543         </goal>
544        </transf>
545        </goal>
546        <goal name="example1&#39;vc.2.0.0.0.0.1" expl="asserted formula" proved="true">
547        <proof prover="2"><result status="valid" time="0.682269" steps="4517"/></proof>
548        </goal>
549       </transf>
550       </goal>
551       <goal name="example1&#39;vc.2.0.0.0.1" expl="apply premises" proved="true">
552       <proof prover="2"><result status="valid" time="0.071577" steps="134"/></proof>
553       </goal>
554      </transf>
555      </goal>
556      <goal name="example1&#39;vc.2.0.0.1" expl="apply premises" proved="true">
557      <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx y)) -. log (exp (to_real y)))
558 &lt;=. ((abs (log (exp (to_real y))) *. log_error)
559      +. ((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)))">
560       <goal name="example1&#39;vc.2.0.0.1.0" expl="asserted formula" proved="true">
561       <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx y)) -. log (exp (to_real y)))
562 &lt;=. ((log_error *. abs (log (exp (to_real y))))
563      +. (((-. log
564               (1.0
565                -. (((exp_error *. exp (to_real y)) +. 0.0) /. exp (to_real y))))
566           *. (1.0 +. log_error))
567          +. 0.0))">
568        <goal name="example1&#39;vc.2.0.0.1.0.0" expl="asserted formula" proved="true">
569        <transf name="assert" proved="true" arg1="abs
570 (to_real ((fun (y0:udouble) -&gt; log_approx y0) @ exp_approx y)
571  -. log (exp (to_real y)))
572 &lt;=. ((log_error *. abs (log (exp (to_real y))))
573      +. (((-. log
574               (1.0
575                -. (((exp_error *. exp (to_real y)) +. 0.0) /. exp (to_real y))))
576           *. (1.0 +. log_error))
577          +. 0.0))">
578         <goal name="example1&#39;vc.2.0.0.1.0.0.0" expl="asserted formula" proved="true">
579         <transf name="apply" proved="true" arg1="log_double_error_propagation">
580          <goal name="example1&#39;vc.2.0.0.1.0.0.0.0" expl="apply premises" proved="true">
581          <proof prover="2"><result status="valid" time="0.052347" steps="108"/></proof>
582          </goal>
583          <goal name="example1&#39;vc.2.0.0.1.0.0.0.1" expl="apply premises" proved="true">
584          <proof prover="2"><result status="valid" time="0.241788" steps="1753"/></proof>
585          </goal>
586          <goal name="example1&#39;vc.2.0.0.1.0.0.0.2" expl="apply premises" proved="true">
587          <proof prover="2"><result status="valid" time="0.181126" steps="952"/></proof>
588          </goal>
589          <goal name="example1&#39;vc.2.0.0.1.0.0.0.3" expl="apply premises" proved="true">
590          <proof prover="2"><result status="valid" time="0.191433" steps="1044"/></proof>
591          </goal>
592          <goal name="example1&#39;vc.2.0.0.1.0.0.0.4" expl="apply premises" proved="true">
593          <proof prover="2"><result status="valid" time="0.077926" steps="103"/></proof>
594          </goal>
595         </transf>
596         </goal>
597         <goal name="example1&#39;vc.2.0.0.1.0.0.1" expl="asserted formula" proved="true">
598         <proof prover="2"><result status="valid" time="0.412397" steps="2444"/></proof>
599         </goal>
600        </transf>
601        </goal>
602        <goal name="example1&#39;vc.2.0.0.1.0.1" expl="asserted formula" proved="true">
603        <proof prover="2"><result status="valid" time="0.587672" steps="5061"/></proof>
604        </goal>
605       </transf>
606       </goal>
607       <goal name="example1&#39;vc.2.0.0.1.1" expl="apply premises" proved="true">
608       <proof prover="2"><result status="valid" time="0.056516" steps="134"/></proof>
609       </goal>
610      </transf>
611      </goal>
612      <goal name="example1&#39;vc.2.0.0.2" expl="apply premises" proved="true">
613      <proof prover="2"><result status="valid" time="0.058089" steps="110"/></proof>
614      </goal>
615      <goal name="example1&#39;vc.2.0.0.3" expl="apply premises" proved="true">
616      <proof prover="2"><result status="valid" time="0.056199" steps="110"/></proof>
617      </goal>
618      <goal name="example1&#39;vc.2.0.0.4" expl="apply premises" proved="true">
619      <proof prover="2"><result status="valid" time="0.045904" steps="103"/></proof>
620      </goal>
621      <goal name="example1&#39;vc.2.0.0.5" expl="apply premises" proved="true">
622      <proof prover="2"><result status="valid" time="0.042505" steps="103"/></proof>
623      </goal>
624      <goal name="example1&#39;vc.2.0.0.6" expl="apply premises" proved="true">
625      <proof prover="2"><result status="valid" time="0.117590" steps="649"/></proof>
626      </goal>
627      <goal name="example1&#39;vc.2.0.0.7" expl="apply premises" proved="true">
628      <proof prover="2"><result status="valid" time="0.129957" steps="649"/></proof>
629      </goal>
630      <goal name="example1&#39;vc.2.0.0.8" expl="apply premises" proved="true">
631      <proof prover="2"><result status="valid" time="0.046690" steps="103"/></proof>
632      </goal>
633     </transf>
634     </goal>
635     <goal name="example1&#39;vc.2.0.1" expl="asserted formula" proved="true">
636     <proof prover="2"><result status="valid" time="0.090952" steps="303"/></proof>
637     </goal>
638    </transf>
639    </goal>
640    <goal name="example1&#39;vc.2.1" expl="postcondition" proved="true">
641    <proof prover="2"><result status="valid" time="1.264545" steps="6995"/></proof>
642    </goal>
643   </transf>
644   </goal>
645  </transf>
646  </goal>
647  <goal name="example2&#39;vc" expl="VC for example2" proved="true">
648  <transf name="split_vc" proved="true" >
649   <goal name="example2&#39;vc.0" expl="precondition" proved="true">
650   <proof prover="2"><result status="valid" time="0.104003" steps="1656"/></proof>
651   </goal>
652   <goal name="example2&#39;vc.1" expl="postcondition" proved="true">
653   <transf name="assert" proved="true" arg1="let t = log (exp (to_real x) +. exp (to_real y)) in
654 abs (to_real result -. t)
655 &lt;=. ((abs t *. log_error)
656      +. ((-. log (1.0 -. ((exp_error +. exp_error) +. eps)))
657          *. (1.0 +. log_error)))">
658    <goal name="example2&#39;vc.1.0" expl="asserted formula" proved="true">
659    <transf name="assert" proved="true" arg1="abs (to_real result -. log (exp (to_real x) +. exp (to_real y)))
660 &lt;=. ((abs (log (exp (to_real x) +. exp (to_real y))) *. log_error)
661      +. ((-. log (1.0 -. ((exp_error +. exp_error) +. eps)))
662          *. (1.0 +. log_error)))">
663     <goal name="example2&#39;vc.1.0.0" expl="asserted formula" proved="true">
664     <transf name="assert" proved="true" arg1="abs (to_real result -. log (exp (to_real x) +. exp (to_real y)))
665 &lt;=. ((log_error *. abs (log (exp (to_real x) +. exp (to_real y))))
666      +. (((-. log
667               (1.0
668                -. (((((exp_error +. exp_error) +. eps)
669                      *. (exp (to_real x) +. exp (to_real y)))
670                     +. 0.0)
671                    /. (exp (to_real x) +. exp (to_real y)))))
672           *. (1.0 +. log_error))
673          +. 0.0))">
674      <goal name="example2&#39;vc.1.0.0.0" expl="asserted formula" proved="true">
675      <transf name="assert" proved="true" arg1="abs
676 (to_real
677  ((fun (y0:udouble) -&gt; log_approx y0) @ (exp_approx x ++. exp_approx y))
678  -. log (exp (to_real x) +. exp (to_real y)))
679 &lt;=. ((log_error *. abs (log (exp (to_real x) +. exp (to_real y))))
680      +. (((-. log
681               (1.0
682                -. (((((exp_error +. exp_error) +. eps)
683                      *. (exp (to_real x) +. exp (to_real y)))
684                     +. 0.0)
685                    /. (exp (to_real x) +. exp (to_real y)))))
686           *. (1.0 +. log_error))
687          +. 0.0))">
688       <goal name="example2&#39;vc.1.0.0.0.0" expl="asserted formula" proved="true">
689       <transf name="apply" proved="true" arg1="log_double_error_propagation">
690        <goal name="example2&#39;vc.1.0.0.0.0.0" expl="apply premises" proved="true">
691        <transf name="assert" proved="true" arg1="abs
692 (to_real (exp_approx x ++. exp_approx y)
693  -. (exp (to_real x) +. exp (to_real y)))
694 &lt;=. ((((exp_error +. exp_error) +. eps)
695       *. (exp (to_real x) +. exp (to_real y)))
696      +. ((((1.0 +. eps) +. exp_error) *. 0.0)
697          +. (((1.0 +. eps) +. exp_error) *. 0.0)))">
698         <goal name="example2&#39;vc.1.0.0.0.0.0.0" expl="asserted formula" proved="true">
699         <transf name="apply" proved="true" arg1="uadd_double_error_propagation" arg2="with" arg3="exp_approx x,exp_approx y">
700          <goal name="example2&#39;vc.1.0.0.0.0.0.0.0" expl="apply premises" proved="true">
701          <proof prover="2"><result status="valid" time="0.041392" steps="104"/></proof>
702          </goal>
703          <goal name="example2&#39;vc.1.0.0.0.0.0.0.1" expl="apply premises" proved="true">
704          <proof prover="2"><result status="valid" time="0.060612" steps="104"/></proof>
705          </goal>
706          <goal name="example2&#39;vc.1.0.0.0.0.0.0.2" expl="apply premises" proved="true">
707          <proof prover="2"><result status="valid" time="0.151292" steps="806"/></proof>
708          </goal>
709          <goal name="example2&#39;vc.1.0.0.0.0.0.0.3" expl="apply premises" proved="true">
710          <proof prover="2"><result status="valid" time="0.199235" steps="810"/></proof>
711          </goal>
712          <goal name="example2&#39;vc.1.0.0.0.0.0.0.4" expl="apply premises" proved="true">
713          <proof prover="2"><result status="valid" time="0.071313" steps="97"/></proof>
714          </goal>
715          <goal name="example2&#39;vc.1.0.0.0.0.0.0.5" expl="apply premises" proved="true">
716          <proof prover="2"><result status="valid" time="0.077320" steps="97"/></proof>
717          </goal>
718          <goal name="example2&#39;vc.1.0.0.0.0.0.0.6" expl="apply premises" proved="true">
719          <proof prover="2"><result status="valid" time="0.091780" steps="97"/></proof>
720          </goal>
721          <goal name="example2&#39;vc.1.0.0.0.0.0.0.7" expl="apply premises" proved="true">
722          <proof prover="2"><result status="valid" time="0.053089" steps="97"/></proof>
723          </goal>
724          <goal name="example2&#39;vc.1.0.0.0.0.0.0.8" expl="apply premises" proved="true">
725          <proof prover="2"><result status="valid" time="0.054087" steps="97"/></proof>
726          </goal>
727         </transf>
728         </goal>
729         <goal name="example2&#39;vc.1.0.0.0.0.0.1" expl="apply premises" proved="true">
730         <proof prover="2"><result status="valid" time="0.058522" steps="108"/></proof>
731         </goal>
732        </transf>
733        </goal>
734        <goal name="example2&#39;vc.1.0.0.0.0.1" expl="apply premises" proved="true">
735        <proof prover="2"><result status="valid" time="0.244545" steps="1697"/></proof>
736        </goal>
737        <goal name="example2&#39;vc.1.0.0.0.0.2" expl="apply premises" proved="true">
738        <proof prover="2"><result status="valid" time="0.167142" steps="605"/></proof>
739        </goal>
740        <goal name="example2&#39;vc.1.0.0.0.0.3" expl="apply premises" proved="true">
741        <proof prover="2"><result status="valid" time="0.222462" steps="1030"/></proof>
742        </goal>
743        <goal name="example2&#39;vc.1.0.0.0.0.4" expl="apply premises" proved="true">
744        <proof prover="2"><result status="valid" time="0.037568" steps="97"/></proof>
745        </goal>
746       </transf>
747       </goal>
748       <goal name="example2&#39;vc.1.0.0.0.1" expl="asserted formula" proved="true">
749       <proof prover="2"><result status="valid" time="0.368659" steps="2891"/></proof>
750       </goal>
751      </transf>
752      </goal>
753      <goal name="example2&#39;vc.1.0.0.1" expl="asserted formula" proved="true">
754      <proof prover="2"><result status="valid" time="0.488205" steps="4729"/></proof>
755      </goal>
756     </transf>
757     </goal>
758     <goal name="example2&#39;vc.1.0.1" expl="asserted formula" proved="true">
759     <proof prover="2"><result status="valid" time="0.062153" steps="152"/></proof>
760     </goal>
761    </transf>
762    </goal>
763    <goal name="example2&#39;vc.1.1" expl="postcondition" proved="true">
764    <proof prover="2"><result status="valid" time="0.069773" steps="158"/></proof>
765    </goal>
766   </transf>
767   </goal>
768  </transf>
769  </goal>
770  <goal name="example3&#39;vc" expl="VC for example3" proved="true">
771  <transf name="split_vc" proved="true" >
772   <goal name="example3&#39;vc.0" expl="precondition" proved="true">
773   <proof prover="2"><result status="valid" time="0.044315" steps="652"/></proof>
774   </goal>
775   <goal name="example3&#39;vc.1" expl="postcondition" proved="true">
776   <transf name="assert" proved="true" arg1="let t = log2 (to_real x +. to_real y) in
777 abs (to_real result -. t)
778 &lt;=. ((abs t *. log2_error) +. ((-. log2 (1.0 -. eps)) *. (1.0 +. log2_error)))">
779    <goal name="example3&#39;vc.1.0" expl="asserted formula" proved="true">
780    <transf name="assert" proved="true" arg1="abs (to_real result -. log2 (to_real x +. to_real y))
781 &lt;=. ((abs (log2 (to_real x +. to_real y)) *. log2_error)
782      +. ((-. log2 (1.0 -. eps)) *. (1.0 +. log2_error)))">
783     <goal name="example3&#39;vc.1.0.0" expl="asserted formula" proved="true">
784     <transf name="assert" proved="true" arg1="abs (to_real result -. log2 (to_real x +. to_real y))
785 &lt;=. ((log2_error *. abs (log2 (to_real x +. to_real y)))
786      +. (((-. log2
787               (1.0
788                -. (((eps *. abs (to_real x +. to_real y)) +. 0.0)
789                    /. (to_real x +. to_real y))))
790           *. (1.0 +. log2_error))
791          +. 0.0))">
792      <goal name="example3&#39;vc.1.0.0.0" expl="asserted formula" proved="true">
793      <transf name="assert" proved="true" arg1="abs
794 (to_real ((fun (y0:udouble) -&gt; log2_approx y0) @ (x ++. y))
795  -. log2 (to_real x +. to_real y))
796 &lt;=. ((log2_error *. abs (log2 (to_real x +. to_real y)))
797      +. (((-. log2
798               (1.0
799                -. (((eps *. abs (to_real x +. to_real y)) +. 0.0)
800                    /. (to_real x +. to_real y))))
801           *. (1.0 +. log2_error))
802          +. 0.0))">
803       <goal name="example3&#39;vc.1.0.0.0.0" expl="asserted formula" proved="true">
804       <transf name="apply" proved="true" arg1="log2_double_error_propagation">
805        <goal name="example3&#39;vc.1.0.0.0.0.0" expl="apply premises" proved="true">
806        <transf name="assert" proved="true" arg1="abs (to_real (x ++. y) -. (to_real x +. to_real y))
807 &lt;=. (eps *. abs (to_real x +. to_real y))">
808         <goal name="example3&#39;vc.1.0.0.0.0.0.0" expl="asserted formula" proved="true">
809         <proof prover="2"><result status="valid" time="0.117193" steps="846"/></proof>
810         </goal>
811         <goal name="example3&#39;vc.1.0.0.0.0.0.1" expl="apply premises" proved="true">
812         <proof prover="2"><result status="valid" time="0.047354" steps="113"/></proof>
813         </goal>
814        </transf>
815        </goal>
816        <goal name="example3&#39;vc.1.0.0.0.0.1" expl="apply premises" proved="true">
817        <proof prover="2"><result status="valid" time="0.227336" steps="1544"/></proof>
818        </goal>
819        <goal name="example3&#39;vc.1.0.0.0.0.2" expl="apply premises" proved="true">
820        <proof prover="2"><result status="valid" time="0.076293" steps="96"/></proof>
821        </goal>
822        <goal name="example3&#39;vc.1.0.0.0.0.3" expl="apply premises" proved="true">
823        <proof prover="2"><result status="valid" time="0.051523" steps="95"/></proof>
824        </goal>
825        <goal name="example3&#39;vc.1.0.0.0.0.4" expl="apply premises" proved="true">
826        <proof prover="2"><result status="valid" time="0.073888" steps="92"/></proof>
827        </goal>
828       </transf>
829       </goal>
830       <goal name="example3&#39;vc.1.0.0.0.1" expl="asserted formula" proved="true">
831       <proof prover="2"><result status="valid" time="0.316832" steps="3192"/></proof>
832       </goal>
833      </transf>
834      </goal>
835      <goal name="example3&#39;vc.1.0.0.1" expl="asserted formula" proved="true">
836      <proof prover="2"><result status="valid" time="0.086738" steps="161"/></proof>
837      </goal>
838     </transf>
839     </goal>
840     <goal name="example3&#39;vc.1.0.1" expl="asserted formula" proved="true">
841     <proof prover="2"><result status="valid" time="0.053101" steps="148"/></proof>
842     </goal>
843    </transf>
844    </goal>
845    <goal name="example3&#39;vc.1.1" expl="postcondition" proved="true">
846    <proof prover="2"><result status="valid" time="0.048528" steps="140"/></proof>
847    </goal>
848   </transf>
849   </goal>
850  </transf>
851  </goal>
852  <goal name="example4&#39;vc" expl="VC for example4" proved="true">
853  <transf name="split_vc" proved="true" >
854   <goal name="example4&#39;vc.0" expl="precondition" proved="true">
855   <proof prover="2"><result status="valid" time="0.160185" steps="652"/></proof>
856   </goal>
857   <goal name="example4&#39;vc.1" expl="postcondition" proved="true">
858   <transf name="assert" proved="true" arg1="let t = log10 (to_real x +. to_real y) in
859 abs (to_real result -. t)
860 &lt;=. ((abs t *. log10_error)
861      +. ((-. log10 (1.0 -. eps)) *. (1.0 +. log10_error)))">
862    <goal name="example4&#39;vc.1.0" expl="asserted formula" proved="true">
863    <transf name="assert" proved="true" arg1="abs (to_real result -. log10 (to_real x +. to_real y))
864 &lt;=. ((abs (log10 (to_real x +. to_real y)) *. log10_error)
865      +. ((-. log10 (1.0 -. eps)) *. (1.0 +. log10_error)))">
866     <goal name="example4&#39;vc.1.0.0" expl="asserted formula" proved="true">
867     <transf name="assert" proved="true" arg1="abs (to_real result -. log10 (to_real x +. to_real y))
868 &lt;=. ((log10_error *. abs (log10 (to_real x +. to_real y)))
869      +. (((-. log10
870               (1.0
871                -. (((eps *. abs (to_real x +. to_real y)) +. 0.0)
872                    /. (to_real x +. to_real y))))
873           *. (1.0 +. log10_error))
874          +. 0.0))">
875      <goal name="example4&#39;vc.1.0.0.0" expl="asserted formula" proved="true">
876      <transf name="assert" proved="true" arg1="abs
877 (to_real ((fun (y0:udouble) -&gt; log10_approx y0) @ (x ++. y))
878  -. log10 (to_real x +. to_real y))
879 &lt;=. ((log10_error *. abs (log10 (to_real x +. to_real y)))
880      +. (((-. log10
881               (1.0
882                -. (((eps *. abs (to_real x +. to_real y)) +. 0.0)
883                    /. (to_real x +. to_real y))))
884           *. (1.0 +. log10_error))
885          +. 0.0))">
886       <goal name="example4&#39;vc.1.0.0.0.0" expl="asserted formula" proved="true">
887       <transf name="apply" proved="true" arg1="log10_double_error_propagation">
888        <goal name="example4&#39;vc.1.0.0.0.0.0" expl="apply premises" proved="true">
889        <transf name="assert" proved="true" arg1="abs (to_real (x ++. y) -. (to_real x +. to_real y))
890 &lt;=. (eps *. abs (to_real x +. to_real y))">
891         <goal name="example4&#39;vc.1.0.0.0.0.0.0" expl="asserted formula" proved="true">
892         <proof prover="2"><result status="valid" time="0.129682" steps="849"/></proof>
893         </goal>
894         <goal name="example4&#39;vc.1.0.0.0.0.0.1" expl="apply premises" proved="true">
895         <proof prover="2"><result status="valid" time="0.052425" steps="113"/></proof>
896         </goal>
897        </transf>
898        </goal>
899        <goal name="example4&#39;vc.1.0.0.0.0.1" expl="apply premises" proved="true">
900        <proof prover="2"><result status="valid" time="0.216874" steps="1558"/></proof>
901        </goal>
902        <goal name="example4&#39;vc.1.0.0.0.0.2" expl="apply premises" proved="true">
903        <proof prover="2"><result status="valid" time="0.079901" steps="96"/></proof>
904        </goal>
905        <goal name="example4&#39;vc.1.0.0.0.0.3" expl="apply premises" proved="true">
906        <proof prover="2"><result status="valid" time="0.054171" steps="95"/></proof>
907        </goal>
908        <goal name="example4&#39;vc.1.0.0.0.0.4" expl="apply premises" proved="true">
909        <proof prover="2"><result status="valid" time="0.051552" steps="92"/></proof>
910        </goal>
911       </transf>
912       </goal>
913       <goal name="example4&#39;vc.1.0.0.0.1" expl="asserted formula" proved="true">
914       <proof prover="2"><result status="valid" time="0.379000" steps="3211"/></proof>
915       </goal>
916      </transf>
917      </goal>
918      <goal name="example4&#39;vc.1.0.0.1" expl="asserted formula" proved="true">
919      <proof prover="2"><result status="valid" time="0.094588" steps="159"/></proof>
920      </goal>
921     </transf>
922     </goal>
923     <goal name="example4&#39;vc.1.0.1" expl="asserted formula" proved="true">
924     <proof prover="2"><result status="valid" time="0.061902" steps="148"/></proof>
925     </goal>
926    </transf>
927    </goal>
928    <goal name="example4&#39;vc.1.1" expl="postcondition" proved="true">
929    <proof prover="2"><result status="valid" time="0.059584" steps="140"/></proof>
930    </goal>
931   </transf>
932   </goal>
933  </transf>
934  </goal>
935 </theory>
936 </file>
937 </why3session>