Update bench.
[why3.git] / examples / numeric / exp_log / why3session.xml
blob49bd751d13e6c17efca509f164f257c69cc66043
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
3 "https://www.why3.org/why3session.dtd">
4 <why3session shape_version="6">
5 <prover id="0" name="Alt-Ergo" version="2.5.4" alternative="FPA" timelimit="5" steplimit="0" memlimit="2000"/>
6 <file format="whyml" proved="true">
7 <path name=".."/><path name="exp_log.mlw"/>
8 <theory name="ExpLogSingle" proved="true">
9  <goal name="example1&#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="0"><result status="valid" time="0.099935" steps="869"/></proof>
13   </goal>
14   <goal name="example1&#39;vc.1" expl="precondition" proved="true">
15   <proof prover="0"><result status="valid" time="0.133523" steps="1138"/></proof>
16   </goal>
17   <goal name="example1&#39;vc.2" expl="postcondition" proved="true">
18   <transf name="assert" proved="true" arg1="let t3 = log (exp (to_real y)) in
19 let t4 = log (exp (to_real x)) in
20 let t5 =
21   ((1.0 +. eps) +. log_error)
22   *. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)) +. log_cst_error)
24 abs (to_real result -. (t4 +. t3))
25 &lt;=. ((((log_error +. log_error) +. eps) *. (abs t4 +. abs t3)) +. (t5 +. t5))">
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               +. log_cst_error))
33          +. (((1.0 +. eps) +. log_error)
34              *. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error))
35                  +. log_cst_error))))">
36     <goal name="example1&#39;vc.2.0.0" expl="asserted formula" proved="true">
37     <transf name="apply" proved="true" arg1="uadd_single_error_propagation" arg2="with" arg3="log_approx (exp_approx x),log_approx (exp_approx y)">
38      <goal name="example1&#39;vc.2.0.0.0" expl="apply premises" proved="true">
39      <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx x)) -. log (exp (to_real x)))
40 &lt;=. ((abs (log (exp (to_real x))) *. log_error)
41      +. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)) +. log_cst_error))">
42       <goal name="example1&#39;vc.2.0.0.0.0" expl="asserted formula" proved="true">
43       <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx x)) -. log (exp (to_real x)))
44 &lt;=. ((log_error *. abs (log (exp (to_real x))))
45      +. (((-. log
46               (1.0
47                -. (((exp_error *. exp (to_real x)) +. 0.0) /. exp (to_real x))))
48           *. (1.0 +. log_error))
49          +. log_cst_error))">
50        <goal name="example1&#39;vc.2.0.0.0.0.0" expl="asserted formula" proved="true">
51        <transf name="apply" proved="true" arg1="log_single_error_propagation" arg2="with" arg3="exp_approx x">
52         <goal name="example1&#39;vc.2.0.0.0.0.0.0" expl="apply premises" proved="true">
53         <proof prover="0"><result status="valid" time="0.059324" steps="119"/></proof>
54         </goal>
55         <goal name="example1&#39;vc.2.0.0.0.0.0.1" expl="apply premises" proved="true">
56         <proof prover="0"><result status="valid" time="0.066218" steps="139"/></proof>
57         </goal>
58         <goal name="example1&#39;vc.2.0.0.0.0.0.2" expl="apply premises" proved="true">
59         <proof prover="0"><result status="valid" time="0.155626" steps="1123"/></proof>
60         </goal>
61         <goal name="example1&#39;vc.2.0.0.0.0.0.3" expl="apply premises" proved="true">
62         <proof prover="0"><result status="valid" time="0.292973" steps="1211"/></proof>
63         </goal>
64         <goal name="example1&#39;vc.2.0.0.0.0.0.4" expl="apply premises" proved="true">
65         <proof prover="0"><result status="valid" time="0.055604" steps="113"/></proof>
66         </goal>
67        </transf>
68        </goal>
69        <goal name="example1&#39;vc.2.0.0.0.0.1" expl="asserted formula" proved="true">
70        <proof prover="0"><result status="valid" time="1.919679" steps="11510"/></proof>
71        </goal>
72       </transf>
73       </goal>
74       <goal name="example1&#39;vc.2.0.0.0.1" expl="apply premises" proved="true">
75       <proof prover="0"><result status="valid" time="0.082547" steps="147"/></proof>
76       </goal>
77      </transf>
78      </goal>
79      <goal name="example1&#39;vc.2.0.0.1" expl="apply premises" proved="true">
80      <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx y)) -. log (exp (to_real y)))
81 &lt;=. ((abs (log (exp (to_real y))) *. log_error)
82      +. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)) +. log_cst_error))">
83       <goal name="example1&#39;vc.2.0.0.1.0" expl="asserted formula" proved="true">
84       <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx y)) -. log (exp (to_real y)))
85 &lt;=. ((log_error *. abs (log (exp (to_real y))))
86      +. (((-. log
87               (1.0
88                -. (((exp_error *. exp (to_real y)) +. 0.0) /. exp (to_real y))))
89           *. (1.0 +. log_error))
90          +. log_cst_error))">
91        <goal name="example1&#39;vc.2.0.0.1.0.0" expl="asserted formula" proved="true">
92        <transf name="apply" proved="true" arg1="log_single_error_propagation" arg2="with" arg3="exp_approx y">
93         <goal name="example1&#39;vc.2.0.0.1.0.0.0" expl="apply premises" proved="true">
94         <proof prover="0"><result status="valid" time="0.066752" steps="119"/></proof>
95         </goal>
96         <goal name="example1&#39;vc.2.0.0.1.0.0.1" expl="apply premises" proved="true">
97         <proof prover="0"><result status="valid" time="0.065825" steps="139"/></proof>
98         </goal>
99         <goal name="example1&#39;vc.2.0.0.1.0.0.2" expl="apply premises" proved="true">
100         <proof prover="0"><result status="valid" time="0.202765" steps="1119"/></proof>
101         </goal>
102         <goal name="example1&#39;vc.2.0.0.1.0.0.3" expl="apply premises" proved="true">
103         <proof prover="0"><result status="valid" time="0.216068" steps="1165"/></proof>
104         </goal>
105         <goal name="example1&#39;vc.2.0.0.1.0.0.4" expl="apply premises" proved="true">
106         <proof prover="0"><result status="valid" time="0.090507" steps="113"/></proof>
107         </goal>
108        </transf>
109        </goal>
110        <goal name="example1&#39;vc.2.0.0.1.0.1" expl="asserted formula" proved="true">
111        <proof prover="0"><result status="valid" time="2.109322" steps="11407"/></proof>
112        </goal>
113       </transf>
114       </goal>
115       <goal name="example1&#39;vc.2.0.0.1.1" expl="apply premises" proved="true">
116       <proof prover="0"><result status="valid" time="0.052866" steps="147"/></proof>
117       </goal>
118      </transf>
119      </goal>
120      <goal name="example1&#39;vc.2.0.0.2" expl="apply premises" proved="true">
121      <proof prover="0"><result status="valid" time="0.062021" steps="121"/></proof>
122      </goal>
123      <goal name="example1&#39;vc.2.0.0.3" expl="apply premises" proved="true">
124      <proof prover="0"><result status="valid" time="0.047311" steps="121"/></proof>
125      </goal>
126      <goal name="example1&#39;vc.2.0.0.4" expl="apply premises" proved="true">
127      <proof prover="0"><result status="valid" time="0.050301" steps="113"/></proof>
128      </goal>
129      <goal name="example1&#39;vc.2.0.0.5" expl="apply premises" proved="true">
130      <proof prover="0"><result status="valid" time="0.044891" steps="113"/></proof>
131      </goal>
132      <goal name="example1&#39;vc.2.0.0.6" expl="apply premises" proved="true">
133      <proof prover="0"><result status="valid" time="0.135051" steps="773"/></proof>
134      </goal>
135      <goal name="example1&#39;vc.2.0.0.7" expl="apply premises" proved="true">
136      <proof prover="0"><result status="valid" time="0.147596" steps="773"/></proof>
137      </goal>
138      <goal name="example1&#39;vc.2.0.0.8" expl="apply premises" proved="true">
139      <proof prover="0"><result status="valid" time="0.053723" steps="113"/></proof>
140      </goal>
141     </transf>
142     </goal>
143     <goal name="example1&#39;vc.2.0.1" expl="asserted formula" proved="true">
144     <proof prover="0"><result status="valid" time="0.094205" steps="314"/></proof>
145     </goal>
146    </transf>
147    </goal>
148    <goal name="example1&#39;vc.2.1" expl="postcondition" proved="true">
149    <proof prover="0"><result status="valid" time="0.108349" steps="314"/></proof>
150    </goal>
151   </transf>
152   </goal>
153  </transf>
154  </goal>
155  <goal name="example2&#39;vc" expl="VC for example2" proved="true">
156  <transf name="split_vc" proved="true" >
157   <goal name="example2&#39;vc.0" expl="precondition" proved="true">
158   <proof prover="0"><result status="valid" time="0.190269" steps="1639"/></proof>
159   </goal>
160   <goal name="example2&#39;vc.1" expl="postcondition" proved="true">
161   <transf name="assert" proved="true" arg1="let t = log (exp (to_real x) +. exp (to_real y)) in
162 abs (to_real result -. t)
163 &lt;=. ((abs t *. log_error)
164      +. (((-. log (1.0 -. ((exp_error +. exp_error) +. eps)))
165           *. (1.0 +. log_error))
166          +. log_cst_error))">
167    <goal name="example2&#39;vc.1.0" expl="asserted formula" proved="true">
168    <transf name="assert" proved="true" arg1="abs (to_real result -. log (exp (to_real x) +. exp (to_real y)))
169 &lt;=. ((abs (log (exp (to_real x) +. exp (to_real y))) *. log_error)
170      +. (((-. log (1.0 -. ((exp_error +. exp_error) +. eps)))
171           *. (1.0 +. log_error))
172          +. log_cst_error))">
173     <goal name="example2&#39;vc.1.0.0" expl="asserted formula" proved="true">
174     <transf name="assert" proved="true" arg1="abs (to_real result -. log (exp (to_real x) +. exp (to_real y)))
175 &lt;=. ((log_error *. abs (log (exp (to_real x) +. exp (to_real y))))
176      +. (((-. log
177               (1.0
178                -. (((((exp_error +. exp_error) +. eps)
179                      *. (exp (to_real x) +. exp (to_real y)))
180                     +. 0.0)
181                    /. (exp (to_real x) +. exp (to_real y)))))
182           *. (1.0 +. log_error))
183          +. log_cst_error))">
184      <goal name="example2&#39;vc.1.0.0.0" expl="asserted formula" proved="true">
185      <transf name="apply" proved="true" arg1="log_single_error_propagation" arg2="with" arg3="exp_approx x ++. exp_approx y">
186       <goal name="example2&#39;vc.1.0.0.0.0" expl="apply premises" proved="true">
187       <transf name="assert" proved="true" arg1="abs
188 (to_real (exp_approx x ++. exp_approx y)
189  -. (exp (to_real x) +. exp (to_real y)))
190 &lt;=. ((((exp_error +. exp_error) +. eps)
191       *. (exp (to_real x) +. exp (to_real y)))
192      +. ((((1.0 +. eps) +. exp_error) *. 0.0)
193          +. (((1.0 +. eps) +. exp_error) *. 0.0)))">
194        <goal name="example2&#39;vc.1.0.0.0.0.0" expl="asserted formula" proved="true">
195        <transf name="apply" proved="true" arg1="uadd_single_error_propagation" arg2="with" arg3="exp_approx x,exp_approx y">
196         <goal name="example2&#39;vc.1.0.0.0.0.0.0" expl="apply premises" proved="true">
197         <proof prover="0"><result status="valid" time="0.058112" steps="114"/></proof>
198         </goal>
199         <goal name="example2&#39;vc.1.0.0.0.0.0.1" expl="apply premises" proved="true">
200         <proof prover="0"><result status="valid" time="0.062115" steps="114"/></proof>
201         </goal>
202         <goal name="example2&#39;vc.1.0.0.0.0.0.2" expl="apply premises" proved="true">
203         <proof prover="0"><result status="valid" time="0.151173" steps="944"/></proof>
204         </goal>
205         <goal name="example2&#39;vc.1.0.0.0.0.0.3" expl="apply premises" proved="true">
206         <proof prover="0"><result status="valid" time="0.195041" steps="943"/></proof>
207         </goal>
208         <goal name="example2&#39;vc.1.0.0.0.0.0.4" expl="apply premises" proved="true">
209         <proof prover="0"><result status="valid" time="0.052021" steps="106"/></proof>
210         </goal>
211         <goal name="example2&#39;vc.1.0.0.0.0.0.5" expl="apply premises" proved="true">
212         <proof prover="0"><result status="valid" time="0.066532" steps="106"/></proof>
213         </goal>
214         <goal name="example2&#39;vc.1.0.0.0.0.0.6" expl="apply premises" proved="true">
215         <proof prover="0"><result status="valid" time="0.061686" steps="106"/></proof>
216         </goal>
217         <goal name="example2&#39;vc.1.0.0.0.0.0.7" expl="apply premises" proved="true">
218         <proof prover="0"><result status="valid" time="0.047719" steps="106"/></proof>
219         </goal>
220         <goal name="example2&#39;vc.1.0.0.0.0.0.8" expl="apply premises" proved="true">
221         <proof prover="0"><result status="valid" time="0.050702" steps="106"/></proof>
222         </goal>
223        </transf>
224        </goal>
225        <goal name="example2&#39;vc.1.0.0.0.0.1" expl="apply premises" proved="true">
226        <proof prover="0"><result status="valid" time="0.057204" steps="119"/></proof>
227        </goal>
228       </transf>
229       </goal>
230       <goal name="example2&#39;vc.1.0.0.0.1" expl="apply premises" proved="true">
231       <proof prover="0"><result status="valid" time="0.053816" steps="132"/></proof>
232       </goal>
233       <goal name="example2&#39;vc.1.0.0.0.2" expl="apply premises" proved="true">
234       <proof prover="0"><result status="valid" time="0.116471" steps="727"/></proof>
235       </goal>
236       <goal name="example2&#39;vc.1.0.0.0.3" expl="apply premises" proved="true">
237       <proof prover="0"><result status="valid" time="0.205825" steps="1152"/></proof>
238       </goal>
239       <goal name="example2&#39;vc.1.0.0.0.4" expl="apply premises" proved="true">
240       <proof prover="0"><result status="valid" time="0.075268" steps="106"/></proof>
241       </goal>
242      </transf>
243      </goal>
244      <goal name="example2&#39;vc.1.0.0.1" expl="asserted formula" proved="true">
245      <proof prover="0"><result status="valid" time="1.950455" steps="12497"/></proof>
246      </goal>
247     </transf>
248     </goal>
249     <goal name="example2&#39;vc.1.0.1" expl="asserted formula" proved="true">
250     <proof prover="0"><result status="valid" time="0.066275" steps="164"/></proof>
251     </goal>
252    </transf>
253    </goal>
254    <goal name="example2&#39;vc.1.1" expl="postcondition" proved="true">
255    <proof prover="0"><result status="valid" time="0.084567" steps="170"/></proof>
256    </goal>
257   </transf>
258   </goal>
259  </transf>
260  </goal>
261  <goal name="example3&#39;vc" expl="VC for example3" proved="true">
262  <transf name="split_vc" proved="true" >
263   <goal name="example3&#39;vc.0" expl="precondition" proved="true">
264   <proof prover="0"><result status="valid" time="0.086160" steps="588"/></proof>
265   </goal>
266   <goal name="example3&#39;vc.1" expl="postcondition" proved="true">
267   <transf name="assert" proved="true" arg1="let t = log2 (to_real x +. to_real y) in
268 abs (to_real result -. t)
269 &lt;=. ((abs t *. log2_error) +. ((-. log2 (1.0 -. eps)) *. (1.0 +. log2_error)))">
270    <goal name="example3&#39;vc.1.0" expl="asserted formula" proved="true">
271    <transf name="assert" proved="true" arg1="abs (to_real result -. log2 (to_real x +. to_real y))
272 &lt;=. ((abs (log2 (to_real x +. to_real y)) *. log2_error)
273      +. ((-. log2 (1.0 -. eps)) *. (1.0 +. log2_error)))">
274     <goal name="example3&#39;vc.1.0.0" expl="asserted formula" proved="true">
275     <transf name="assert" proved="true" arg1="abs (to_real result -. log2 (to_real x +. to_real y))
276 &lt;=. ((log2_error *. abs (log2 (to_real x +. to_real y)))
277      +. (((-. log2
278               (1.0
279                -. (((eps *. abs (to_real x +. to_real y)) +. 0.0)
280                    /. (to_real x +. to_real y))))
281           *. (1.0 +. log2_error))
282          +. 0.0))">
283      <goal name="example3&#39;vc.1.0.0.0" expl="asserted formula" proved="true">
284      <transf name="apply" proved="true" arg1="log2_single_error_propagation" arg2="with" arg3="x ++. y">
285       <goal name="example3&#39;vc.1.0.0.0.0" expl="apply premises" proved="true">
286       <transf name="assert" proved="true" arg1="abs (to_real (x ++. y) -. (to_real x +. to_real y))
287 &lt;=. (eps *. abs (to_real x +. to_real y))">
288        <goal name="example3&#39;vc.1.0.0.0.0.0" expl="asserted formula" proved="true">
289        <proof prover="0"><result status="valid" time="0.138606" steps="773"/></proof>
290        </goal>
291        <goal name="example3&#39;vc.1.0.0.0.0.1" expl="apply premises" proved="true">
292        <proof prover="0"><result status="valid" time="0.060096" steps="123"/></proof>
293        </goal>
294       </transf>
295       </goal>
296       <goal name="example3&#39;vc.1.0.0.0.1" expl="apply premises" proved="true">
297       <proof prover="0"><result status="valid" time="0.065559" steps="127"/></proof>
298       </goal>
299       <goal name="example3&#39;vc.1.0.0.0.2" expl="apply premises" proved="true">
300       <proof prover="0"><result status="valid" time="0.068605" steps="106"/></proof>
301       </goal>
302       <goal name="example3&#39;vc.1.0.0.0.3" expl="apply premises" proved="true">
303       <proof prover="0"><result status="valid" time="0.060663" steps="105"/></proof>
304       </goal>
305       <goal name="example3&#39;vc.1.0.0.0.4" expl="apply premises" proved="true">
306       <proof prover="0"><result status="valid" time="0.049046" steps="101"/></proof>
307       </goal>
308      </transf>
309      </goal>
310      <goal name="example3&#39;vc.1.0.0.1" expl="asserted formula" proved="true">
311      <proof prover="0"><result status="valid" time="0.067871" steps="171"/></proof>
312      </goal>
313     </transf>
314     </goal>
315     <goal name="example3&#39;vc.1.0.1" expl="asserted formula" proved="true">
316     <proof prover="0"><result status="valid" time="0.061491" steps="157"/></proof>
317     </goal>
318    </transf>
319    </goal>
320    <goal name="example3&#39;vc.1.1" expl="postcondition" proved="true">
321    <proof prover="0"><result status="valid" time="0.048102" steps="150"/></proof>
322    </goal>
323   </transf>
324   </goal>
325  </transf>
326  </goal>
327  <goal name="example4&#39;vc" expl="VC for example4" proved="true">
328  <transf name="split_vc" proved="true" >
329   <goal name="example4&#39;vc.0" expl="precondition" proved="true">
330   <proof prover="0"><result status="valid" time="0.087385" steps="588"/></proof>
331   </goal>
332   <goal name="example4&#39;vc.1" expl="postcondition" proved="true">
333   <transf name="assert" proved="true" arg1="let t = log10 (to_real x +. to_real y) in
334 abs (to_real result -. t)
335 &lt;=. ((abs t *. log10_error)
336      +. ((-. log10 (1.0 -. eps)) *. (1.0 +. log10_error)))">
337    <goal name="example4&#39;vc.1.0" expl="asserted formula" proved="true">
338    <transf name="assert" proved="true" arg1="abs (to_real result -. log10 (to_real x +. to_real y))
339 &lt;=. ((abs (log10 (to_real x +. to_real y)) *. log10_error)
340      +. ((-. log10 (1.0 -. eps)) *. (1.0 +. log10_error)))">
341     <goal name="example4&#39;vc.1.0.0" expl="asserted formula" proved="true">
342     <transf name="assert" proved="true" arg1="abs (to_real result -. log10 (to_real x +. to_real y))
343 &lt;=. ((log10_error *. abs (log10 (to_real x +. to_real y)))
344      +. (((-. log10
345               (1.0
346                -. (((eps *. abs (to_real x +. to_real y)) +. 0.0)
347                    /. (to_real x +. to_real y))))
348           *. (1.0 +. log10_error))
349          +. 0.0))">
350      <goal name="example4&#39;vc.1.0.0.0" expl="asserted formula" proved="true">
351      <transf name="apply" proved="true" arg1="log10_single_error_propagation" arg2="with" arg3="x ++. y">
352       <goal name="example4&#39;vc.1.0.0.0.0" expl="apply premises" proved="true">
353       <transf name="assert" proved="true" arg1="abs (to_real (x ++. y) -. (to_real x +. to_real y))
354 &lt;=. (eps *. abs (to_real x +. to_real y))">
355        <goal name="example4&#39;vc.1.0.0.0.0.0" expl="asserted formula" proved="true">
356        <proof prover="0"><result status="valid" time="0.150117" steps="773"/></proof>
357        </goal>
358        <goal name="example4&#39;vc.1.0.0.0.0.1" expl="apply premises" proved="true">
359        <proof prover="0"><result status="valid" time="0.056298" steps="123"/></proof>
360        </goal>
361       </transf>
362       </goal>
363       <goal name="example4&#39;vc.1.0.0.0.1" expl="apply premises" proved="true">
364       <proof prover="0"><result status="valid" time="0.069932" steps="127"/></proof>
365       </goal>
366       <goal name="example4&#39;vc.1.0.0.0.2" expl="apply premises" proved="true">
367       <proof prover="0"><result status="valid" time="0.073209" steps="106"/></proof>
368       </goal>
369       <goal name="example4&#39;vc.1.0.0.0.3" expl="apply premises" proved="true">
370       <proof prover="0"><result status="valid" time="0.052681" steps="105"/></proof>
371       </goal>
372       <goal name="example4&#39;vc.1.0.0.0.4" expl="apply premises" proved="true">
373       <proof prover="0"><result status="valid" time="0.073549" steps="101"/></proof>
374       </goal>
375      </transf>
376      </goal>
377      <goal name="example4&#39;vc.1.0.0.1" expl="asserted formula" proved="true">
378      <proof prover="0"><result status="valid" time="0.069611" steps="171"/></proof>
379      </goal>
380     </transf>
381     </goal>
382     <goal name="example4&#39;vc.1.0.1" expl="asserted formula" proved="true">
383     <proof prover="0"><result status="valid" time="0.058950" steps="157"/></proof>
384     </goal>
385    </transf>
386    </goal>
387    <goal name="example4&#39;vc.1.1" expl="postcondition" proved="true">
388    <proof prover="0"><result status="valid" time="0.039820" steps="150"/></proof>
389    </goal>
390   </transf>
391   </goal>
392  </transf>
393  </goal>
394 </theory>
395 <theory name="ExpLogDouble" proved="true">
396  <goal name="example1&#39;vc" expl="VC for example1" proved="true">
397  <transf name="split_vc" proved="true" >
398   <goal name="example1&#39;vc.0" expl="precondition" proved="true">
399   <proof prover="0"><result status="valid" time="0.103938" steps="868"/></proof>
400   </goal>
401   <goal name="example1&#39;vc.1" expl="precondition" proved="true">
402   <proof prover="0"><result status="valid" time="0.136607" steps="1143"/></proof>
403   </goal>
404   <goal name="example1&#39;vc.2" expl="postcondition" proved="true">
405   <transf name="assert" proved="true" arg1="let t3 = log (exp (to_real y)) in
406 let t4 = log (exp (to_real x)) in
407 let t5 =
408   ((1.0 +. eps) +. log_error)
409   *. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)) +. log_cst_error)
411 abs (to_real result -. (t4 +. t3))
412 &lt;=. ((((log_error +. log_error) +. eps) *. (abs t4 +. abs t3)) +. (t5 +. t5))">
413    <goal name="example1&#39;vc.2.0" expl="asserted formula" proved="true">
414    <transf name="assert" proved="true" arg1="abs (to_real result -. (log (exp (to_real x)) +. log (exp (to_real y))))
415 &lt;=. ((((log_error +. log_error) +. eps)
416       *. (abs (log (exp (to_real x))) +. abs (log (exp (to_real y)))))
417      +. ((((1.0 +. eps) +. log_error)
418           *. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error))
419               +. log_cst_error))
420          +. (((1.0 +. eps) +. log_error)
421              *. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error))
422                  +. log_cst_error))))">
423     <goal name="example1&#39;vc.2.0.0" expl="asserted formula" proved="true">
424     <transf name="apply" proved="true" arg1="uadd_double_error_propagation" arg2="with" arg3="log_approx (exp_approx x),log_approx (exp_approx y)">
425      <goal name="example1&#39;vc.2.0.0.0" expl="apply premises" proved="true">
426      <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx x)) -. log (exp (to_real x)))
427 &lt;=. ((abs (log (exp (to_real x))) *. log_error)
428      +. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)) +. log_cst_error))">
429       <goal name="example1&#39;vc.2.0.0.0.0" expl="asserted formula" proved="true">
430       <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx x)) -. log (exp (to_real x)))
431 &lt;=. ((log_error *. abs (log (exp (to_real x))))
432      +. (((-. log
433               (1.0
434                -. (((exp_error *. exp (to_real x)) +. 0.0) /. exp (to_real x))))
435           *. (1.0 +. log_error))
436          +. log_cst_error))">
437        <goal name="example1&#39;vc.2.0.0.0.0.0" expl="asserted formula" proved="true">
438        <transf name="apply" proved="true" arg1="log_double_error_propagation" arg2="with" arg3="exp_approx x">
439         <goal name="example1&#39;vc.2.0.0.0.0.0.0" expl="apply premises" proved="true">
440         <proof prover="0"><result status="valid" time="0.054264" steps="119"/></proof>
441         </goal>
442         <goal name="example1&#39;vc.2.0.0.0.0.0.1" expl="apply premises" proved="true">
443         <proof prover="0"><result status="valid" time="0.066207" steps="139"/></proof>
444         </goal>
445         <goal name="example1&#39;vc.2.0.0.0.0.0.2" expl="apply premises" proved="true">
446         <proof prover="0"><result status="valid" time="0.148397" steps="1125"/></proof>
447         </goal>
448         <goal name="example1&#39;vc.2.0.0.0.0.0.3" expl="apply premises" proved="true">
449         <proof prover="0"><result status="valid" time="0.237261" steps="1205"/></proof>
450         </goal>
451         <goal name="example1&#39;vc.2.0.0.0.0.0.4" expl="apply premises" proved="true">
452         <proof prover="0"><result status="valid" time="0.081769" steps="113"/></proof>
453         </goal>
454        </transf>
455        </goal>
456        <goal name="example1&#39;vc.2.0.0.0.0.1" expl="asserted formula" proved="true">
457        <proof prover="0"><result status="valid" time="1.903047" steps="11502"/></proof>
458        </goal>
459       </transf>
460       </goal>
461       <goal name="example1&#39;vc.2.0.0.0.1" expl="apply premises" proved="true">
462       <proof prover="0"><result status="valid" time="0.106152" steps="147"/></proof>
463       </goal>
464      </transf>
465      </goal>
466      <goal name="example1&#39;vc.2.0.0.1" expl="apply premises" proved="true">
467      <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx y)) -. log (exp (to_real y)))
468 &lt;=. ((abs (log (exp (to_real y))) *. log_error)
469      +. (((-. log (1.0 -. exp_error)) *. (1.0 +. log_error)) +. log_cst_error))">
470       <goal name="example1&#39;vc.2.0.0.1.0" expl="asserted formula" proved="true">
471       <transf name="assert" proved="true" arg1="abs (to_real (log_approx (exp_approx y)) -. log (exp (to_real y)))
472 &lt;=. ((log_error *. abs (log (exp (to_real y))))
473      +. (((-. log
474               (1.0
475                -. (((exp_error *. exp (to_real y)) +. 0.0) /. exp (to_real y))))
476           *. (1.0 +. log_error))
477          +. log_cst_error))">
478        <goal name="example1&#39;vc.2.0.0.1.0.0" expl="asserted formula" proved="true">
479        <transf name="apply" proved="true" arg1="log_double_error_propagation" arg2="with" arg3="exp_approx y">
480         <goal name="example1&#39;vc.2.0.0.1.0.0.0" expl="apply premises" proved="true">
481         <proof prover="0"><result status="valid" time="0.064546" steps="119"/></proof>
482         </goal>
483         <goal name="example1&#39;vc.2.0.0.1.0.0.1" expl="apply premises" proved="true">
484         <proof prover="0"><result status="valid" time="0.083584" steps="139"/></proof>
485         </goal>
486         <goal name="example1&#39;vc.2.0.0.1.0.0.2" expl="apply premises" proved="true">
487         <proof prover="0"><result status="valid" time="0.170696" steps="1119"/></proof>
488         </goal>
489         <goal name="example1&#39;vc.2.0.0.1.0.0.3" expl="apply premises" proved="true">
490         <proof prover="0"><result status="valid" time="0.261198" steps="1171"/></proof>
491         </goal>
492         <goal name="example1&#39;vc.2.0.0.1.0.0.4" expl="apply premises" proved="true">
493         <proof prover="0"><result status="valid" time="0.094898" steps="113"/></proof>
494         </goal>
495        </transf>
496        </goal>
497        <goal name="example1&#39;vc.2.0.0.1.0.1" expl="asserted formula" proved="true">
498        <proof prover="0"><result status="valid" time="2.108976" steps="12636"/></proof>
499        </goal>
500       </transf>
501       </goal>
502       <goal name="example1&#39;vc.2.0.0.1.1" expl="apply premises" proved="true">
503       <proof prover="0"><result status="valid" time="0.089793" steps="147"/></proof>
504       </goal>
505      </transf>
506      </goal>
507      <goal name="example1&#39;vc.2.0.0.2" expl="apply premises" proved="true">
508      <proof prover="0"><result status="valid" time="0.075301" steps="121"/></proof>
509      </goal>
510      <goal name="example1&#39;vc.2.0.0.3" expl="apply premises" proved="true">
511      <proof prover="0"><result status="valid" time="0.054163" steps="121"/></proof>
512      </goal>
513      <goal name="example1&#39;vc.2.0.0.4" expl="apply premises" proved="true">
514      <proof prover="0"><result status="valid" time="0.075151" steps="113"/></proof>
515      </goal>
516      <goal name="example1&#39;vc.2.0.0.5" expl="apply premises" proved="true">
517      <proof prover="0"><result status="valid" time="0.074363" steps="113"/></proof>
518      </goal>
519      <goal name="example1&#39;vc.2.0.0.6" expl="apply premises" proved="true">
520      <proof prover="0"><result status="valid" time="0.156171" steps="774"/></proof>
521      </goal>
522      <goal name="example1&#39;vc.2.0.0.7" expl="apply premises" proved="true">
523      <proof prover="0"><result status="valid" time="0.145470" steps="774"/></proof>
524      </goal>
525      <goal name="example1&#39;vc.2.0.0.8" expl="apply premises" proved="true">
526      <proof prover="0"><result status="valid" time="0.052221" steps="113"/></proof>
527      </goal>
528     </transf>
529     </goal>
530     <goal name="example1&#39;vc.2.0.1" expl="asserted formula" proved="true">
531     <proof prover="0"><result status="valid" time="0.108821" steps="314"/></proof>
532     </goal>
533    </transf>
534    </goal>
535    <goal name="example1&#39;vc.2.1" expl="postcondition" proved="true">
536    <proof prover="0"><result status="valid" time="0.099029" steps="314"/></proof>
537    </goal>
538   </transf>
539   </goal>
540  </transf>
541  </goal>
542  <goal name="example2&#39;vc" expl="VC for example2" proved="true">
543  <transf name="split_vc" proved="true" >
544   <goal name="example2&#39;vc.0" expl="precondition" proved="true">
545   <proof prover="0"><result status="valid" time="0.180146" steps="1625"/></proof>
546   </goal>
547   <goal name="example2&#39;vc.1" expl="postcondition" proved="true">
548   <transf name="assert" proved="true" arg1="let t = log (exp (to_real x) +. exp (to_real y)) in
549 abs (to_real result -. t)
550 &lt;=. ((abs t *. log_error)
551      +. (((-. log (1.0 -. ((exp_error +. exp_error) +. eps)))
552           *. (1.0 +. log_error))
553          +. log_cst_error))">
554    <goal name="example2&#39;vc.1.0" expl="asserted formula" proved="true">
555    <transf name="assert" proved="true" arg1="abs (to_real result -. log (exp (to_real x) +. exp (to_real y)))
556 &lt;=. ((abs (log (exp (to_real x) +. exp (to_real y))) *. log_error)
557      +. (((-. log (1.0 -. ((exp_error +. exp_error) +. eps)))
558           *. (1.0 +. log_error))
559          +. log_cst_error))">
560     <goal name="example2&#39;vc.1.0.0" expl="asserted formula" proved="true">
561     <transf name="assert" proved="true" arg1="abs (to_real result -. log (exp (to_real x) +. exp (to_real y)))
562 &lt;=. ((log_error *. abs (log (exp (to_real x) +. exp (to_real y))))
563      +. (((-. log
564               (1.0
565                -. (((((exp_error +. exp_error) +. eps)
566                      *. (exp (to_real x) +. exp (to_real y)))
567                     +. 0.0)
568                    /. (exp (to_real x) +. exp (to_real y)))))
569           *. (1.0 +. log_error))
570          +. log_cst_error))">
571      <goal name="example2&#39;vc.1.0.0.0" expl="asserted formula" proved="true">
572      <transf name="apply" proved="true" arg1="log_double_error_propagation" arg2="with" arg3="exp_approx x ++. exp_approx y">
573       <goal name="example2&#39;vc.1.0.0.0.0" expl="apply premises" proved="true">
574       <transf name="assert" proved="true" arg1="abs
575 (to_real (exp_approx x ++. exp_approx y)
576  -. (exp (to_real x) +. exp (to_real y)))
577 &lt;=. ((((exp_error +. exp_error) +. eps)
578       *. (exp (to_real x) +. exp (to_real y)))
579      +. ((((1.0 +. eps) +. exp_error) *. 0.0)
580          +. (((1.0 +. eps) +. exp_error) *. 0.0)))">
581        <goal name="example2&#39;vc.1.0.0.0.0.0" expl="asserted formula" proved="true">
582        <transf name="apply" proved="true" arg1="uadd_double_error_propagation" arg2="with" arg3="exp_approx x,exp_approx y">
583         <goal name="example2&#39;vc.1.0.0.0.0.0.0" expl="apply premises" proved="true">
584         <proof prover="0"><result status="valid" time="0.047119" steps="114"/></proof>
585         </goal>
586         <goal name="example2&#39;vc.1.0.0.0.0.0.1" expl="apply premises" proved="true">
587         <proof prover="0"><result status="valid" time="0.049479" steps="114"/></proof>
588         </goal>
589         <goal name="example2&#39;vc.1.0.0.0.0.0.2" expl="apply premises" proved="true">
590         <proof prover="0"><result status="valid" time="0.178458" steps="942"/></proof>
591         </goal>
592         <goal name="example2&#39;vc.1.0.0.0.0.0.3" expl="apply premises" proved="true">
593         <proof prover="0"><result status="valid" time="0.179100" steps="943"/></proof>
594         </goal>
595         <goal name="example2&#39;vc.1.0.0.0.0.0.4" expl="apply premises" proved="true">
596         <proof prover="0"><result status="valid" time="0.054563" steps="106"/></proof>
597         </goal>
598         <goal name="example2&#39;vc.1.0.0.0.0.0.5" expl="apply premises" proved="true">
599         <proof prover="0"><result status="valid" time="0.092445" steps="106"/></proof>
600         </goal>
601         <goal name="example2&#39;vc.1.0.0.0.0.0.6" expl="apply premises" proved="true">
602         <proof prover="0"><result status="valid" time="0.059794" steps="106"/></proof>
603         </goal>
604         <goal name="example2&#39;vc.1.0.0.0.0.0.7" expl="apply premises" proved="true">
605         <proof prover="0"><result status="valid" time="0.083316" steps="106"/></proof>
606         </goal>
607         <goal name="example2&#39;vc.1.0.0.0.0.0.8" expl="apply premises" proved="true">
608         <proof prover="0"><result status="valid" time="0.076636" steps="106"/></proof>
609         </goal>
610        </transf>
611        </goal>
612        <goal name="example2&#39;vc.1.0.0.0.0.1" expl="apply premises" proved="true">
613        <proof prover="0"><result status="valid" time="0.069311" steps="119"/></proof>
614        </goal>
615       </transf>
616       </goal>
617       <goal name="example2&#39;vc.1.0.0.0.1" expl="apply premises" proved="true">
618       <proof prover="0"><result status="valid" time="0.068558" steps="132"/></proof>
619       </goal>
620       <goal name="example2&#39;vc.1.0.0.0.2" expl="apply premises" proved="true">
621       <proof prover="0"><result status="valid" time="0.131529" steps="727"/></proof>
622       </goal>
623       <goal name="example2&#39;vc.1.0.0.0.3" expl="apply premises" proved="true">
624       <proof prover="0"><result status="valid" time="0.249078" steps="1171"/></proof>
625       </goal>
626       <goal name="example2&#39;vc.1.0.0.0.4" expl="apply premises" proved="true">
627       <proof prover="0"><result status="valid" time="0.053611" steps="106"/></proof>
628       </goal>
629      </transf>
630      </goal>
631      <goal name="example2&#39;vc.1.0.0.1" expl="asserted formula" proved="true">
632      <proof prover="0"><result status="valid" time="1.835473" steps="12473"/></proof>
633      </goal>
634     </transf>
635     </goal>
636     <goal name="example2&#39;vc.1.0.1" expl="asserted formula" proved="true">
637     <proof prover="0"><result status="valid" time="0.063839" steps="164"/></proof>
638     </goal>
639    </transf>
640    </goal>
641    <goal name="example2&#39;vc.1.1" expl="postcondition" proved="true">
642    <proof prover="0"><result status="valid" time="0.075798" steps="170"/></proof>
643    </goal>
644   </transf>
645   </goal>
646  </transf>
647  </goal>
648  <goal name="example3&#39;vc" expl="VC for example3" proved="true">
649  <transf name="split_vc" proved="true" >
650   <goal name="example3&#39;vc.0" expl="precondition" proved="true">
651   <proof prover="0"><result status="valid" time="0.080734" steps="588"/></proof>
652   </goal>
653   <goal name="example3&#39;vc.1" expl="postcondition" proved="true">
654   <transf name="assert" proved="true" arg1="let t = log2 (to_real x +. to_real y) in
655 abs (to_real result -. t)
656 &lt;=. ((abs t *. log2_error) +. ((-. log2 (1.0 -. eps)) *. (1.0 +. log2_error)))">
657    <goal name="example3&#39;vc.1.0" expl="asserted formula" proved="true">
658    <transf name="assert" proved="true" arg1="abs (to_real result -. log2 (to_real x +. to_real y))
659 &lt;=. ((abs (log2 (to_real x +. to_real y)) *. log2_error)
660      +. ((-. log2 (1.0 -. eps)) *. (1.0 +. log2_error)))">
661     <goal name="example3&#39;vc.1.0.0" expl="asserted formula" proved="true">
662     <transf name="assert" proved="true" arg1="abs (to_real result -. log2 (to_real x +. to_real y))
663 &lt;=. ((log2_error *. abs (log2 (to_real x +. to_real y)))
664      +. (((-. log2
665               (1.0
666                -. (((eps *. abs (to_real x +. to_real y)) +. 0.0)
667                    /. (to_real x +. to_real y))))
668           *. (1.0 +. log2_error))
669          +. 0.0))">
670      <goal name="example3&#39;vc.1.0.0.0" expl="asserted formula" proved="true">
671      <transf name="apply" proved="true" arg1="log2_double_error_propagation" arg2="with" arg3="x ++. y">
672       <goal name="example3&#39;vc.1.0.0.0.0" expl="apply premises" proved="true">
673       <transf name="assert" proved="true" arg1="abs (to_real (x ++. y) -. (to_real x +. to_real y))
674 &lt;=. (eps *. abs (to_real x +. to_real y))">
675        <goal name="example3&#39;vc.1.0.0.0.0.0" expl="asserted formula" proved="true">
676        <proof prover="0"><result status="valid" time="0.153510" steps="773"/></proof>
677        </goal>
678        <goal name="example3&#39;vc.1.0.0.0.0.1" expl="apply premises" proved="true">
679        <proof prover="0"><result status="valid" time="0.060039" steps="123"/></proof>
680        </goal>
681       </transf>
682       </goal>
683       <goal name="example3&#39;vc.1.0.0.0.1" expl="apply premises" proved="true">
684       <proof prover="0"><result status="valid" time="0.057203" steps="127"/></proof>
685       </goal>
686       <goal name="example3&#39;vc.1.0.0.0.2" expl="apply premises" proved="true">
687       <proof prover="0"><result status="valid" time="0.056627" steps="106"/></proof>
688       </goal>
689       <goal name="example3&#39;vc.1.0.0.0.3" expl="apply premises" proved="true">
690       <proof prover="0"><result status="valid" time="0.056319" steps="105"/></proof>
691       </goal>
692       <goal name="example3&#39;vc.1.0.0.0.4" expl="apply premises" proved="true">
693       <proof prover="0"><result status="valid" time="0.059745" steps="101"/></proof>
694       </goal>
695      </transf>
696      </goal>
697      <goal name="example3&#39;vc.1.0.0.1" expl="asserted formula" proved="true">
698      <proof prover="0"><result status="valid" time="0.074560" steps="171"/></proof>
699      </goal>
700     </transf>
701     </goal>
702     <goal name="example3&#39;vc.1.0.1" expl="asserted formula" proved="true">
703     <proof prover="0"><result status="valid" time="0.072442" steps="157"/></proof>
704     </goal>
705    </transf>
706    </goal>
707    <goal name="example3&#39;vc.1.1" expl="postcondition" proved="true">
708    <proof prover="0"><result status="valid" time="0.067725" steps="150"/></proof>
709    </goal>
710   </transf>
711   </goal>
712  </transf>
713  </goal>
714  <goal name="example4&#39;vc" expl="VC for example4" proved="true">
715  <transf name="split_vc" proved="true" >
716   <goal name="example4&#39;vc.0" expl="precondition" proved="true">
717   <proof prover="0"><result status="valid" time="0.099433" steps="588"/></proof>
718   </goal>
719   <goal name="example4&#39;vc.1" expl="postcondition" proved="true">
720   <transf name="assert" proved="true" arg1="let t = log10 (to_real x +. to_real y) in
721 abs (to_real result -. t)
722 &lt;=. ((abs t *. log10_error)
723      +. ((-. log10 (1.0 -. eps)) *. (1.0 +. log10_error)))">
724    <goal name="example4&#39;vc.1.0" expl="asserted formula" proved="true">
725    <transf name="assert" proved="true" arg1="abs (to_real result -. log10 (to_real x +. to_real y))
726 &lt;=. ((abs (log10 (to_real x +. to_real y)) *. log10_error)
727      +. ((-. log10 (1.0 -. eps)) *. (1.0 +. log10_error)))">
728     <goal name="example4&#39;vc.1.0.0" expl="asserted formula" proved="true">
729     <transf name="assert" proved="true" arg1="abs (to_real result -. log10 (to_real x +. to_real y))
730 &lt;=. ((log10_error *. abs (log10 (to_real x +. to_real y)))
731      +. (((-. log10
732               (1.0
733                -. (((eps *. abs (to_real x +. to_real y)) +. 0.0)
734                    /. (to_real x +. to_real y))))
735           *. (1.0 +. log10_error))
736          +. 0.0))">
737      <goal name="example4&#39;vc.1.0.0.0" expl="asserted formula" proved="true">
738      <transf name="apply" proved="true" arg1="log10_double_error_propagation" arg2="with" arg3="x ++. y">
739       <goal name="example4&#39;vc.1.0.0.0.0" expl="apply premises" proved="true">
740       <transf name="assert" proved="true" arg1="abs (to_real (x ++. y) -. (to_real x +. to_real y))
741 &lt;=. (eps *. abs (to_real x +. to_real y))">
742        <goal name="example4&#39;vc.1.0.0.0.0.0" expl="asserted formula" proved="true">
743        <proof prover="0"><result status="valid" time="0.151494" steps="773"/></proof>
744        </goal>
745        <goal name="example4&#39;vc.1.0.0.0.0.1" expl="apply premises" proved="true">
746        <proof prover="0"><result status="valid" time="0.056304" steps="123"/></proof>
747        </goal>
748       </transf>
749       </goal>
750       <goal name="example4&#39;vc.1.0.0.0.1" expl="apply premises" proved="true">
751       <proof prover="0"><result status="valid" time="0.053633" steps="127"/></proof>
752       </goal>
753       <goal name="example4&#39;vc.1.0.0.0.2" expl="apply premises" proved="true">
754       <proof prover="0"><result status="valid" time="0.067975" steps="106"/></proof>
755       </goal>
756       <goal name="example4&#39;vc.1.0.0.0.3" expl="apply premises" proved="true">
757       <proof prover="0"><result status="valid" time="0.054963" steps="105"/></proof>
758       </goal>
759       <goal name="example4&#39;vc.1.0.0.0.4" expl="apply premises" proved="true">
760       <proof prover="0"><result status="valid" time="0.056240" steps="101"/></proof>
761       </goal>
762      </transf>
763      </goal>
764      <goal name="example4&#39;vc.1.0.0.1" expl="asserted formula" proved="true">
765      <proof prover="0"><result status="valid" time="0.059401" steps="171"/></proof>
766      </goal>
767     </transf>
768     </goal>
769     <goal name="example4&#39;vc.1.0.1" expl="asserted formula" proved="true">
770     <proof prover="0"><result status="valid" time="0.064877" steps="157"/></proof>
771     </goal>
772    </transf>
773    </goal>
774    <goal name="example4&#39;vc.1.1" expl="postcondition" proved="true">
775    <proof prover="0"><result status="valid" time="0.053458" steps="150"/></proof>
776    </goal>
777   </transf>
778   </goal>
779  </transf>
780  </goal>
781 </theory>
782 </file>
783 </why3session>