why3session.xml 72.3 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">
Andrei Paskevich's avatar
Andrei Paskevich committed
4
<why3session shape_version="4">
MARCHE Claude's avatar
MARCHE Claude committed
5 6 7 8
 <prover id="0" name="CVC3" version="2.4.1" timelimit="5" memlimit="0"/>
 <prover id="1" name="Alt-Ergo" version="0.95.1" timelimit="5"
  memlimit="1000"/>
 <prover id="2" name="Coq" version="8.4pl3" timelimit="10" memlimit="1000"/>
9
 <file name="../kmp.mlw" verified="true"
Andrei Paskevich's avatar
Andrei Paskevich committed
10
  expanded="true">
MARCHE Claude's avatar
MARCHE Claude committed
11
  <theory name="KnuthMorrisPratt" verified="true"
MARCHE Claude's avatar
MARCHE Claude committed
12
   expanded="true">
MARCHE Claude's avatar
MARCHE Claude committed
13 14
   <goal name="matches_empty" sum="37a6a31fd980dcabdc7a73c62c7bcee3"
    proved="true"
15
    shape="amatchesV0V2V1V3c0Iainfix &lt;=V3alengthV1Aainfix &lt;=c0V3Iainfix &lt;=V2alengthV0Aainfix &lt;=c0V2F">
MARCHE Claude's avatar
MARCHE Claude committed
16
    <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
17
     <result status="valid" time="0.01"/>
18 19
    </proof>
   </goal>
MARCHE Claude's avatar
MARCHE Claude committed
20
   <goal name="matches_right_extension"
21
    sum="a00dc728eccad66b8b37036dcef1636a" proved="true"
22
    shape="amatchesV0V2V1V3ainfix +V4c1Iainfix =amixfix []V0ainfix +V2V4amixfix []V1ainfix +V3V4Iainfix &lt;=V3ainfix -ainfix -alengthV1V4c1Iainfix &lt;=V2ainfix -ainfix -alengthV0V4c1IamatchesV0V2V1V3V4F">
MARCHE Claude's avatar
MARCHE Claude committed
23
    <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
24
     <result status="valid" time="0.01"/>
25 26
    </proof>
   </goal>
MARCHE Claude's avatar
MARCHE Claude committed
27
   <goal name="matches_contradiction_at_first"
28
    sum="86bba81000479497439aced43dde2199" proved="true"
29
    shape="NamatchesV0V2V1V3V4INainfix =amixfix []V0V2amixfix []V1V3Iainfix &lt;c0V4F">
MARCHE Claude's avatar
MARCHE Claude committed
30
    <proof prover="2" memlimit="0"
31
     edited="kmp_WP_KnuthMorrisPratt_matches_contradiction_at_first_1.v">
32
     <result status="valid" time="1.17"/>
33 34
    </proof>
   </goal>
MARCHE Claude's avatar
MARCHE Claude committed
35
   <goal name="matches_contradiction_at_i"
36
    sum="bbdcc840d7eaae7b0e699920d7f32938" proved="true"
37
    shape="NamatchesV0V2V1V3V5INainfix =amixfix []V0ainfix +V2V4amixfix []V1ainfix +V3V4Iainfix &lt;V4V5Aainfix &lt;=c0V4Iainfix &lt;c0V5F">
MARCHE Claude's avatar
MARCHE Claude committed
38
    <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
39
     <result status="valid" time="0.01"/>
40 41
    </proof>
   </goal>
MARCHE Claude's avatar
MARCHE Claude committed
42
   <goal name="matches_right_weakening"
43
    sum="5a8568357685294629ecff33881fd060" proved="true"
44
    shape="amatchesV0V2V1V3V5Iainfix &lt;V5V4IamatchesV0V2V1V3V4F">
MARCHE Claude's avatar
MARCHE Claude committed
45
    <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
46
     <result status="valid" time="0.01"/>
47 48
    </proof>
   </goal>
MARCHE Claude's avatar
MARCHE Claude committed
49 50
   <goal name="matches_left_weakening" sum="435c536a821624899cbcaead7298663d"
    proved="true"
51
    shape="amatchesV0V2V1V3V5Iainfix &lt;V5V4IamatchesV0ainfix -V2ainfix -V4V5V1ainfix -V3ainfix -V4V5V4F">
MARCHE Claude's avatar
MARCHE Claude committed
52
    <proof prover="2" memlimit="0"
53
     edited="kmp_WP_KnuthMorrisPratt_matches_left_weakening_1.v">
54
     <result status="valid" time="1.21"/>
55 56
    </proof>
   </goal>
MARCHE Claude's avatar
MARCHE Claude committed
57 58
   <goal name="matches_sym" sum="7c1916b184b0b9ea7b067ba5d30ac04e"
    proved="true"
MARCHE Claude's avatar
MARCHE Claude committed
59
    shape="amatchesV1V3V0V2V4IamatchesV0V2V1V3V4F">
MARCHE Claude's avatar
MARCHE Claude committed
60
    <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
61
     <result status="valid" time="0.00"/>
62 63
    </proof>
   </goal>
MARCHE Claude's avatar
MARCHE Claude committed
64 65
   <goal name="matches_trans" sum="f12a4ad88d6c1fdc52ca18f3e5715794"
    proved="true"
MARCHE Claude's avatar
MARCHE Claude committed
66
    shape="amatchesV0V3V2V5V6IamatchesV1V4V2V5V6IamatchesV0V3V1V4V6F">
MARCHE Claude's avatar
MARCHE Claude committed
67
    <proof prover="1" timelimit="10" memlimit="0">
68
     <result status="valid" time="0.01"/>
69 70
    </proof>
   </goal>
MARCHE Claude's avatar
MARCHE Claude committed
71 72
   <goal name="next_iteration" sum="60d58dc6b2df4da6d3cc382409d0332b"
    proved="true"
73
    shape="amatchesV1ainfix -V2V4V0c0V4Iais_nextV0V3V4IamatchesV1ainfix -V2V3V0c0V3Iainfix &lt;=V2alengthV1Aainfix &lt;=V3V2Iainfix &lt;V3alengthV0Aainfix &lt;c0V3F">
MARCHE Claude's avatar
MARCHE Claude committed
74
    <proof prover="2" memlimit="0"
75
     edited="kmp_WP_KnuthMorrisPratt_next_iteration_1.v">
76
     <result status="valid" time="1.30"/>
77 78
    </proof>
   </goal>
MARCHE Claude's avatar
MARCHE Claude committed
79 80
   <goal name="next_is_maximal" sum="68727ef791a8a8ddaa1cf1bcc823545e"
    proved="true"
81
    shape="NamatchesV1V5V0c0alengthV0Iais_nextV0V3V4IamatchesV1ainfix -V2V3V0c0V3Iainfix &lt;V5ainfix -V2V4Aainfix &lt;ainfix -V2V3V5Iainfix &lt;=V2alengthV1Aainfix &lt;=V3V2Iainfix &lt;V3alengthV0Aainfix &lt;c0V3F">
MARCHE Claude's avatar
MARCHE Claude committed
82
    <proof prover="2" memlimit="0"
83
     edited="kmp_WP_KnuthMorrisPratt_next_is_maximal_1.v">
84
     <result status="valid" time="1.22"/>
85 86
    </proof>
   </goal>
MARCHE Claude's avatar
MARCHE Claude committed
87
   <goal name="next_1_0" sum="7090185c33d912be685f7c3871e8c568" proved="true"
88
    shape="ais_nextV0c1c0Iainfix &lt;=c1alengthV0F">
MARCHE Claude's avatar
MARCHE Claude committed
89
    <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
90
     <result status="valid" time="0.00"/>
91 92
    </proof>
   </goal>
MARCHE Claude's avatar
MARCHE Claude committed
93
   <goal name="WP_parameter initnext" expl="VC for initnext"
94
    sum="d6a75105c701c7d66cd0ec15351a7247" proved="true" expanded="true"
95
    shape="iais_nextV2V3agetaconstc0V3Iainfix &lt;V3V0Aainfix &lt;c0V3FAainfix =V0V0iais_nextV2V8agetV7V8Iainfix &lt;V8V0Aainfix &lt;c0V8FAainfix =V0V0Aainfix &lt;=c0V0iiainfix &lt;V9V5Aainfix &lt;=c0V5Oainfix &lt;ainfix -V0V6ainfix -V0V6Aainfix &lt;=c0ainfix -V0V6Aais_nextV2V10agetV7V10Iainfix &lt;=V10V6Aainfix &lt;c0V10FANamatchesV2ainfix -ainfix +V6c1V11V2c0V11Iainfix &lt;V11ainfix +V6c1Aainfix &lt;ainfix +V9c1V11FAamatchesV2ainfix -V6V9V2c0V9Aainfix &lt;=V6V0Aainfix &lt;V9V6Aainfix &lt;=c0V9Iainfix =V9agetV7V5FAainfix &lt;V5V0Aainfix &lt;=c0V5Aainfix &lt;=c0V0ainfix &lt;V5V5Aainfix &lt;=c0V5Aainfix =ainfix -V0V6ainfix -V0V12Oainfix &lt;ainfix -V0V12ainfix -V0V6Aainfix &lt;=c0ainfix -V0V6Aais_nextV2V14agetV13V14Iainfix &lt;=V14V12Aainfix &lt;c0V14FANamatchesV2ainfix -ainfix +V12c1V15V2c0V15Iainfix &lt;V15ainfix +V12c1Aainfix &lt;ainfix +V5c1V15FAamatchesV2ainfix -V12V5V2c0V5Aainfix &lt;=V12V0Aainfix &lt;V5V12Aainfix &lt;=c0V5Iainfix =V13asetV7V12c0Aainfix &lt;=c0V0FAainfix &lt;V12V0Aainfix &lt;=c0V12Aainfix &lt;=c0V0Iainfix =V12ainfix +V6c1Fainfix =V5c0ainfix &lt;V17V5Aainfix &lt;=c0V5Aainfix =ainfix -V0V6ainfix -V0V16Oainfix &lt;ainfix -V0V16ainfix -V0V6Aainfix &lt;=c0ainfix -V0V6Aais_nextV2V19agetV18V19Iainfix &lt;=V19V16Aainfix &lt;c0V19FANamatchesV2ainfix -ainfix +V16c1V20V2c0V20Iainfix &lt;V20ainfix +V16c1Aainfix &lt;ainfix +V17c1V20FAamatchesV2ainfix -V16V17V2c0V17Aainfix &lt;=V16V0Aainfix &lt;V17V16Aainfix &lt;=c0V17Iainfix =V18asetV7V16V17Aainfix &lt;=c0V0FAainfix &lt;V16V0Aainfix &lt;=c0V16Aainfix &lt;=c0V0Iainfix =V17ainfix +V5c1FIainfix =V16ainfix +V6c1Fainfix =agetV1V6agetV1V5Aainfix &lt;V6V0Aainfix &lt;=c0V6Aainfix &lt;V5V0Aainfix &lt;=c0V5ainfix &lt;V6ainfix -V0c1Iais_nextV2V21agetV7V21Iainfix &lt;=V21V6Aainfix &lt;c0V21FANamatchesV2ainfix -ainfix +V6c1V22V2c0V22Iainfix &lt;V22ainfix +V6c1Aainfix &lt;ainfix +V5c1V22FAamatchesV2ainfix -V6V5V2c0V5Aainfix &lt;=V6V0Aainfix &lt;V5V6Aainfix &lt;=c0V5FAais_nextV2V23agetV4V23Iainfix &lt;=V23c1Aainfix &lt;c0V23FANamatchesV2ainfix -ainfix +c1c1V24V2c0V24Iainfix &lt;V24ainfix +c1c1Aainfix &lt;ainfix +c0c1V24FAamatchesV2ainfix -c1c0V2c0c0Aainfix &lt;=c1V0Aainfix &lt;c0c1Aainfix &lt;=c0c0Iainfix =V4asetaconstc0c1c0Aainfix &lt;=c0V0FAainfix &lt;c1V0Aainfix &lt;=c0c1ainfix &lt;c1V0Iainfix &lt;=c0V0Aainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
96 97
    <label name="expl:VC for initnext"/>
    <transf name="split_goal" proved="true"
MARCHE Claude's avatar
MARCHE Claude committed
98
     expanded="true">
MARCHE Claude's avatar
MARCHE Claude committed
99
     <goal name="WP_parameter initnext.1" expl="1. array creation size"
100
      sum="a428dcaa91bf416bb6bcc1155332e31d" proved="true"
MARCHE Claude's avatar
MARCHE Claude committed
101
      shape="array creation sizeainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
102
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
103
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
104
       <result status="valid" time="0.01"/>
105 106
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
107
     <goal name="WP_parameter initnext.2" expl="2. index in array bounds"
108
      sum="b0e24331e9f1a23b1a64924aaa173191" proved="true"
MARCHE Claude's avatar
MARCHE Claude committed
109
      shape="index in array boundsainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
110
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
111
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
112
       <result status="valid" time="0.01"/>
113 114
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
115
     <goal name="WP_parameter initnext.3" expl="3. loop invariant init"
116
      sum="21bdf587b2ddc6fcb3d671f29512904c" proved="true"
117
      shape="loop invariant initainfix &lt;=c1V0Aainfix &lt;c0c1Aainfix &lt;=c0c0Iainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
118
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
119
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
120 121
       <result status="valid" time="0.01"/>
      </proof>
122
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
123
     <goal name="WP_parameter initnext.4" expl="4. loop invariant init"
124
      sum="c4b4d7d56a0512d787810a777a95f865" proved="true"
125
      shape="loop invariant initamatchesV2ainfix -c1c0V2c0c0Iainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
126
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
127
      <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
128
       <result status="valid" time="0.02"/>
Andrei Paskevich's avatar
Andrei Paskevich committed
129 130
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
131
     <goal name="WP_parameter initnext.5" expl="5. loop invariant init"
132
      sum="decd40037d45e821995edd6140aeea0e" proved="true"
133
      shape="loop invariant initNamatchesV2ainfix -ainfix +c1c1V4V2c0V4Iainfix &lt;V4ainfix +c1c1Aainfix &lt;ainfix +c0c1V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
134
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
135
      <proof prover="1" timelimit="10" memlimit="0">
136
       <result status="valid" time="0.01"/>
137 138
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
139
     <goal name="WP_parameter initnext.6" expl="6. loop invariant init"
140
      sum="257f5674fd118d1fa55277060845521f" proved="true"
141
      shape="loop invariant initais_nextV2V4agetV3V4Iainfix &lt;=V4c1Aainfix &lt;c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
142
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
143
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
144 145
       <result status="valid" time="0.01"/>
      </proof>
146
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
147
     <goal name="WP_parameter initnext.7" expl="7. index in array bounds"
148
      sum="591cc2da8c295106073e2709665339c2" proved="true"
MARCHE Claude's avatar
MARCHE Claude committed
149
      shape="index in array boundsainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V7agetV6V7Iainfix &lt;=V7V5Aainfix &lt;c0V7FANamatchesV2ainfix -ainfix +V5c1V8V2c0V8Iainfix &lt;V8ainfix +V5c1Aainfix &lt;ainfix +V4c1V8FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
150
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
151
      <proof prover="1" timelimit="10" memlimit="0">
MARCHE Claude's avatar
MARCHE Claude committed
152
       <result status="valid" time="0.02"/>
153
      </proof>
154
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
155
     <goal name="WP_parameter initnext.8" expl="8. index in array bounds"
156
      sum="a4d45956bcc8eaffd62d87186034eb04" proved="true"
MARCHE Claude's avatar
MARCHE Claude committed
157
      shape="index in array boundsainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V7agetV6V7Iainfix &lt;=V7V5Aainfix &lt;c0V7FANamatchesV2ainfix -ainfix +V5c1V8V2c0V8Iainfix &lt;V8ainfix +V5c1Aainfix &lt;ainfix +V4c1V8FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
158
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
159
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
160
       <result status="valid" time="0.01"/>
161 162
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
163
     <goal name="WP_parameter initnext.9" expl="9. type invariant"
164
      sum="4f4882a40479c1949ac81d93a8c53b2d" proved="true"
165
      shape="type invariantainfix &lt;=c0V0Iainfix =V8ainfix +V4c1FIainfix =V7ainfix +V5c1FIainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V9agetV6V9Iainfix &lt;=V9V5Aainfix &lt;c0V9FANamatchesV2ainfix -ainfix +V5c1V10V2c0V10Iainfix &lt;V10ainfix +V5c1Aainfix &lt;ainfix +V4c1V10FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
166
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
167
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
168 169
       <result status="valid" time="0.01"/>
      </proof>
170
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
171 172
     <goal name="WP_parameter initnext.10" expl="10. index in array bounds"
      sum="c1d67f7ed1cb51e761680efc5e5a4538" proved="true"
MARCHE Claude's avatar
MARCHE Claude committed
173
      shape="index in array boundsainfix &lt;V7V0Aainfix &lt;=c0V7Iainfix &lt;=c0V0Iainfix =V8ainfix +V4c1FIainfix =V7ainfix +V5c1FIainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V9agetV6V9Iainfix &lt;=V9V5Aainfix &lt;c0V9FANamatchesV2ainfix -ainfix +V5c1V10V2c0V10Iainfix &lt;V10ainfix +V5c1Aainfix &lt;ainfix +V4c1V10FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
174
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
175
      <proof prover="1">
MARCHE Claude's avatar
MARCHE Claude committed
176
       <result status="valid" time="0.01"/>
177 178
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
179
     <goal name="WP_parameter initnext.11"
180
      expl="11. loop invariant preservation"
181
      sum="ac47a1d1bcd79d25026daa686fd63ed3" proved="true"
182
      shape="loop invariant preservationainfix &lt;=V7V0Aainfix &lt;V8V7Aainfix &lt;=c0V8Iainfix =V9asetV6V7V8Aainfix &lt;=c0V0FIainfix &lt;V7V0Aainfix &lt;=c0V7Aainfix &lt;=c0V0Iainfix =V8ainfix +V4c1FIainfix =V7ainfix +V5c1FIainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V10agetV6V10Iainfix &lt;=V10V5Aainfix &lt;c0V10FANamatchesV2ainfix -ainfix +V5c1V11V2c0V11Iainfix &lt;V11ainfix +V5c1Aainfix &lt;ainfix +V4c1V11FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
183
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
184
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
185
       <result status="valid" time="0.02"/>
Andrei Paskevich's avatar
Andrei Paskevich committed
186
      </proof>
187
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
188
     <goal name="WP_parameter initnext.12"
189
      expl="12. loop invariant preservation"
190
      sum="9909bf8ef6a5200b1895da240dca7c92" proved="true"
191
      shape="loop invariant preservationamatchesV2ainfix -V7V8V2c0V8Iainfix =V9asetV6V7V8Aainfix &lt;=c0V0FIainfix &lt;V7V0Aainfix &lt;=c0V7Aainfix &lt;=c0V0Iainfix =V8ainfix +V4c1FIainfix =V7ainfix +V5c1FIainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V10agetV6V10Iainfix &lt;=V10V5Aainfix &lt;c0V10FANamatchesV2ainfix -ainfix +V5c1V11V2c0V11Iainfix &lt;V11ainfix +V5c1Aainfix &lt;ainfix +V4c1V11FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
192
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
193
      <proof prover="1" timelimit="7">
MARCHE Claude's avatar
MARCHE Claude committed
194
       <result status="valid" time="0.02"/>
Andrei Paskevich's avatar
Andrei Paskevich committed
195
      </proof>
196
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
197
     <goal name="WP_parameter initnext.13"
198
      expl="13. loop invariant preservation"
199
      sum="582052edbd29ee529e4ac3c119a96ca9" proved="true" expanded="true"
200
      shape="loop invariant preservationNamatchesV2ainfix -ainfix +V7c1V10V2c0V10Iainfix &lt;V10ainfix +V7c1Aainfix &lt;ainfix +V8c1V10FIainfix =V9asetV6V7V8Aainfix &lt;=c0V0FIainfix &lt;V7V0Aainfix &lt;=c0V7Aainfix &lt;=c0V0Iainfix =V8ainfix +V4c1FIainfix =V7ainfix +V5c1FIainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V11agetV6V11Iainfix &lt;=V11V5Aainfix &lt;c0V11FANamatchesV2ainfix -ainfix +V5c1V12V2c0V12Iainfix &lt;V12ainfix +V5c1Aainfix &lt;ainfix +V4c1V12FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
201
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
202
      <proof prover="2" timelimit="7"
203
       edited="kmp_WP_KnuthMorrisPratt_WP_parameter_initnext_2.v">
Andrei Paskevich's avatar
Andrei Paskevich committed
204
       <result status="valid" time="1.11"/>
Andrei Paskevich's avatar
Andrei Paskevich committed
205 206
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
207
     <goal name="WP_parameter initnext.14"
Andrei Paskevich's avatar
Andrei Paskevich committed
208
      expl="14. loop invariant preservation"
209
      sum="7d4f0a56e3d3e9311b13a1175c573902" proved="true"
210
      shape="loop invariant preservationais_nextV2V10agetV9V10Iainfix &lt;=V10V7Aainfix &lt;c0V10FIainfix =V9asetV6V7V8Aainfix &lt;=c0V0FIainfix &lt;V7V0Aainfix &lt;=c0V7Aainfix &lt;=c0V0Iainfix =V8ainfix +V4c1FIainfix =V7ainfix +V5c1FIainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V11agetV6V11Iainfix &lt;=V11V5Aainfix &lt;c0V11FANamatchesV2ainfix -ainfix +V5c1V12V2c0V12Iainfix &lt;V12ainfix +V5c1Aainfix &lt;ainfix +V4c1V12FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
211 212 213
      <label name="expl:VC for initnext"/>
      <transf name="inline_goal"
       proved="true">
MARCHE Claude's avatar
MARCHE Claude committed
214
       <goal name="WP_parameter initnext.14.1"
215
        expl="1. loop invariant preservation"
216
        sum="740b322cdc2b8aaf262dde8cd4d38c56" proved="true"
217
        shape="loop invariant preservationNamatchesV2ainfix -V10V11V2c0V11Iainfix &lt;V11V10Aainfix &lt;agetV9V10V11FAamatchesV2ainfix -V10agetV9V10V2c0agetV9V10Aainfix &lt;agetV9V10V10Aainfix &lt;=c0agetV9V10Iainfix =V10V7Oainfix &lt;V10V7Aainfix &lt;c0V10FIainfix =V9asetV6V7V8Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;V7V0Aainfix =c0V7Oainfix &lt;c0V7Aainfix =c0V0Oainfix &lt;c0V0Iainfix =V8ainfix +V4c1FIainfix =V7ainfix +V5c1FIainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix =c0V5Oainfix &lt;c0V5Iainfix &lt;V4V0Aainfix =c0V4Oainfix &lt;c0V4Iainfix &lt;V5ainfix -V0c1INamatchesV2ainfix -V12V13V2c0V13Iainfix &lt;V13V12Aainfix &lt;agetV6V12V13FAamatchesV2ainfix -V12agetV6V12V2c0agetV6V12Aainfix &lt;agetV6V12V12Aainfix &lt;=c0agetV6V12Iainfix =V12V5Oainfix &lt;V12V5Aainfix &lt;c0V12FANainfix =amixfix []V2ainfix +ainfix -ainfix +V5c1V14V15amixfix []V2ainfix +c0V15Iainfix &lt;V15V14Aainfix &lt;=c0V15FAainfix &lt;=c0ainfix -alengthV2V14Aainfix &lt;=c0c0Aainfix &lt;=ainfix -ainfix +V5c1V14ainfix -alengthV2V14Aainfix &lt;=c0ainfix -ainfix +V5c1V14Iainfix &lt;V14ainfix +V5c1Aainfix &lt;ainfix +V4c1V14FAainfix =amixfix []V2ainfix +ainfix -V5V4V16amixfix []V2ainfix +c0V16Iainfix &lt;V16V4Aainfix &lt;=c0V16FAainfix &lt;=c0ainfix -alengthV2V4Aainfix &lt;=c0c0Aainfix &lt;=ainfix -V5V4ainfix -alengthV2V4Aainfix &lt;=c0ainfix -V5V4Aainfix =V5V0Oainfix &lt;V5V0Aainfix &lt;V4V5Aainfix =c0V4Oainfix &lt;c0V4FIainfix =V3asetaconstc0c1c0Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;c1V0Aainfix =c0c1Oainfix &lt;c0c1Iainfix &lt;c1V0Iainfix =c0V0Oainfix &lt;c0V0Iainfix &lt;=c0V0Iainfix =c1V0Oainfix &lt;c1V0Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V1F">
218 219 220
        <label name="expl:VC for initnext"/>
        <transf name="split_goal_wp"
         proved="true">
MARCHE Claude's avatar
MARCHE Claude committed
221
         <goal name="WP_parameter initnext.14.1.1"
222
          expl="1. loop invariant preservation"
223
          sum="498a51bd5d7ccc24c7e3769756e7bc6b" proved="true"
224
          shape="loop invariant preservationainfix &lt;=c0agetV9V10Iainfix =V10V7Oainfix &lt;V10V7Aainfix &lt;c0V10FIainfix =V9asetV6V7V8Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;V7V0Aainfix =c0V7Oainfix &lt;c0V7Aainfix =c0V0Oainfix &lt;c0V0Iainfix =V8ainfix +V4c1FIainfix =V7ainfix +V5c1FIainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix =c0V5Oainfix &lt;c0V5Iainfix &lt;V4V0Aainfix =c0V4Oainfix &lt;c0V4Iainfix &lt;V5ainfix -V0c1INamatchesV2ainfix -V11V12V2c0V12Iainfix &lt;V12V11Aainfix &lt;agetV6V11V12FAamatchesV2ainfix -V11agetV6V11V2c0agetV6V11Aainfix &lt;agetV6V11V11Aainfix &lt;=c0agetV6V11Iainfix =V11V5Oainfix &lt;V11V5Aainfix &lt;c0V11FANainfix =amixfix []V2ainfix +ainfix -ainfix +V5c1V13V14amixfix []V2ainfix +c0V14Iainfix &lt;V14V13Aainfix &lt;=c0V14FAainfix &lt;=c0ainfix -alengthV2V13Aainfix &lt;=c0c0Aainfix &lt;=ainfix -ainfix +V5c1V13ainfix -alengthV2V13Aainfix &lt;=c0ainfix -ainfix +V5c1V13Iainfix &lt;V13ainfix +V5c1Aainfix &lt;ainfix +V4c1V13FAainfix =amixfix []V2ainfix +ainfix -V5V4V15amixfix []V2ainfix +c0V15Iainfix &lt;V15V4Aainfix &lt;=c0V15FAainfix &lt;=c0ainfix -alengthV2V4Aainfix &lt;=c0c0Aainfix &lt;=ainfix -V5V4ainfix -alengthV2V4Aainfix &lt;=c0ainfix -V5V4Aainfix =V5V0Oainfix &lt;V5V0Aainfix &lt;V4V5Aainfix =c0V4Oainfix &lt;c0V4FIainfix =V3asetaconstc0c1c0Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;c1V0Aainfix =c0c1Oainfix &lt;c0c1Iainfix &lt;c1V0Iainfix =c0V0Oainfix &lt;c0V0Iainfix &lt;=c0V0Iainfix =c1V0Oainfix &lt;c1V0Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V1F">
225
          <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
226
          <proof prover="1">
227 228 229
           <result status="valid" time="0.07"/>
          </proof>
         </goal>
MARCHE Claude's avatar
MARCHE Claude committed
230
         <goal name="WP_parameter initnext.14.1.2"
231
          expl="2. loop invariant preservation"
232
          sum="19c649094f210ab75d067a3d9520f695" proved="true"
233
          shape="loop invariant preservationainfix &lt;agetV9V10V10Iainfix =V10V7Oainfix &lt;V10V7Aainfix &lt;c0V10FIainfix =V9asetV6V7V8Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;V7V0Aainfix =c0V7Oainfix &lt;c0V7Aainfix =c0V0Oainfix &lt;c0V0Iainfix =V8ainfix +V4c1FIainfix =V7ainfix +V5c1FIainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix =c0V5Oainfix &lt;c0V5Iainfix &lt;V4V0Aainfix =c0V4Oainfix &lt;c0V4Iainfix &lt;V5ainfix -V0c1INamatchesV2ainfix -V11V12V2c0V12Iainfix &lt;V12V11Aainfix &lt;agetV6V11V12FAamatchesV2ainfix -V11agetV6V11V2c0agetV6V11Aainfix &lt;agetV6V11V11Aainfix &lt;=c0agetV6V11Iainfix =V11V5Oainfix &lt;V11V5Aainfix &lt;c0V11FANainfix =amixfix []V2ainfix +ainfix -ainfix +V5c1V13V14amixfix []V2ainfix +c0V14Iainfix &lt;V14V13Aainfix &lt;=c0V14FAainfix &lt;=c0ainfix -alengthV2V13Aainfix &lt;=c0c0Aainfix &lt;=ainfix -ainfix +V5c1V13ainfix -alengthV2V13Aainfix &lt;=c0ainfix -ainfix +V5c1V13Iainfix &lt;V13ainfix +V5c1Aainfix &lt;ainfix +V4c1V13FAainfix =amixfix []V2ainfix +ainfix -V5V4V15amixfix []V2ainfix +c0V15Iainfix &lt;V15V4Aainfix &lt;=c0V15FAainfix &lt;=c0ainfix -alengthV2V4Aainfix &lt;=c0c0Aainfix &lt;=ainfix -V5V4ainfix -alengthV2V4Aainfix &lt;=c0ainfix -V5V4Aainfix =V5V0Oainfix &lt;V5V0Aainfix &lt;V4V5Aainfix =c0V4Oainfix &lt;c0V4FIainfix =V3asetaconstc0c1c0Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;c1V0Aainfix =c0c1Oainfix &lt;c0c1Iainfix &lt;c1V0Iainfix =c0V0Oainfix &lt;c0V0Iainfix &lt;=c0V0Iainfix =c1V0Oainfix &lt;c1V0Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V1F">
234
          <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
235
          <proof prover="1">
236 237 238
           <result status="valid" time="0.05"/>
          </proof>
         </goal>
MARCHE Claude's avatar
MARCHE Claude committed
239
         <goal name="WP_parameter initnext.14.1.3"
240
          expl="3. loop invariant preservation"
241
          sum="3ab869a779995446a3802dbf1ec71ce7" proved="true"
242
          shape="loop invariant preservationamatchesV2ainfix -V10agetV9V10V2c0agetV9V10Iainfix =V10V7Oainfix &lt;V10V7Aainfix &lt;c0V10FIainfix =V9asetV6V7V8Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;V7V0Aainfix =c0V7Oainfix &lt;c0V7Aainfix =c0V0Oainfix &lt;c0V0Iainfix =V8ainfix +V4c1FIainfix =V7ainfix +V5c1FIainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix =c0V5Oainfix &lt;c0V5Iainfix &lt;V4V0Aainfix =c0V4Oainfix &lt;c0V4Iainfix &lt;V5ainfix -V0c1INamatchesV2ainfix -V11V12V2c0V12Iainfix &lt;V12V11Aainfix &lt;agetV6V11V12FAamatchesV2ainfix -V11agetV6V11V2c0agetV6V11Aainfix &lt;agetV6V11V11Aainfix &lt;=c0agetV6V11Iainfix =V11V5Oainfix &lt;V11V5Aainfix &lt;c0V11FANainfix =amixfix []V2ainfix +ainfix -ainfix +V5c1V13V14amixfix []V2ainfix +c0V14Iainfix &lt;V14V13Aainfix &lt;=c0V14FAainfix &lt;=c0ainfix -alengthV2V13Aainfix &lt;=c0c0Aainfix &lt;=ainfix -ainfix +V5c1V13ainfix -alengthV2V13Aainfix &lt;=c0ainfix -ainfix +V5c1V13Iainfix &lt;V13ainfix +V5c1Aainfix &lt;ainfix +V4c1V13FAainfix =amixfix []V2ainfix +ainfix -V5V4V15amixfix []V2ainfix +c0V15Iainfix &lt;V15V4Aainfix &lt;=c0V15FAainfix &lt;=c0ainfix -alengthV2V4Aainfix &lt;=c0c0Aainfix &lt;=ainfix -V5V4ainfix -alengthV2V4Aainfix &lt;=c0ainfix -V5V4Aainfix =V5V0Oainfix &lt;V5V0Aainfix &lt;V4V5Aainfix =c0V4Oainfix &lt;c0V4FIainfix =V3asetaconstc0c1c0Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;c1V0Aainfix =c0c1Oainfix &lt;c0c1Iainfix &lt;c1V0Iainfix =c0V0Oainfix &lt;c0V0Iainfix &lt;=c0V0Iainfix =c1V0Oainfix &lt;c1V0Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V1F">
243
          <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
244
          <proof prover="1">
MARCHE Claude's avatar
MARCHE Claude committed
245
           <result status="valid" time="0.06"/>
246 247
          </proof>
         </goal>
MARCHE Claude's avatar
MARCHE Claude committed
248
         <goal name="WP_parameter initnext.14.1.4"
249
          expl="4. loop invariant preservation"
250
          sum="d82412e13dad010520ab4bf9e1798c10" proved="true"
251
          shape="loop invariant preservationNamatchesV2ainfix -V10V11V2c0V11Iainfix &lt;V11V10Aainfix &lt;agetV9V10V11FIainfix =V10V7Oainfix &lt;V10V7Aainfix &lt;c0V10FIainfix =V9asetV6V7V8Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;V7V0Aainfix =c0V7Oainfix &lt;c0V7Aainfix =c0V0Oainfix &lt;c0V0Iainfix =V8ainfix +V4c1FIainfix =V7ainfix +V5c1FIainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix =c0V5Oainfix &lt;c0V5Iainfix &lt;V4V0Aainfix =c0V4Oainfix &lt;c0V4Iainfix &lt;V5ainfix -V0c1INamatchesV2ainfix -V12V13V2c0V13Iainfix &lt;V13V12Aainfix &lt;agetV6V12V13FAamatchesV2ainfix -V12agetV6V12V2c0agetV6V12Aainfix &lt;agetV6V12V12Aainfix &lt;=c0agetV6V12Iainfix =V12V5Oainfix &lt;V12V5Aainfix &lt;c0V12FANainfix =amixfix []V2ainfix +ainfix -ainfix +V5c1V14V15amixfix []V2ainfix +c0V15Iainfix &lt;V15V14Aainfix &lt;=c0V15FAainfix &lt;=c0ainfix -alengthV2V14Aainfix &lt;=c0c0Aainfix &lt;=ainfix -ainfix +V5c1V14ainfix -alengthV2V14Aainfix &lt;=c0ainfix -ainfix +V5c1V14Iainfix &lt;V14ainfix +V5c1Aainfix &lt;ainfix +V4c1V14FAainfix =amixfix []V2ainfix +ainfix -V5V4V16amixfix []V2ainfix +c0V16Iainfix &lt;V16V4Aainfix &lt;=c0V16FAainfix &lt;=c0ainfix -alengthV2V4Aainfix &lt;=c0c0Aainfix &lt;=ainfix -V5V4ainfix -alengthV2V4Aainfix &lt;=c0ainfix -V5V4Aainfix =V5V0Oainfix &lt;V5V0Aainfix &lt;V4V5Aainfix =c0V4Oainfix &lt;c0V4FIainfix =V3asetaconstc0c1c0Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;c1V0Aainfix =c0c1Oainfix &lt;c0c1Iainfix &lt;c1V0Iainfix =c0V0Oainfix &lt;c0V0Iainfix &lt;=c0V0Iainfix =c1V0Oainfix &lt;c1V0Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V1F">
252
          <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
253
          <proof prover="1">
MARCHE Claude's avatar
MARCHE Claude committed
254
           <result status="valid" time="0.25"/>
255 256 257 258 259
          </proof>
         </goal>
        </transf>
       </goal>
      </transf>
260
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
261 262
     <goal name="WP_parameter initnext.15" expl="15. loop variant decrease"
      sum="796b2add7818cd74d44225de95477c2b" proved="true"
263
      shape="loop variant decreaseainfix &lt;V8V4Aainfix &lt;=c0V4Aainfix =ainfix -V0V5ainfix -V0V7Oainfix &lt;ainfix -V0V7ainfix -V0V5Aainfix &lt;=c0ainfix -V0V5Iainfix =V9asetV6V7V8Aainfix &lt;=c0V0FIainfix &lt;V7V0Aainfix &lt;=c0V7Aainfix &lt;=c0V0Iainfix =V8ainfix +V4c1FIainfix =V7ainfix +V5c1FIainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V10agetV6V10Iainfix &lt;=V10V5Aainfix &lt;c0V10FANamatchesV2ainfix -ainfix +V5c1V11V2c0V11Iainfix &lt;V11ainfix +V5c1Aainfix &lt;ainfix +V4c1V11FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
264
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
265
      <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
266
       <result status="valid" time="0.02"/>
267 268
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
269
     <goal name="WP_parameter initnext.16" expl="16. type invariant"
270
      sum="781aed251c163ee8b2c23d2a732c5d48" proved="true"
271
      shape="type invariantainfix &lt;=c0V0Iainfix =V7ainfix +V5c1FIainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V8agetV6V8Iainfix &lt;=V8V5Aainfix &lt;c0V8FANamatchesV2ainfix -ainfix +V5c1V9V2c0V9Iainfix &lt;V9ainfix +V5c1Aainfix &lt;ainfix +V4c1V9FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
272
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
273
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
274 275 276
       <result status="valid" time="0.01"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
277 278
     <goal name="WP_parameter initnext.17" expl="17. index in array bounds"
      sum="4c774fee804fd1428d7d782ea463d17b" proved="true"
MARCHE Claude's avatar
MARCHE Claude committed
279
      shape="index in array boundsainfix &lt;V7V0Aainfix &lt;=c0V7Iainfix &lt;=c0V0Iainfix =V7ainfix +V5c1FIainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V8agetV6V8Iainfix &lt;=V8V5Aainfix &lt;c0V8FANamatchesV2ainfix -ainfix +V5c1V9V2c0V9Iainfix &lt;V9ainfix +V5c1Aainfix &lt;ainfix +V4c1V9FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
280
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
281
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
282
       <result status="valid" time="0.01"/>
283
      </proof>
284
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
285
     <goal name="WP_parameter initnext.18"
Andrei Paskevich's avatar
Andrei Paskevich committed
286
      expl="18. loop invariant preservation"
287
      sum="36cd24452434324180f6176a22067766" proved="true"
288
      shape="loop invariant preservationainfix &lt;=V7V0Aainfix &lt;V4V7Aainfix &lt;=c0V4Iainfix =V8asetV6V7c0Aainfix &lt;=c0V0FIainfix &lt;V7V0Aainfix &lt;=c0V7Aainfix &lt;=c0V0Iainfix =V7ainfix +V5c1FIainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V9agetV6V9Iainfix &lt;=V9V5Aainfix &lt;c0V9FANamatchesV2ainfix -ainfix +V5c1V10V2c0V10Iainfix &lt;V10ainfix +V5c1Aainfix &lt;ainfix +V4c1V10FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
289
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
290
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
291
       <result status="valid" time="0.02"/>
292 293
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
294
     <goal name="WP_parameter initnext.19"
Andrei Paskevich's avatar
Andrei Paskevich committed
295
      expl="19. loop invariant preservation"
296
      sum="4dd6c50ee2420905546c84ce6b3ee6db" proved="true"
297
      shape="loop invariant preservationamatchesV2ainfix -V7V4V2c0V4Iainfix =V8asetV6V7c0Aainfix &lt;=c0V0FIainfix &lt;V7V0Aainfix &lt;=c0V7Aainfix &lt;=c0V0Iainfix =V7ainfix +V5c1FIainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V9agetV6V9Iainfix &lt;=V9V5Aainfix &lt;c0V9FANamatchesV2ainfix -ainfix +V5c1V10V2c0V10Iainfix &lt;V10ainfix +V5c1Aainfix &lt;ainfix +V4c1V10FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
298
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
299
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
300
       <result status="valid" time="0.02"/>
301 302
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
303
     <goal name="WP_parameter initnext.20"
Andrei Paskevich's avatar
Andrei Paskevich committed
304
      expl="20. loop invariant preservation"
305
      sum="ff69fe2da9d6ca8fd4f4ece74623b87b" proved="true" expanded="true"
306
      shape="loop invariant preservationNamatchesV2ainfix -ainfix +V7c1V9V2c0V9Iainfix &lt;V9ainfix +V7c1Aainfix &lt;ainfix +V4c1V9FIainfix =V8asetV6V7c0Aainfix &lt;=c0V0FIainfix &lt;V7V0Aainfix &lt;=c0V7Aainfix &lt;=c0V0Iainfix =V7ainfix +V5c1FIainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V10agetV6V10Iainfix &lt;=V10V5Aainfix &lt;c0V10FANamatchesV2ainfix -ainfix +V5c1V11V2c0V11Iainfix &lt;V11ainfix +V5c1Aainfix &lt;ainfix +V4c1V11FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
307
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
308
      <proof prover="2" timelimit="7"
309
       edited="kmp_WP_KnuthMorrisPratt_WP_parameter_initnext_3.v">
Andrei Paskevich's avatar
Andrei Paskevich committed
310
       <result status="valid" time="1.15"/>
311 312
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
313
     <goal name="WP_parameter initnext.21"
Andrei Paskevich's avatar
Andrei Paskevich committed
314
      expl="21. loop invariant preservation"
315
      sum="69c3062b8ffb797da6a0ec1a886e2d42" proved="true"
316
      shape="loop invariant preservationais_nextV2V9agetV8V9Iainfix &lt;=V9V7Aainfix &lt;c0V9FIainfix =V8asetV6V7c0Aainfix &lt;=c0V0FIainfix &lt;V7V0Aainfix &lt;=c0V7Aainfix &lt;=c0V0Iainfix =V7ainfix +V5c1FIainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V10agetV6V10Iainfix &lt;=V10V5Aainfix &lt;c0V10FANamatchesV2ainfix -ainfix +V5c1V11V2c0V11Iainfix &lt;V11ainfix +V5c1Aainfix &lt;ainfix +V4c1V11FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
317 318 319
      <label name="expl:VC for initnext"/>
      <transf name="inline_goal"
       proved="true">
MARCHE Claude's avatar
MARCHE Claude committed
320
       <goal name="WP_parameter initnext.21.1"
321
        expl="1. loop invariant preservation"
322
        sum="61f4c553c45cdfa9f644bd25274e1574" proved="true"
323
        shape="loop invariant preservationNamatchesV2ainfix -V9V10V2c0V10Iainfix &lt;V10V9Aainfix &lt;agetV8V9V10FAamatchesV2ainfix -V9agetV8V9V2c0agetV8V9Aainfix &lt;agetV8V9V9Aainfix &lt;=c0agetV8V9Iainfix =V9V7Oainfix &lt;V9V7Aainfix &lt;c0V9FIainfix =V8asetV6V7c0Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;V7V0Aainfix =c0V7Oainfix &lt;c0V7Aainfix =c0V0Oainfix &lt;c0V0Iainfix =V7ainfix +V5c1FIainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix =c0V5Oainfix &lt;c0V5Iainfix &lt;V4V0Aainfix =c0V4Oainfix &lt;c0V4Iainfix &lt;V5ainfix -V0c1INamatchesV2ainfix -V11V12V2c0V12Iainfix &lt;V12V11Aainfix &lt;agetV6V11V12FAamatchesV2ainfix -V11agetV6V11V2c0agetV6V11Aainfix &lt;agetV6V11V11Aainfix &lt;=c0agetV6V11Iainfix =V11V5Oainfix &lt;V11V5Aainfix &lt;c0V11FANainfix =amixfix []V2ainfix +ainfix -ainfix +V5c1V13V14amixfix []V2ainfix +c0V14Iainfix &lt;V14V13Aainfix &lt;=c0V14FAainfix &lt;=c0ainfix -alengthV2V13Aainfix &lt;=c0c0Aainfix &lt;=ainfix -ainfix +V5c1V13ainfix -alengthV2V13Aainfix &lt;=c0ainfix -ainfix +V5c1V13Iainfix &lt;V13ainfix +V5c1Aainfix &lt;ainfix +V4c1V13FAainfix =amixfix []V2ainfix +ainfix -V5V4V15amixfix []V2ainfix +c0V15Iainfix &lt;V15V4Aainfix &lt;=c0V15FAainfix &lt;=c0ainfix -alengthV2V4Aainfix &lt;=c0c0Aainfix &lt;=ainfix -V5V4ainfix -alengthV2V4Aainfix &lt;=c0ainfix -V5V4Aainfix =V5V0Oainfix &lt;V5V0Aainfix &lt;V4V5Aainfix =c0V4Oainfix &lt;c0V4FIainfix =V3asetaconstc0c1c0Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;c1V0Aainfix =c0c1Oainfix &lt;c0c1Iainfix &lt;c1V0Iainfix =c0V0Oainfix &lt;c0V0Iainfix &lt;=c0V0Iainfix =c1V0Oainfix &lt;c1V0Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V1F">
324 325 326
        <label name="expl:VC for initnext"/>
        <transf name="split_goal_wp"
         proved="true">
MARCHE Claude's avatar
MARCHE Claude committed
327
         <goal name="WP_parameter initnext.21.1.1"
328
          expl="1. loop invariant preservation"
329
          sum="0a66479c75a57a12702964de5c335bfa" proved="true"
330
          shape="loop invariant preservationainfix &lt;=c0agetV8V9Iainfix =V9V7Oainfix &lt;V9V7Aainfix &lt;c0V9FIainfix =V8asetV6V7c0Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;V7V0Aainfix =c0V7Oainfix &lt;c0V7Aainfix =c0V0Oainfix &lt;c0V0Iainfix =V7ainfix +V5c1FIainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix =c0V5Oainfix &lt;c0V5Iainfix &lt;V4V0Aainfix =c0V4Oainfix &lt;c0V4Iainfix &lt;V5ainfix -V0c1INamatchesV2ainfix -V10V11V2c0V11Iainfix &lt;V11V10Aainfix &lt;agetV6V10V11FAamatchesV2ainfix -V10agetV6V10V2c0agetV6V10Aainfix &lt;agetV6V10V10Aainfix &lt;=c0agetV6V10Iainfix =V10V5Oainfix &lt;V10V5Aainfix &lt;c0V10FANainfix =amixfix []V2ainfix +ainfix -ainfix +V5c1V12V13amixfix []V2ainfix +c0V13Iainfix &lt;V13V12Aainfix &lt;=c0V13FAainfix &lt;=c0ainfix -alengthV2V12Aainfix &lt;=c0c0Aainfix &lt;=ainfix -ainfix +V5c1V12ainfix -alengthV2V12Aainfix &lt;=c0ainfix -ainfix +V5c1V12Iainfix &lt;V12ainfix +V5c1Aainfix &lt;ainfix +V4c1V12FAainfix =amixfix []V2ainfix +ainfix -V5V4V14amixfix []V2ainfix +c0V14Iainfix &lt;V14V4Aainfix &lt;=c0V14FAainfix &lt;=c0ainfix -alengthV2V4Aainfix &lt;=c0c0Aainfix &lt;=ainfix -V5V4ainfix -alengthV2V4Aainfix &lt;=c0ainfix -V5V4Aainfix =V5V0Oainfix &lt;V5V0Aainfix &lt;V4V5Aainfix =c0V4Oainfix &lt;c0V4FIainfix =V3asetaconstc0c1c0Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;c1V0Aainfix =c0c1Oainfix &lt;c0c1Iainfix &lt;c1V0Iainfix =c0V0Oainfix &lt;c0V0Iainfix &lt;=c0V0Iainfix =c1V0Oainfix &lt;c1V0Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V1F">
331
          <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
332
          <proof prover="1">
333 334 335
           <result status="valid" time="0.03"/>
          </proof>
         </goal>
MARCHE Claude's avatar
MARCHE Claude committed
336
         <goal name="WP_parameter initnext.21.1.2"
337
          expl="2. loop invariant preservation"
338
          sum="a45e915ee2ad16c8c9e9f12732a7786b" proved="true"
339
          shape="loop invariant preservationainfix &lt;agetV8V9V9Iainfix =V9V7Oainfix &lt;V9V7Aainfix &lt;c0V9FIainfix =V8asetV6V7c0Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;V7V0Aainfix =c0V7Oainfix &lt;c0V7Aainfix =c0V0Oainfix &lt;c0V0Iainfix =V7ainfix +V5c1FIainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix =c0V5Oainfix &lt;c0V5Iainfix &lt;V4V0Aainfix =c0V4Oainfix &lt;c0V4Iainfix &lt;V5ainfix -V0c1INamatchesV2ainfix -V10V11V2c0V11Iainfix &lt;V11V10Aainfix &lt;agetV6V10V11FAamatchesV2ainfix -V10agetV6V10V2c0agetV6V10Aainfix &lt;agetV6V10V10Aainfix &lt;=c0agetV6V10Iainfix =V10V5Oainfix &lt;V10V5Aainfix &lt;c0V10FANainfix =amixfix []V2ainfix +ainfix -ainfix +V5c1V12V13amixfix []V2ainfix +c0V13Iainfix &lt;V13V12Aainfix &lt;=c0V13FAainfix &lt;=c0ainfix -alengthV2V12Aainfix &lt;=c0c0Aainfix &lt;=ainfix -ainfix +V5c1V12ainfix -alengthV2V12Aainfix &lt;=c0ainfix -ainfix +V5c1V12Iainfix &lt;V12ainfix +V5c1Aainfix &lt;ainfix +V4c1V12FAainfix =amixfix []V2ainfix +ainfix -V5V4V14amixfix []V2ainfix +c0V14Iainfix &lt;V14V4Aainfix &lt;=c0V14FAainfix &lt;=c0ainfix -alengthV2V4Aainfix &lt;=c0c0Aainfix &lt;=ainfix -V5V4ainfix -alengthV2V4Aainfix &lt;=c0ainfix -V5V4Aainfix =V5V0Oainfix &lt;V5V0Aainfix &lt;V4V5Aainfix =c0V4Oainfix &lt;c0V4FIainfix =V3asetaconstc0c1c0Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;c1V0Aainfix =c0c1Oainfix &lt;c0c1Iainfix &lt;c1V0Iainfix =c0V0Oainfix &lt;c0V0Iainfix &lt;=c0V0Iainfix =c1V0Oainfix &lt;c1V0Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V1F">
340
          <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
341
          <proof prover="1">
342 343 344
           <result status="valid" time="0.02"/>
          </proof>
         </goal>
MARCHE Claude's avatar
MARCHE Claude committed
345
         <goal name="WP_parameter initnext.21.1.3"
346
          expl="3. loop invariant preservation"
347
          sum="50f3d11ae94f4c35c4b9126271d40689" proved="true"
348
          shape="loop invariant preservationamatchesV2ainfix -V9agetV8V9V2c0agetV8V9Iainfix =V9V7Oainfix &lt;V9V7Aainfix &lt;c0V9FIainfix =V8asetV6V7c0Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;V7V0Aainfix =c0V7Oainfix &lt;c0V7Aainfix =c0V0Oainfix &lt;c0V0Iainfix =V7ainfix +V5c1FIainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix =c0V5Oainfix &lt;c0V5Iainfix &lt;V4V0Aainfix =c0V4Oainfix &lt;c0V4Iainfix &lt;V5ainfix -V0c1INamatchesV2ainfix -V10V11V2c0V11Iainfix &lt;V11V10Aainfix &lt;agetV6V10V11FAamatchesV2ainfix -V10agetV6V10V2c0agetV6V10Aainfix &lt;agetV6V10V10Aainfix &lt;=c0agetV6V10Iainfix =V10V5Oainfix &lt;V10V5Aainfix &lt;c0V10FANainfix =amixfix []V2ainfix +ainfix -ainfix +V5c1V12V13amixfix []V2ainfix +c0V13Iainfix &lt;V13V12Aainfix &lt;=c0V13FAainfix &lt;=c0ainfix -alengthV2V12Aainfix &lt;=c0c0Aainfix &lt;=ainfix -ainfix +V5c1V12ainfix -alengthV2V12Aainfix &lt;=c0ainfix -ainfix +V5c1V12Iainfix &lt;V12ainfix +V5c1Aainfix &lt;ainfix +V4c1V12FAainfix =amixfix []V2ainfix +ainfix -V5V4V14amixfix []V2ainfix +c0V14Iainfix &lt;V14V4Aainfix &lt;=c0V14FAainfix &lt;=c0ainfix -alengthV2V4Aainfix &lt;=c0c0Aainfix &lt;=ainfix -V5V4ainfix -alengthV2V4Aainfix &lt;=c0ainfix -V5V4Aainfix =V5V0Oainfix &lt;V5V0Aainfix &lt;V4V5Aainfix =c0V4Oainfix &lt;c0V4FIainfix =V3asetaconstc0c1c0Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;c1V0Aainfix =c0c1Oainfix &lt;c0c1Iainfix &lt;c1V0Iainfix =c0V0Oainfix &lt;c0V0Iainfix &lt;=c0V0Iainfix =c1V0Oainfix &lt;c1V0Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V1F">
349
          <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
350
          <proof prover="1">
351 352 353
           <result status="valid" time="0.11"/>
          </proof>
         </goal>
MARCHE Claude's avatar
MARCHE Claude committed
354
         <goal name="WP_parameter initnext.21.1.4"
355
          expl="4. loop invariant preservation"
356
          sum="6d0a2ec0aeaaaa761a5abce03d158709" proved="true"
357
          shape="loop invariant preservationNamatchesV2ainfix -V9V10V2c0V10Iainfix &lt;V10V9Aainfix &lt;agetV8V9V10FIainfix =V9V7Oainfix &lt;V9V7Aainfix &lt;c0V9FIainfix =V8asetV6V7c0Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;V7V0Aainfix =c0V7Oainfix &lt;c0V7Aainfix =c0V0Oainfix &lt;c0V0Iainfix =V7ainfix +V5c1FIainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix =c0V5Oainfix &lt;c0V5Iainfix &lt;V4V0Aainfix =c0V4Oainfix &lt;c0V4Iainfix &lt;V5ainfix -V0c1INamatchesV2ainfix -V11V12V2c0V12Iainfix &lt;V12V11Aainfix &lt;agetV6V11V12FAamatchesV2ainfix -V11agetV6V11V2c0agetV6V11Aainfix &lt;agetV6V11V11Aainfix &lt;=c0agetV6V11Iainfix =V11V5Oainfix &lt;V11V5Aainfix &lt;c0V11FANainfix =amixfix []V2ainfix +ainfix -ainfix +V5c1V13V14amixfix []V2ainfix +c0V14Iainfix &lt;V14V13Aainfix &lt;=c0V14FAainfix &lt;=c0ainfix -alengthV2V13Aainfix &lt;=c0c0Aainfix &lt;=ainfix -ainfix +V5c1V13ainfix -alengthV2V13Aainfix &lt;=c0ainfix -ainfix +V5c1V13Iainfix &lt;V13ainfix +V5c1Aainfix &lt;ainfix +V4c1V13FAainfix =amixfix []V2ainfix +ainfix -V5V4V15amixfix []V2ainfix +c0V15Iainfix &lt;V15V4Aainfix &lt;=c0V15FAainfix &lt;=c0ainfix -alengthV2V4Aainfix &lt;=c0c0Aainfix &lt;=ainfix -V5V4ainfix -alengthV2V4Aainfix &lt;=c0ainfix -V5V4Aainfix =V5V0Oainfix &lt;V5V0Aainfix &lt;V4V5Aainfix =c0V4Oainfix &lt;c0V4FIainfix =V3asetaconstc0c1c0Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;c1V0Aainfix =c0c1Oainfix &lt;c0c1Iainfix &lt;c1V0Iainfix =c0V0Oainfix &lt;c0V0Iainfix &lt;=c0V0Iainfix =c1V0Oainfix &lt;c1V0Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V1F">
358
          <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
359
          <proof prover="1">
MARCHE Claude's avatar
MARCHE Claude committed
360
           <result status="valid" time="0.37"/>
361 362 363 364 365
          </proof>
         </goal>
        </transf>
       </goal>
      </transf>
366
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
367 368
     <goal name="WP_parameter initnext.22" expl="22. loop variant decrease"
      sum="20603c25b9bba49f51cf305ee929c6dc" proved="true"
369
      shape="loop variant decreaseainfix &lt;V4V4Aainfix &lt;=c0V4Aainfix =ainfix -V0V5ainfix -V0V7Oainfix &lt;ainfix -V0V7ainfix -V0V5Aainfix &lt;=c0ainfix -V0V5Iainfix =V8asetV6V7c0Aainfix &lt;=c0V0FIainfix &lt;V7V0Aainfix &lt;=c0V7Aainfix &lt;=c0V0Iainfix =V7ainfix +V5c1FIainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V9agetV6V9Iainfix &lt;=V9V5Aainfix &lt;c0V9FANamatchesV2ainfix -ainfix +V5c1V10V2c0V10Iainfix &lt;V10ainfix +V5c1Aainfix &lt;ainfix +V4c1V10FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
370
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
371
      <proof prover="1">
372
       <result status="valid" time="0.02"/>
373 374
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
375
     <goal name="WP_parameter initnext.23" expl="23. type invariant"
376
      sum="4614ac9ad068e74342d8c2ff2ef04852" proved="true"
377
      shape="type invariantainfix &lt;=c0V0INainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V7agetV6V7Iainfix &lt;=V7V5Aainfix &lt;c0V7FANamatchesV2ainfix -ainfix +V5c1V8V2c0V8Iainfix &lt;V8ainfix +V5c1Aainfix &lt;ainfix +V4c1V8FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
378
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
379
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
380 381 382
       <result status="valid" time="0.02"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
383 384
     <goal name="WP_parameter initnext.24" expl="24. index in array bounds"
      sum="10c2790752e35ed38990952559df4ce4" proved="true"
MARCHE Claude's avatar
MARCHE Claude committed
385
      shape="index in array boundsainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;=c0V0INainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V7agetV6V7Iainfix &lt;=V7V5Aainfix &lt;c0V7FANamatchesV2ainfix -ainfix +V5c1V8V2c0V8Iainfix &lt;V8ainfix +V5c1Aainfix &lt;ainfix +V4c1V8FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
386
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
387
      <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
388
       <result status="valid" time="0.01"/>
389 390
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
391
     <goal name="WP_parameter initnext.25"
Andrei Paskevich's avatar
Andrei Paskevich committed
392
      expl="25. loop invariant preservation"
393
      sum="c5c494349fe6687802cfdbea7ac44393" proved="true"
394
      shape="loop invariant preservationainfix &lt;=V5V0Aainfix &lt;V7V5Aainfix &lt;=c0V7Iainfix =V7agetV6V4FIainfix &lt;V4V0Aainfix &lt;=c0V4Aainfix &lt;=c0V0INainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V8agetV6V8Iainfix &lt;=V8V5Aainfix &lt;c0V8FANamatchesV2ainfix -ainfix +V5c1V9V2c0V9Iainfix &lt;V9ainfix +V5c1Aainfix &lt;ainfix +V4c1V9FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
395
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
396
      <proof prover="1" timelimit="7">
Andrei Paskevich's avatar
Andrei Paskevich committed
397 398 399
       <result status="valid" time="0.06"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
400
     <goal name="WP_parameter initnext.26"
Andrei Paskevich's avatar
Andrei Paskevich committed
401
      expl="26. loop invariant preservation"
402
      sum="ced53e2ce0c4909077cdf630ce7b2a07" proved="true"
403
      shape="loop invariant preservationamatchesV2ainfix -V5V7V2c0V7Iainfix =V7agetV6V4FIainfix &lt;V4V0Aainfix &lt;=c0V4Aainfix &lt;=c0V0INainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V8agetV6V8Iainfix &lt;=V8V5Aainfix &lt;c0V8FANamatchesV2ainfix -ainfix +V5c1V9V2c0V9Iainfix &lt;V9ainfix +V5c1Aainfix &lt;ainfix +V4c1V9FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
404
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
405
      <proof prover="1">
MARCHE Claude's avatar
MARCHE Claude committed
406
       <result status="valid" time="0.47"/>
Andrei Paskevich's avatar
Andrei Paskevich committed
407 408
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
409
     <goal name="WP_parameter initnext.27"
Andrei Paskevich's avatar
Andrei Paskevich committed
410
      expl="27. loop invariant preservation"
411
      sum="7dd69195ac5b64f5a6cde177aa587b10" proved="true" expanded="true"
412
      shape="loop invariant preservationNamatchesV2ainfix -ainfix +V5c1V8V2c0V8Iainfix &lt;V8ainfix +V5c1Aainfix &lt;ainfix +V7c1V8FIainfix =V7agetV6V4FIainfix &lt;V4V0Aainfix &lt;=c0V4Aainfix &lt;=c0V0INainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V9agetV6V9Iainfix &lt;=V9V5Aainfix &lt;c0V9FANamatchesV2ainfix -ainfix +V5c1V10V2c0V10Iainfix &lt;V10ainfix +V5c1Aainfix &lt;ainfix +V4c1V10FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
413
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
414
      <proof prover="2" timelimit="7"
415
       edited="kmp_WP_KnuthMorrisPratt_WP_parameter_initnext_4.v">
Andrei Paskevich's avatar
Andrei Paskevich committed
416
       <result status="valid" time="1.37"/>
Andrei Paskevich's avatar
Andrei Paskevich committed
417 418
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
419
     <goal name="WP_parameter initnext.28"
Andrei Paskevich's avatar
Andrei Paskevich committed
420
      expl="28. loop invariant preservation"
421
      sum="b17ee82ecbe361d38947b2b231c0fd44" proved="true"
422
      shape="loop invariant preservationais_nextV2V8agetV6V8Iainfix &lt;=V8V5Aainfix &lt;c0V8FIainfix =V7agetV6V4FIainfix &lt;V4V0Aainfix &lt;=c0V4Aainfix &lt;=c0V0INainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V9agetV6V9Iainfix &lt;=V9V5Aainfix &lt;c0V9FANamatchesV2ainfix -ainfix +V5c1V10V2c0V10Iainfix &lt;V10ainfix +V5c1Aainfix &lt;ainfix +V4c1V10FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
423
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
424
      <proof prover="0" memlimit="1000">
Andrei Paskevich's avatar
Andrei Paskevich committed
425 426
       <result status="valid" time="0.03"/>
      </proof>
MARCHE Claude's avatar
MARCHE Claude committed
427 428 429
      <proof prover="1">
       <result status="valid" time="0.01"/>
      </proof>
Andrei Paskevich's avatar
Andrei Paskevich committed
430
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
431 432
     <goal name="WP_parameter initnext.29" expl="29. loop variant decrease"
      sum="12a7594fbb29a61abc3d897218685033" proved="true"
433
      shape="loop variant decreaseainfix &lt;V7V4Aainfix &lt;=c0V4Oainfix &lt;ainfix -V0V5ainfix -V0V5Aainfix &lt;=c0ainfix -V0V5Iainfix =V7agetV6V4FIainfix &lt;V4V0Aainfix &lt;=c0V4Aainfix &lt;=c0V0INainfix =V4c0INainfix =agetV1V5agetV1V4Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix &lt;V4V0Aainfix &lt;=c0V4Iainfix &lt;V5ainfix -V0c1Iais_nextV2V8agetV6V8Iainfix &lt;=V8V5Aainfix &lt;c0V8FANamatchesV2ainfix -ainfix +V5c1V9V2c0V9Iainfix &lt;V9ainfix +V5c1Aainfix &lt;ainfix +V4c1V9FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
434
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
435
      <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
436 437 438
       <result status="valid" time="0.04"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
439
     <goal name="WP_parameter initnext.30" expl="30. type invariant"
440
      sum="0442579f12540cf30ad6f2854b0bda82" proved="true"
441
      shape="type invariantainfix &lt;=c0V0INainfix &lt;V5ainfix -V0c1Iais_nextV2V7agetV6V7Iainfix &lt;=V7V5Aainfix &lt;c0V7FANamatchesV2ainfix -ainfix +V5c1V8V2c0V8Iainfix &lt;V8ainfix +V5c1Aainfix &lt;ainfix +V4c1V8FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
442
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
443
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
444 445 446
       <result status="valid" time="0.02"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
447
     <goal name="WP_parameter initnext.31" expl="31. postcondition"
448
      sum="0af43fa81ed409a497f66b0e1d93092e" proved="true"
449
      shape="postconditionais_nextV2V7agetV6V7Iainfix &lt;V7V0Aainfix &lt;c0V7FAainfix =V0V0Iainfix &lt;=c0V0INainfix &lt;V5ainfix -V0c1Iais_nextV2V8agetV6V8Iainfix &lt;=V8V5Aainfix &lt;c0V8FANamatchesV2ainfix -ainfix +V5c1V9V2c0V9Iainfix &lt;V9ainfix +V5c1Aainfix &lt;ainfix +V4c1V9FAamatchesV2ainfix -V5V4V2c0V4Aainfix &lt;=V5V0Aainfix &lt;V4V5Aainfix &lt;=c0V4FIainfix =V3asetaconstc0c1c0Aainfix &lt;=c0V0FIainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
450
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
451
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
452 453 454
       <result status="valid" time="0.01"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
455
     <goal name="WP_parameter initnext.32" expl="32. postcondition"
456
      sum="44d8618db0034684245b1d176e8e4968" proved="true"
457
      shape="postconditionais_nextV2V3agetaconstc0V3Iainfix &lt;V3V0Aainfix &lt;c0V3FAainfix =V0V0INainfix &lt;c1V0Iainfix &lt;=c0V0Iainfix &gt;=V0c0Iainfix &lt;=c1V0Aainfix &lt;=c0V0Lamk arrayV0V1F">
458
      <label name="expl:VC for initnext"/>
MARCHE Claude's avatar
MARCHE Claude committed
459
      <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
460 461 462 463 464
       <result status="valid" time="0.01"/>
      </proof>
     </goal>
    </transf>
   </goal>
MARCHE Claude's avatar
MARCHE Claude committed
465
   <goal name="WP_parameter kmp" expl="VC for kmp"
466
    sum="36db72d8f7896e9913e6c836ee55d90f" proved="true"
467
    shape="iiafirst_occurV5V4V9afirst_occurV5V4ainfix -V9V0ainfix =V8V0iiafirst_occurV5V4V9afirst_occurV5V4ainfix -V9V0ainfix =V8V0iiainfix &lt;V10V8Aainfix &lt;=c0V8Oainfix &lt;ainfix -V2V9ainfix -V2V9Aainfix &lt;=c0ainfix -V2V9ANamatchesV4V11V5c0V0Iainfix &lt;V11ainfix -V9V10Aainfix &lt;=c0V11FAamatchesV4ainfix -V9V10V5c0V10Aainfix &lt;=V9V2Aainfix &lt;=V10V9Aainfix &lt;=V10V0Aainfix &lt;=c0V10Iainfix =V10agetV7V8FAainfix &lt;V8V6Aainfix &lt;=c0V8ainfix &lt;V8V8Aainfix &lt;=c0V8Aainfix =ainfix -V2V9ainfix -V2V12Oainfix &lt;ainfix -V2V12ainfix -V2V9Aainfix &lt;=c0ainfix -V2V9ANamatchesV4V13V5c0V0Iainfix &lt;V13ainfix -V12V8Aainfix &lt;=c0V13FAamatchesV4ainfix -V12V8V5c0V8Aainfix &lt;=V12V2Aainfix &lt;=V8V12Aainfix &lt;=V8V0Aainfix &lt;=c0V8Iainfix =V12ainfix +V9c1Fainfix =V8c0ainfix &lt;V15V8Aainfix &lt;=c0V8Aainfix =ainfix -V2V9ainfix -V2V14Oainfix &lt;ainfix -V2V14ainfix -V2V9Aainfix &lt;=c0ainfix -V2V9ANamatchesV4V16V5c0V0Iainfix &lt;V16ainfix -V14V15Aainfix &lt;=c0V16FAamatchesV4ainfix -V14V15V5c0V15Aainfix &lt;=V14V2Aainfix &lt;=V15V14Aainfix &lt;=V15V0Aainfix &lt;=c0V15Iainfix =V15ainfix +V8c1FIainfix =V14ainfix +V9c1Fainfix =agetV3V9agetV1V8Aainfix &lt;V9V2Aainfix &lt;=c0V9Aainfix &lt;V8V0Aainfix &lt;=c0V8ainfix &lt;V9V2ainfix &lt;V8V0INamatchesV4V17V5c0V0Iainfix &lt;V17ainfix -V9V8Aainfix &lt;=c0V17FAamatchesV4ainfix -V9V8V5c0V8Aainfix &lt;=V9V2Aainfix &lt;=V8V9Aainfix &lt;=V8V0Aainfix &lt;=c0V8FANamatchesV4V18V5c0V0Iainfix &lt;V18ainfix -c0c0Aainfix &lt;=c0V18FAamatchesV4ainfix -c0c0V5c0c0Aainfix &lt;=c0V2Aainfix &lt;=c0c0Aainfix &lt;=c0V0Aainfix &lt;=c0c0Iais_nextV5V19agetV7V19Iainfix &lt;V19V0Aainfix &lt;c0V19FAainfix =V6V0Aainfix &lt;=c0V6FAainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
468 469 470
    <label name="expl:VC for kmp"/>
    <transf name="split_goal"
     proved="true">
MARCHE Claude's avatar
MARCHE Claude committed
471
     <goal name="WP_parameter kmp.1" expl="1. precondition"
472
      sum="9cb29281cfa1707535c84e52f1c3bcad" proved="true"
473
      shape="preconditionainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
474
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
475
      <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
476 477 478
       <result status="valid" time="0.01"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
479
     <goal name="WP_parameter kmp.2" expl="2. loop invariant init"
480
      sum="949bcce7357a4f11489d6edca3a2c4fb" proved="true"
481
      shape="loop invariant initainfix &lt;=c0V2Aainfix &lt;=c0c0Aainfix &lt;=c0V0Aainfix &lt;=c0c0Iais_nextV5V8agetV7V8Iainfix &lt;V8V0Aainfix &lt;c0V8FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
482
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
483
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
484 485 486
       <result status="valid" time="0.01"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
487
     <goal name="WP_parameter kmp.3" expl="3. loop invariant init"
488
      sum="5014fd9004f7cd661975611a6c5cf486" proved="true"
489
      shape="loop invariant initamatchesV4ainfix -c0c0V5c0c0Iais_nextV5V8agetV7V8Iainfix &lt;V8V0Aainfix &lt;c0V8FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
490
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
491
      <proof prover="0" timelimit="15" memlimit="1000">
Andrei Paskevich's avatar
Andrei Paskevich committed
492 493 494
       <result status="valid" time="0.02"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
495
     <goal name="WP_parameter kmp.4" expl="4. loop invariant init"
496
      sum="d2966d57e3267947968335f773c44125" proved="true"
497
      shape="loop invariant initNamatchesV4V8V5c0V0Iainfix &lt;V8ainfix -c0c0Aainfix &lt;=c0V8FIais_nextV5V9agetV7V9Iainfix &lt;V9V0Aainfix &lt;c0V9FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
498
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
499
      <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
500 501 502
       <result status="valid" time="0.01"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
503
     <goal name="WP_parameter kmp.5" expl="5. index in array bounds"
504
      sum="b9ff54b1105b66c6f7bd68a4c835feda" proved="true"
MARCHE Claude's avatar
MARCHE Claude committed
505
      shape="index in array boundsainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V9V2Iainfix &lt;V8V0INamatchesV4V10V5c0V0Iainfix &lt;V10ainfix -V9V8Aainfix &lt;=c0V10FAamatchesV4ainfix -V9V8V5c0V8Aainfix &lt;=V9V2Aainfix &lt;=V8V9Aainfix &lt;=V8V0Aainfix &lt;=c0V8FIais_nextV5V11agetV7V11Iainfix &lt;V11V0Aainfix &lt;c0V11FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
506
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
507
      <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
508 509 510
       <result status="valid" time="0.01"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
511
     <goal name="WP_parameter kmp.6" expl="6. index in array bounds"
512
      sum="86741f2bf04c5513e9e4806daa94cc42" proved="true"
MARCHE Claude's avatar
MARCHE Claude committed
513
      shape="index in array boundsainfix &lt;V9V2Aainfix &lt;=c0V9Iainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V9V2Iainfix &lt;V8V0INamatchesV4V10V5c0V0Iainfix &lt;V10ainfix -V9V8Aainfix &lt;=c0V10FAamatchesV4ainfix -V9V8V5c0V8Aainfix &lt;=V9V2Aainfix &lt;=V8V9Aainfix &lt;=V8V0Aainfix &lt;=c0V8FIais_nextV5V11agetV7V11Iainfix &lt;V11V0Aainfix &lt;c0V11FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
514
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
515
      <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
516 517 518
       <result status="valid" time="0.01"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
519
     <goal name="WP_parameter kmp.7" expl="7. loop invariant preservation"
520
      sum="5ee9eee328edc2430db842a0a04b6458" proved="true"
521
      shape="loop invariant preservationainfix &lt;=V10V2Aainfix &lt;=V11V10Aainfix &lt;=V11V0Aainfix &lt;=c0V11Iainfix =V11ainfix +V8c1FIainfix =V10ainfix +V9c1FIainfix =agetV3V9agetV1V8Iainfix &lt;V9V2Aainfix &lt;=c0V9Iainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V9V2Iainfix &lt;V8V0INamatchesV4V12V5c0V0Iainfix &lt;V12ainfix -V9V8Aainfix &lt;=c0V12FAamatchesV4ainfix -V9V8V5c0V8Aainfix &lt;=V9V2Aainfix &lt;=V8V9Aainfix &lt;=V8V0Aainfix &lt;=c0V8FIais_nextV5V13agetV7V13Iainfix &lt;V13V0Aainfix &lt;c0V13FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
522
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
523
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
524 525 526
       <result status="valid" time="0.01"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
527
     <goal name="WP_parameter kmp.8" expl="8. loop invariant preservation"
528
      sum="77c89a94e10eca8420431eb7055a6ed0" proved="true"
529
      shape="loop invariant preservationamatchesV4ainfix -V10V11V5c0V11Iainfix =V11ainfix +V8c1FIainfix =V10ainfix +V9c1FIainfix =agetV3V9agetV1V8Iainfix &lt;V9V2Aainfix &lt;=c0V9Iainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V9V2Iainfix &lt;V8V0INamatchesV4V12V5c0V0Iainfix &lt;V12ainfix -V9V8Aainfix &lt;=c0V12FAamatchesV4ainfix -V9V8V5c0V8Aainfix &lt;=V9V2Aainfix &lt;=V8V9Aainfix &lt;=V8V0Aainfix &lt;=c0V8FIais_nextV5V13agetV7V13Iainfix &lt;V13V0Aainfix &lt;c0V13FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
530
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
531
      <proof prover="1" timelimit="10" memlimit="0">
MARCHE Claude's avatar
MARCHE Claude committed
532
       <result status="valid" time="0.02"/>
Andrei Paskevich's avatar
Andrei Paskevich committed
533 534
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
535
     <goal name="WP_parameter kmp.9" expl="9. loop invariant preservation"
536
      sum="4cd771ad7b3cd46902fcb9251e8c60e0" proved="true"
537
      shape="loop invariant preservationNamatchesV4V12V5c0V0Iainfix &lt;V12ainfix -V10V11Aainfix &lt;=c0V12FIainfix =V11ainfix +V8c1FIainfix =V10ainfix +V9c1FIainfix =agetV3V9agetV1V8Iainfix &lt;V9V2Aainfix &lt;=c0V9Iainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V9V2Iainfix &lt;V8V0INamatchesV4V13V5c0V0Iainfix &lt;V13ainfix -V9V8Aainfix &lt;=c0V13FAamatchesV4ainfix -V9V8V5c0V8Aainfix &lt;=V9V2Aainfix &lt;=V8V9Aainfix &lt;=V8V0Aainfix &lt;=c0V8FIais_nextV5V14agetV7V14Iainfix &lt;V14V0Aainfix &lt;c0V14FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
538
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
539
      <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
540 541 542
       <result status="valid" time="0.02"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
543 544
     <goal name="WP_parameter kmp.10" expl="10. loop variant decrease"
      sum="de590b4bc3a84bffd515cb4435adb1c1" proved="true"
545
      shape="loop variant decreaseainfix &lt;V11V8Aainfix &lt;=c0V8Aainfix =ainfix -V2V9ainfix -V2V10Oainfix &lt;ainfix -V2V10ainfix -V2V9Aainfix &lt;=c0ainfix -V2V9Iainfix =V11ainfix +V8c1FIainfix =V10ainfix +V9c1FIainfix =agetV3V9agetV1V8Iainfix &lt;V9V2Aainfix &lt;=c0V9Iainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V9V2Iainfix &lt;V8V0INamatchesV4V12V5c0V0Iainfix &lt;V12ainfix -V9V8Aainfix &lt;=c0V12FAamatchesV4ainfix -V9V8V5c0V8Aainfix &lt;=V9V2Aainfix &lt;=V8V9Aainfix &lt;=V8V0Aainfix &lt;=c0V8FIais_nextV5V13agetV7V13Iainfix &lt;V13V0Aainfix &lt;c0V13FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
546
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
547
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
548 549
       <result status="valid" time="0.01"/>
      </proof>
550
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
551
     <goal name="WP_parameter kmp.11" expl="11. loop invariant preservation"
552
      sum="0bade831abdbece4c2dd34cd908ab8ae" proved="true"
553
      shape="loop invariant preservationainfix &lt;=V10V2Aainfix &lt;=V8V10Aainfix &lt;=V8V0Aainfix &lt;=c0V8Iainfix =V10ainfix +V9c1FIainfix =V8c0INainfix =agetV3V9agetV1V8Iainfix &lt;V9V2Aainfix &lt;=c0V9Iainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V9V2Iainfix &lt;V8V0INamatchesV4V11V5c0V0Iainfix &lt;V11ainfix -V9V8Aainfix &lt;=c0V11FAamatchesV4ainfix -V9V8V5c0V8Aainfix &lt;=V9V2Aainfix &lt;=V8V9Aainfix &lt;=V8V0Aainfix &lt;=c0V8FIais_nextV5V12agetV7V12Iainfix &lt;V12V0Aainfix &lt;c0V12FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
554
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
555
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
556 557 558
       <result status="valid" time="0.01"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
559
     <goal name="WP_parameter kmp.12" expl="12. loop invariant preservation"
560
      sum="0c756c7e2c743ea2fd2cac7dde161bd0" proved="true"
561
      shape="loop invariant preservationamatchesV4ainfix -V10V8V5c0V8Iainfix =V10ainfix +V9c1FIainfix =V8c0INainfix =agetV3V9agetV1V8Iainfix &lt;V9V2Aainfix &lt;=c0V9Iainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V9V2Iainfix &lt;V8V0INamatchesV4V11V5c0V0Iainfix &lt;V11ainfix -V9V8Aainfix &lt;=c0V11FAamatchesV4ainfix -V9V8V5c0V8Aainfix &lt;=V9V2Aainfix &lt;=V8V9Aainfix &lt;=V8V0Aainfix &lt;=c0V8FIais_nextV5V12agetV7V12Iainfix &lt;V12V0Aainfix &lt;c0V12FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
562
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
563
      <proof prover="0" timelimit="10">
Andrei Paskevich's avatar
Andrei Paskevich committed
564 565 566
       <result status="valid" time="0.02"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
567
     <goal name="WP_parameter kmp.13" expl="13. loop invariant preservation"
568
      sum="3f7a7cbdb8e6a2b13fc0c6d12a9fbe78" proved="true"
569
      shape="loop invariant preservationNamatchesV4V11V5c0V0Iainfix &lt;V11ainfix -V10V8Aainfix &lt;=c0V11FIainfix =V10ainfix +V9c1FIainfix =V8c0INainfix =agetV3V9agetV1V8Iainfix &lt;V9V2Aainfix &lt;=c0V9Iainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V9V2Iainfix &lt;V8V0INamatchesV4V12V5c0V0Iainfix &lt;V12ainfix -V9V8Aainfix &lt;=c0V12FAamatchesV4ainfix -V9V8V5c0V8Aainfix &lt;=V9V2Aainfix &lt;=V8V9Aainfix &lt;=V8V0Aainfix &lt;=c0V8FIais_nextV5V13agetV7V13Iainfix &lt;V13V0Aainfix &lt;c0V13FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
570
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
571
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
572 573 574
       <result status="valid" time="0.05"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
575 576
     <goal name="WP_parameter kmp.14" expl="14. loop variant decrease"
      sum="d7521d399ad83335c50299ca2ec67488" proved="true"
577
      shape="loop variant decreaseainfix &lt;V8V8Aainfix &lt;=c0V8Aainfix =ainfix -V2V9ainfix -V2V10Oainfix &lt;ainfix -V2V10ainfix -V2V9Aainfix &lt;=c0ainfix -V2V9Iainfix =V10ainfix +V9c1FIainfix =V8c0INainfix =agetV3V9agetV1V8Iainfix &lt;V9V2Aainfix &lt;=c0V9Iainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V9V2Iainfix &lt;V8V0INamatchesV4V11V5c0V0Iainfix &lt;V11ainfix -V9V8Aainfix &lt;=c0V11FAamatchesV4ainfix -V9V8V5c0V8Aainfix &lt;=V9V2Aainfix &lt;=V8V9Aainfix &lt;=V8V0Aainfix &lt;=c0V8FIais_nextV5V12agetV7V12Iainfix &lt;V12V0Aainfix &lt;c0V12FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
578
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
579
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
580 581 582
       <result status="valid" time="0.02"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
583 584
     <goal name="WP_parameter kmp.15" expl="15. index in array bounds"
      sum="ef5d86e98ca3123f303a82fb5d061931" proved="true"
MARCHE Claude's avatar
MARCHE Claude committed
585
      shape="index in array boundsainfix &lt;V8V6Aainfix &lt;=c0V8INainfix =V8c0INainfix =agetV3V9agetV1V8Iainfix &lt;V9V2Aainfix &lt;=c0V9Iainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V9V2Iainfix &lt;V8V0INamatchesV4V10V5c0V0Iainfix &lt;V10ainfix -V9V8Aainfix &lt;=c0V10FAamatchesV4ainfix -V9V8V5c0V8Aainfix &lt;=V9V2Aainfix &lt;=V8V9Aainfix &lt;=V8V0Aainfix &lt;=c0V8FIais_nextV5V11agetV7V11Iainfix &lt;V11V0Aainfix &lt;c0V11FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
586
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
587
      <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
588
       <result status="valid" time="0.01"/>
589 590
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
591
     <goal name="WP_parameter kmp.16" expl="16. loop invariant preservation"
592
      sum="f31d9dd2a006af8469e71be4147e4d9f" proved="true"
593
      shape="loop invariant preservationainfix &lt;=V9V2Aainfix &lt;=V10V9Aainfix &lt;=V10V0Aainfix &lt;=c0V10Iainfix =V10agetV7V8FIainfix &lt;V8V6Aainfix &lt;=c0V8INainfix =V8c0INainfix =agetV3V9agetV1V8Iainfix &lt;V9V2Aainfix &lt;=c0V9Iainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V9V2Iainfix &lt;V8V0INamatchesV4V11V5c0V0Iainfix &lt;V11ainfix -V9V8Aainfix &lt;=c0V11FAamatchesV4ainfix -V9V8V5c0V8Aainfix &lt;=V9V2Aainfix &lt;=V8V9Aainfix &lt;=V8V0Aainfix &lt;=c0V8FIais_nextV5V12agetV7V12Iainfix &lt;V12V0Aainfix &lt;c0V12FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
594
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
595
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed
596 597 598
       <result status="valid" time="0.07"/>
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
599
     <goal name="WP_parameter kmp.17" expl="17. loop invariant preservation"
600
      sum="7a685a812aa8e1a42c0bee6d34c17347" proved="true"
601
      shape="loop invariant preservationamatchesV4ainfix -V9V10V5c0V10Iainfix =V10agetV7V8FIainfix &lt;V8V6Aainfix &lt;=c0V8INainfix =V8c0INainfix =agetV3V9agetV1V8Iainfix &lt;V9V2Aainfix &lt;=c0V9Iainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V9V2Iainfix &lt;V8V0INamatchesV4V11V5c0V0Iainfix &lt;V11ainfix -V9V8Aainfix &lt;=c0V11FAamatchesV4ainfix -V9V8V5c0V8Aainfix &lt;=V9V2Aainfix &lt;=V8V9Aainfix &lt;=V8V0Aainfix &lt;=c0V8FIais_nextV5V12agetV7V12Iainfix &lt;V12V0Aainfix &lt;c0V12FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
602
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
603
      <proof prover="1">
MARCHE Claude's avatar
MARCHE Claude committed
604
       <result status="valid" time="0.57"/>
Andrei Paskevich's avatar
Andrei Paskevich committed
605 606
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
607
     <goal name="WP_parameter kmp.18" expl="18. loop invariant preservation"
608
      sum="8687c7ff2a98196be71254550d95de52" proved="true"
609
      shape="loop invariant preservationNamatchesV4V11V5c0V0Iainfix &lt;V11ainfix -V9V10Aainfix &lt;=c0V11FIainfix =V10agetV7V8FIainfix &lt;V8V6Aainfix &lt;=c0V8INainfix =V8c0INainfix =agetV3V9agetV1V8Iainfix &lt;V9V2Aainfix &lt;=c0V9Iainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V9V2Iainfix &lt;V8V0INamatchesV4V12V5c0V0Iainfix &lt;V12ainfix -V9V8Aainfix &lt;=c0V12FAamatchesV4ainfix -V9V8V5c0V8Aainfix &lt;=V9V2Aainfix &lt;=V8V9Aainfix &lt;=V8V0Aainfix &lt;=c0V8FIais_nextV5V13agetV7V13Iainfix &lt;V13V0Aainfix &lt;c0V13FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
610
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
611
      <proof prover="1" timelimit="10" memlimit="0">
Andrei Paskevich's avatar
Andrei Paskevich committed
612
       <result status="valid" time="4.25"/>
Andrei Paskevich's avatar
Andrei Paskevich committed
613 614
      </proof>
     </goal>
MARCHE Claude's avatar
MARCHE Claude committed
615 616
     <goal name="WP_parameter kmp.19" expl="19. loop variant decrease"
      sum="cb7a774dbaa91031c03b59562652c363" proved="true"
617
      shape="loop variant decreaseainfix &lt;V10V8Aainfix &lt;=c0V8Oainfix &lt;ainfix -V2V9ainfix -V2V9Aainfix &lt;=c0ainfix -V2V9Iainfix =V10agetV7V8FIainfix &lt;V8V6Aainfix &lt;=c0V8INainfix =V8c0INainfix =agetV3V9agetV1V8Iainfix &lt;V9V2Aainfix &lt;=c0V9Iainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V9V2Iainfix &lt;V8V0INamatchesV4V11V5c0V0Iainfix &lt;V11ainfix -V9V8Aainfix &lt;=c0V11FAamatchesV4ainfix -V9V8V5c0V8Aainfix &lt;=V9V2Aainfix &lt;=V8V9Aainfix &lt;=V8V0Aainfix &lt;=c0V8FIais_nextV5V12agetV7V12Iainfix &lt;V12V0Aainfix &lt;c0V12FAainfix =V6V0Aainfix &lt;=c0V6FIainfix &lt;=c1V0Iainfix &lt;=c1V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1Lamk arrayV2V3F">
618
      <label name="expl:VC for kmp"/>
MARCHE Claude's avatar
MARCHE Claude committed
619
      <proof prover="1">
Andrei Paskevich's avatar
Andrei Paskevich committed