why3session.xml 8.93 KB
Newer Older
1
<?xml version="1.0" encoding="UTF-8"?>
MARCHE Claude's avatar
MARCHE Claude committed
2 3
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
"http://why3.lri.fr/why3session.dtd">
4
<why3session shape_version="5">
5
<prover id="0" name="Z3" version="4.6.0" timelimit="1" steplimit="0" memlimit="1000"/>
6
<prover id="1" name="CVC4" version="1.5" timelimit="1" steplimit="0" memlimit="1000"/>
DAILLER Sylvain's avatar
DAILLER Sylvain committed
7 8 9
<file proved="true">
<path name=".."/>
<path name="foveoos11_challenge3.mlw"/>
10
<theory name="TwoEqualElements" proved="true">
11
 <goal name="VC two_equal_elements" expl="VC for two_equal_elements" proved="true">
MARCHE Claude's avatar
MARCHE Claude committed
12
 <transf name="split_goal_right" proved="true" >
13
  <goal name="VC two_equal_elements.0" expl="array creation size" proved="true">
14
  <proof prover="1"><result status="valid" time="0.01"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
15
  </goal>
16
  <goal name="VC two_equal_elements.1" expl="loop invariant init" proved="true">
17
  <proof prover="1"><result status="valid" time="0.00"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
18
  </goal>
19
  <goal name="VC two_equal_elements.2" expl="loop invariant init" proved="true">
20
  <proof prover="1"><result status="valid" time="0.00"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
21
  </goal>
22
  <goal name="VC two_equal_elements.3" expl="loop invariant init" proved="true">
23
  <proof prover="1"><result status="valid" time="0.00"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
24
  </goal>
25
  <goal name="VC two_equal_elements.4" expl="loop invariant init" proved="true">
26
  <proof prover="1"><result status="valid" time="0.02"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
27
  </goal>
28
  <goal name="VC two_equal_elements.5" expl="loop invariant init" proved="true">
29
  <proof prover="1"><result status="valid" time="0.02"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
30
  </goal>
31
  <goal name="VC two_equal_elements.6" expl="loop invariant init" proved="true">
32
  <proof prover="1"><result status="valid" time="0.02"/></proof>
33 34
  </goal>
  <goal name="VC two_equal_elements.7" expl="index in array bounds" proved="true">
35
  <proof prover="1"><result status="valid" time="0.04"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
36
  </goal>
37
  <goal name="VC two_equal_elements.8" expl="index in array bounds" proved="true">
38
  <proof prover="1"><result status="valid" time="0.03"/></proof>
39 40
  </goal>
  <goal name="VC two_equal_elements.9" expl="loop invariant preservation" proved="true">
41
  <proof prover="1"><result status="valid" time="0.01"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
42
  </goal>
43
  <goal name="VC two_equal_elements.10" expl="loop invariant preservation" proved="true">
44
  <proof prover="1"><result status="valid" time="0.05"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
45
  </goal>
46
  <goal name="VC two_equal_elements.11" expl="loop invariant preservation" proved="true">
47
  <proof prover="1"><result status="valid" time="0.01"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
48
  </goal>
49
  <goal name="VC two_equal_elements.12" expl="loop invariant preservation" proved="true">
50
  <proof prover="1"><result status="valid" time="0.05"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
51
  </goal>
52
  <goal name="VC two_equal_elements.13" expl="loop invariant preservation" proved="true">
53
  <proof prover="1"><result status="valid" time="0.04"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
54
  </goal>
55
  <goal name="VC two_equal_elements.14" expl="loop invariant preservation" proved="true">
56 57
  <transf name="unfold" proved="true" arg1="appear_twice">
   <goal name="VC two_equal_elements.14.0" expl="loop invariant preservation" proved="true">
58 59 60
   <transf name="introduce_premises" proved="true" >
    <goal name="VC two_equal_elements.14.0.0" expl="loop invariant preservation" proved="true">
    <transf name="assert" proved="true" arg1="(forall i1 j:int. 0 &lt;= i1 /\ i1 &lt; (i + 1) /\ 0 &lt;= j /\ j &lt; (i + 1) /\ i1 &lt;&gt; j -&gt; a[i1] &lt;&gt; v \/ a[j] &lt;&gt; v)">
61
     <goal name="VC two_equal_elements.14.0.0.0" expl="asserted formula" proved="true">
62 63 64 65 66 67
     <proof prover="1"><result status="valid" time="0.08"/></proof>
     </goal>
     <goal name="VC two_equal_elements.14.0.0.1" expl="loop invariant preservation" proved="true">
     <proof prover="1"><result status="valid" time="0.03"/></proof>
     </goal>
    </transf>
68 69 70 71
    </goal>
   </transf>
   </goal>
  </transf>
MARCHE Claude's avatar
MARCHE Claude committed
72
  </goal>
73
  <goal name="VC two_equal_elements.15" expl="loop invariant preservation" proved="true">
74
  <proof prover="1"><result status="valid" time="0.01"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
75
  </goal>
76
  <goal name="VC two_equal_elements.16" expl="loop invariant preservation" proved="true">
77
  <proof prover="1"><result status="valid" time="0.04"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
78
  </goal>
79
  <goal name="VC two_equal_elements.17" expl="loop invariant preservation" proved="true">
80
  <proof prover="1"><result status="valid" time="0.08"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
81
  </goal>
82
  <goal name="VC two_equal_elements.18" expl="loop invariant preservation" proved="true">
83
  <proof prover="1"><result status="valid" time="0.06"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
84
  </goal>
85
  <goal name="VC two_equal_elements.19" expl="loop invariant preservation" proved="true">
86 87 88 89 90
  <transf name="inline_all" proved="true" >
   <goal name="VC two_equal_elements.19.0" expl="loop invariant preservation" proved="true">
   <proof prover="1"><result status="valid" time="0.02"/></proof>
   </goal>
  </transf>
MARCHE Claude's avatar
MARCHE Claude committed
91
  </goal>
92
  <goal name="VC two_equal_elements.20" expl="loop invariant preservation" proved="true">
93
  <proof prover="1"><result status="valid" time="0.03"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
94
  </goal>
95
  <goal name="VC two_equal_elements.21" expl="loop invariant preservation" proved="true">
96
  <proof prover="1"><result status="valid" time="0.01"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
97
  </goal>
98
  <goal name="VC two_equal_elements.22" expl="loop invariant preservation" proved="true">
99
  <proof prover="1"><result status="valid" time="0.06"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
100
  </goal>
101
  <goal name="VC two_equal_elements.23" expl="loop invariant preservation" proved="true">
102
  <proof prover="1"><result status="valid" time="0.00"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
103
  </goal>
104
  <goal name="VC two_equal_elements.24" expl="loop invariant preservation" proved="true">
105
  <proof prover="1"><result status="valid" time="0.05"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
106
  </goal>
107
  <goal name="VC two_equal_elements.25" expl="loop invariant preservation" proved="true">
108
  <proof prover="1"><result status="valid" time="0.01"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
109
  </goal>
110
  <goal name="VC two_equal_elements.26" expl="loop invariant preservation" proved="true">
111
  <transf name="unfold" proved="true" arg1="appear_twice">
112
   <goal name="VC two_equal_elements.26.0" expl="loop invariant preservation" proved="true">
113 114 115
   <transf name="introduce_premises" proved="true" >
    <goal name="VC two_equal_elements.26.0.0" expl="loop invariant preservation" proved="true">
    <transf name="assert" proved="true" arg1="(forall i1 j:int. 0 &lt;= i1 /\ i1 &lt; (i + 1) /\ 0 &lt;= j /\ j &lt; (i + 1) /\ i1 &lt;&gt; j -&gt; a[i1] &lt;&gt; v \/ a[j] &lt;&gt; v)">
116
     <goal name="VC two_equal_elements.26.0.0.0" expl="asserted formula" proved="true">
117 118 119 120 121 122
     <proof prover="1"><result status="valid" time="0.05"/></proof>
     </goal>
     <goal name="VC two_equal_elements.26.0.0.1" expl="loop invariant preservation" proved="true">
     <proof prover="1"><result status="valid" time="0.03"/></proof>
     </goal>
    </transf>
123 124
    </goal>
   </transf>
125 126
   </goal>
  </transf>
MARCHE Claude's avatar
MARCHE Claude committed
127
  </goal>
128
  <goal name="VC two_equal_elements.27" expl="index in array bounds" proved="true">
129
  <proof prover="1"><result status="valid" time="0.02"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
130
  </goal>
131
  <goal name="VC two_equal_elements.28" expl="loop invariant preservation" proved="true">
132
  <proof prover="1"><result status="valid" time="0.02"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
133
  </goal>
134
  <goal name="VC two_equal_elements.29" expl="loop invariant preservation" proved="true">
135
  <proof prover="1"><result status="valid" time="0.06"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
136
  </goal>
137
  <goal name="VC two_equal_elements.30" expl="loop invariant preservation" proved="true">
138
  <proof prover="1"><result status="valid" time="0.06"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
139
  </goal>
140
  <goal name="VC two_equal_elements.31" expl="loop invariant preservation" proved="true">
141
  <proof prover="1"><result status="valid" time="0.07"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
142
  </goal>
143
  <goal name="VC two_equal_elements.32" expl="loop invariant preservation" proved="true">
144 145
  <transf name="unfold" proved="true" arg1="appear_twice">
   <goal name="VC two_equal_elements.32.0" expl="loop invariant preservation" proved="true">
146 147 148
   <transf name="introduce_premises" proved="true" >
    <goal name="VC two_equal_elements.32.0.0" expl="loop invariant preservation" proved="true">
    <transf name="assert" proved="true" arg1="(forall i1 j:int. 0 &lt;= i1 /\ i1 &lt; (i + 1) /\ 0 &lt;= j /\ j &lt; (i + 1) /\ i1 &lt;&gt; j -&gt; a[i1] &lt;&gt; v \/ a[j] &lt;&gt; v)">
149
     <goal name="VC two_equal_elements.32.0.0.0" expl="asserted formula" proved="true">
150 151 152 153 154 155
     <proof prover="1"><result status="valid" time="0.12"/></proof>
     </goal>
     <goal name="VC two_equal_elements.32.0.0.1" expl="loop invariant preservation" proved="true">
     <proof prover="1"><result status="valid" time="0.02"/></proof>
     </goal>
    </transf>
156 157 158 159
    </goal>
   </transf>
   </goal>
  </transf>
MARCHE Claude's avatar
MARCHE Claude committed
160
  </goal>
161
  <goal name="VC two_equal_elements.33" expl="loop invariant preservation" proved="true">
162
  <proof prover="0"><result status="valid" time="0.50"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
163
  </goal>
164
  <goal name="VC two_equal_elements.34" expl="postcondition" proved="true">
165
  <proof prover="1"><result status="valid" time="0.04"/></proof>
MARCHE Claude's avatar
MARCHE Claude committed
166
  </goal>
167
  <goal name="VC two_equal_elements.35" expl="postcondition" proved="true">
168
  <proof prover="1"><result status="valid" time="0.02"/></proof>
169
  </goal>
MARCHE Claude's avatar
MARCHE Claude committed
170 171 172 173
 </transf>
 </goal>
</theory>
</file>
174
</why3session>