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="1" name="CVC4" version="1.5" timelimit="1" steplimit="0" memlimit="1000"/>
6 <prover id="2" name="Z3" version="4.7.1" timelimit="5" steplimit="0" memlimit="1000"/>
7 <file format="whyml" proved="true">
8 <path name=".."/><path name="foveoos11_challenge3.mlw"/>
9 <theory name="TwoEqualElements" proved="true">
10 <goal name="two_equal_elements'vc" expl="VC for two_equal_elements" proved="true">
11 <transf name="split_goal_right" proved="true" >
12 <goal name="two_equal_elements'vc.0" expl="array creation size" proved="true">
13 <proof prover="1"><result status="valid" time="0.010000" steps="3259"/></proof>
15 <goal name="two_equal_elements'vc.1" expl="loop invariant init" proved="true">
16 <proof prover="1"><result status="valid" time="0.000000" steps="1905"/></proof>
18 <goal name="two_equal_elements'vc.2" expl="loop invariant init" proved="true">
19 <proof prover="1"><result status="valid" time="0.000000" steps="1905"/></proof>
21 <goal name="two_equal_elements'vc.3" expl="loop invariant init" proved="true">
22 <proof prover="1"><result status="valid" time="0.000000" steps="1905"/></proof>
24 <goal name="two_equal_elements'vc.4" expl="loop invariant init" proved="true">
25 <proof prover="1"><result status="valid" time="0.020000" steps="5319"/></proof>
27 <goal name="two_equal_elements'vc.5" expl="loop invariant init" proved="true">
28 <proof prover="1"><result status="valid" time="0.020000" steps="5496"/></proof>
30 <goal name="two_equal_elements'vc.6" expl="loop invariant init" proved="true">
31 <proof prover="1"><result status="valid" time="0.020000" steps="5750"/></proof>
33 <goal name="two_equal_elements'vc.7" expl="index in array bounds" proved="true">
34 <proof prover="1"><result status="valid" time="0.030000" steps="6794"/></proof>
36 <goal name="two_equal_elements'vc.8" expl="index in array bounds" proved="true">
37 <proof prover="1"><result status="valid" time="0.020000" steps="7590"/></proof>
39 <goal name="two_equal_elements'vc.9" expl="loop invariant preservation" proved="true">
40 <proof prover="1"><result status="valid" time="0.010000" steps="5170"/></proof>
42 <goal name="two_equal_elements'vc.10" expl="loop invariant preservation" proved="true">
43 <proof prover="1"><result status="valid" time="0.060000" steps="12677"/></proof>
45 <goal name="two_equal_elements'vc.11" expl="loop invariant preservation" proved="true">
46 <proof prover="1"><result status="valid" time="0.010000" steps="5382"/></proof>
48 <goal name="two_equal_elements'vc.12" expl="loop invariant preservation" proved="true">
49 <proof prover="1"><result status="valid" time="0.070000" steps="11834"/></proof>
51 <goal name="two_equal_elements'vc.13" expl="loop invariant preservation" proved="true">
52 <proof prover="1"><result status="valid" time="0.030000" steps="9086"/></proof>
54 <goal name="two_equal_elements'vc.14" expl="loop invariant preservation" proved="true">
55 <transf name="unfold" proved="true" arg1="appear_twice">
56 <goal name="two_equal_elements'vc.14.0" expl="loop invariant preservation" proved="true">
57 <transf name="introduce_premises" proved="true" >
58 <goal name="two_equal_elements'vc.14.0.0" expl="loop invariant preservation" proved="true">
59 <transf name="assert" proved="true" arg1="(forall i1 j:int. 0 <= i1 /\ i1 < (i + 1) /\ 0 <= j /\ j < (i + 1) /\ i1 <> j -> a[i1] <> v \/ a[j] <> v)">
60 <goal name="two_equal_elements'vc.14.0.0.0" expl="asserted formula" proved="true">
61 <proof prover="1"><result status="valid" time="0.120000" steps="19725"/></proof>
63 <goal name="two_equal_elements'vc.14.0.0.1" expl="loop invariant preservation" proved="true">
64 <proof prover="1"><result status="valid" time="0.020000" steps="10383"/></proof>
72 <goal name="two_equal_elements'vc.15" expl="loop invariant preservation" proved="true">
73 <proof prover="1"><result status="valid" time="0.010000" steps="4795"/></proof>
75 <goal name="two_equal_elements'vc.16" expl="loop invariant preservation" proved="true">
76 <proof prover="1"><result status="valid" time="0.050000" steps="10374"/></proof>
78 <goal name="two_equal_elements'vc.17" expl="loop invariant preservation" proved="true">
79 <proof prover="1"><result status="valid" time="0.080000" steps="16559"/></proof>
81 <goal name="two_equal_elements'vc.18" expl="loop invariant preservation" proved="true">
82 <proof prover="1"><result status="valid" time="0.050000" steps="15995"/></proof>
84 <goal name="two_equal_elements'vc.19" expl="loop invariant preservation" proved="true">
85 <transf name="unfold" proved="true" arg1="appear_twice">
86 <goal name="two_equal_elements'vc.19.0" expl="loop invariant preservation" proved="true">
87 <transf name="introduce_premises" proved="true" >
88 <goal name="two_equal_elements'vc.19.0.0" expl="loop invariant preservation" proved="true">
89 <transf name="assert" proved="true" arg1="(forall i1 j:int. 0 <= i1 /\ i1 < (i + 1) /\ 0 <= j /\ j < (i + 1) /\ i1 <> j -> a[i1] <> v \/ a[j] <> v)">
90 <goal name="two_equal_elements'vc.19.0.0.0" expl="asserted formula" proved="true">
91 <proof prover="1"><result status="valid" time="0.080000" steps="8427"/></proof>
93 <goal name="two_equal_elements'vc.19.0.0.1" expl="loop invariant preservation" proved="true">
94 <proof prover="1"><result status="valid" time="0.030000" steps="8740"/></proof>
102 <goal name="two_equal_elements'vc.20" expl="loop invariant preservation" proved="true">
103 <proof prover="1"><result status="valid" time="0.010000" steps="9792"/></proof>
105 <goal name="two_equal_elements'vc.21" expl="loop invariant preservation" proved="true">
106 <proof prover="1"><result status="valid" time="0.020000" steps="4715"/></proof>
108 <goal name="two_equal_elements'vc.22" expl="loop invariant preservation" proved="true">
109 <proof prover="1"><result status="valid" time="0.060000" steps="12723"/></proof>
111 <goal name="two_equal_elements'vc.23" expl="loop invariant preservation" proved="true">
112 <proof prover="1"><result status="valid" time="0.060000" steps="4985"/></proof>
114 <goal name="two_equal_elements'vc.24" expl="loop invariant preservation" proved="true">
115 <proof prover="1"><result status="valid" time="0.060000" steps="12951"/></proof>
117 <goal name="two_equal_elements'vc.25" expl="loop invariant preservation" proved="true">
118 <proof prover="2" timelimit="1"><result status="valid" time="0.010000" steps="6216"/></proof>
120 <goal name="two_equal_elements'vc.26" expl="loop invariant preservation" proved="true">
121 <transf name="inline_all" proved="true" >
122 <goal name="two_equal_elements'vc.26.0" expl="loop invariant preservation" proved="true">
123 <proof prover="1"><result status="valid" time="0.020000" steps="22094"/></proof>
127 <goal name="two_equal_elements'vc.27" expl="index in array bounds" proved="true">
128 <proof prover="1"><result status="valid" time="0.040000" steps="7785"/></proof>
130 <goal name="two_equal_elements'vc.28" expl="loop invariant preservation" proved="true">
131 <proof prover="1"><result status="valid" time="0.010000" steps="5150"/></proof>
133 <goal name="two_equal_elements'vc.29" expl="loop invariant preservation" proved="true">
134 <proof prover="1"><result status="valid" time="0.040000" steps="11526"/></proof>
136 <goal name="two_equal_elements'vc.30" expl="loop invariant preservation" proved="true">
137 <proof prover="1"><result status="valid" time="0.000000" steps="12485"/></proof>
139 <goal name="two_equal_elements'vc.31" expl="loop invariant preservation" proved="true">
140 <proof prover="1"><result status="valid" time="0.050000" steps="16306"/></proof>
142 <goal name="two_equal_elements'vc.32" expl="loop invariant preservation" proved="true">
143 <transf name="unfold" proved="true" arg1="appear_twice">
144 <goal name="two_equal_elements'vc.32.0" expl="loop invariant preservation" proved="true">
145 <transf name="introduce_premises" proved="true" >
146 <goal name="two_equal_elements'vc.32.0.0" expl="loop invariant preservation" proved="true">
147 <transf name="assert" proved="true" arg1="(forall i1 j:int. 0 <= i1 /\ i1 < (i + 1) /\ 0 <= j /\ j < (i + 1) /\ i1 <> j -> a[i1] <> v \/ a[j] <> v)">
148 <goal name="two_equal_elements'vc.32.0.0.0" expl="asserted formula" proved="true">
149 <proof prover="1"><result status="valid" time="0.050000" steps="20255"/></proof>
151 <goal name="two_equal_elements'vc.32.0.0.1" expl="loop invariant preservation" proved="true">
152 <proof prover="1"><result status="valid" time="0.030000" steps="9626"/></proof>
160 <goal name="two_equal_elements'vc.33" expl="loop invariant preservation" proved="true">
161 <proof prover="2"><result status="valid" time="0.080000" steps="160387"/></proof>
163 <goal name="two_equal_elements'vc.34" expl="postcondition" proved="true">
164 <proof prover="1"><result status="valid" time="0.040000" steps="8065"/></proof>
166 <goal name="two_equal_elements'vc.35" expl="out of loop bounds" proved="true">
167 <proof prover="1"><result status="valid" time="0.020000" steps="4489"/></proof>