Commit 24fc5f16 authored by Léon Gondelman's avatar Léon Gondelman

new example for balance

parent 37162168
......@@ -50,3 +50,67 @@ module Balance
if balls[6] < balls[7] then 6 else 7
end
module Balance12
use import int.Int
use import array.Array
(* All values in balls[lo..hi[ are equal to [w], apart from balls[lb]
which is of a different weight (lighter or heavier) . *)
predicate spec (balls: array int) (lo hi j: int) (w: int) (b: bool) =
0 <= lo <= j < hi <= length balls &&
(forall i: int. lo <= i < hi -> i <> j -> balls[i] = w) &&
(if b then balls[j] < w else balls[j] > w)
(* j : the index of the different ball,
b : the status (lighter or heavier) of the different ball
False True meaning heavier and True meaining lighter *)
let solve12 (balls: array int) (ghost w j: int) (ghost b: bool) : (int, bool)
requires { spec balls 0 12 j w b }
ensures { result = (j, b) }
=
if balls[0] + balls[1] + balls[2] + balls[3] =
balls[4] + balls[5] + balls[6] + balls[7]
then
if balls[0] + balls[8] = balls[9] + balls[10]
then
if balls[0] < balls[11]
then (11, False)
else (11, True)
else if balls[0] + balls[8] < balls[9] + balls[10]
then
if balls[9] = balls[10] then (8, True)
else if balls[9] < balls[10] then (10, False) else (9, False)
else
if balls[9] = balls[10] then (8, False)
else if balls[9] < balls[10] then (9, True) else (10, True)
else if balls[0] + balls[1] + balls[2] + balls[3] <
balls[4] + balls[5] + balls[6] + balls[7]
then
if balls[0] + balls[1] + balls[4] = balls[2] + balls[5] + balls[8]
then
if balls[6] = balls[7] then (3, True)
else if balls[6] < balls[7] then (7, False) else (6, False)
else if balls[0] + balls[1] + balls[4] < balls[2] + balls[5] + balls[8]
then
if balls[0] = balls[1] then (5, False)
else if balls[0] < balls[1] then (0, True) else (1, True)
else
if balls[4] = balls[8] then (2, True) else (4, False)
else
if balls[0] + balls[1] + balls[4] = balls[2] + balls[5] + balls[8]
then
if balls[6] = balls[7] then (3, False)
else if balls[6] < balls[7] then (6, True) else (7, True)
else if balls[0] + balls[1] + balls[4] < balls[2] + balls[5] + balls[8]
then
if balls[2] = balls[5] then (4, True )
else if balls[2] < balls[5] then (5, False) else (2, False)
else
if balls[0] = balls[1] then (5, True) else
if balls[0] < balls[1] then (1, False) else (0, False)
end
\ No newline at end of file
......@@ -5,6 +5,14 @@
id="0"
name="Alt-Ergo"
version="0.95.1"/>
<prover
id="1"
name="Alt-Ergo"
version="0.95.2"/>
<prover
id="2"
name="CVC3"
version="2.4.1"/>
<file
name="../balance.mlw"
verified="true"
......@@ -20,7 +28,7 @@
locfile="../balance.mlw"
loclnum="30" loccnumb="6" loccnume="12"
expl="VC for solve3"
sum="3ad2ea87083b374f53889b0a9978f4c5"
sum="61ba3368e43fbedfd0d77a85c221861d"
proved="true"
expanded="true"
shape="iainfix =iainfix +V2c2ainfix +V2c1ainfix &gt;agetV1V2agetV1V6V3Aainfix &lt;V2V0Aainfix &lt;=c0V2Aainfix &lt;V6V0Aainfix &lt;=c0V6Lainfix +V2c1ainfix =V2V3ainfix &lt;agetV1V2agetV1V5Aainfix &lt;V2V0Aainfix &lt;=c0V2Aainfix &lt;V5V0Aainfix &lt;=c0V5Lainfix +V2c1Iaspecamk arrayV0V1V2ainfix +V2c3V3V4Aainfix &lt;=c0V0F">
......@@ -30,17 +38,25 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="false"
obsolete="true"
archived="false">
<result status="valid" time="0.02"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.01"/>
</proof>
</goal>
<goal
name="WP_parameter solve8"
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="VC for solve8"
sum="d31361585e559e5c179090a88a5ccdeb"
sum="c7e175f18776c2a5fe136fb90574093f"
proved="true"
expanded="true"
shape="iiainfix =ic7c6ainfix &lt;agetV1c6agetV1c7V2Aainfix &lt;c6V0Aainfix &lt;=c0c6Aainfix &lt;c7V0Aainfix &lt;=c0c7aspecV4c3ainfix +c3c3V2V3ainfix &gt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Aainfix &lt;c0V0Aainfix &lt;=c0c0Aainfix &lt;c1V0Aainfix &lt;=c0c1Aainfix &lt;c2V0Aainfix &lt;=c0c2Aainfix &lt;c3V0Aainfix &lt;=c0c3Aainfix &lt;c4V0Aainfix &lt;=c0c4Aainfix &lt;c5V0Aainfix &lt;=c0c5aspecV4c0ainfix +c0c3V2V3ainfix &lt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Aainfix &lt;c0V0Aainfix &lt;=c0c0Aainfix &lt;c1V0Aainfix &lt;=c0c1Aainfix &lt;c2V0Aainfix &lt;=c0c2Aainfix &lt;c3V0Aainfix &lt;=c0c3Aainfix &lt;c4V0Aainfix &lt;=c0c4Aainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -55,7 +71,7 @@
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="1. index in array bounds"
sum="b2d40a695281102206c57ffef269a7bb"
sum="6a926496ec2fc5fae3feee17218eafab"
proved="true"
expanded="false"
shape="index in array boundsainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -65,17 +81,25 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="false"
obsolete="true"
archived="false">
<result status="valid" time="0.02"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.01"/>
</proof>
</goal>
<goal
name="WP_parameter solve8.2"
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="2. index in array bounds"
sum="9c6175549bbf28b86d966b903bac4e62"
sum="975c6025bde09cff09e970371f18f543"
proved="true"
expanded="false"
shape="index in array boundsainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -85,6 +109,14 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="true"
archived="false">
<result status="valid" time="0.01"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.01"/>
......@@ -95,7 +127,7 @@
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="3. index in array bounds"
sum="f6912272fe1d882bc93fc208c49f7818"
sum="479606dd06d14fc5f000f81557cd09e9"
proved="true"
expanded="false"
shape="index in array boundsainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -105,6 +137,14 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="true"
archived="false">
<result status="valid" time="0.01"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.01"/>
......@@ -115,7 +155,7 @@
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="4. index in array bounds"
sum="312128fcc4d69b83a16700ff15607aff"
sum="9b1074d5dcdc780843225fac52f28c88"
proved="true"
expanded="false"
shape="index in array boundsainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -125,6 +165,14 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="true"
archived="false">
<result status="valid" time="0.01"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.01"/>
......@@ -135,7 +183,7 @@
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="5. index in array bounds"
sum="c39db593354d8d388a14517730b5a4ae"
sum="ae8999d91cac2dc2f9f0c03bd79676b3"
proved="true"
expanded="false"
shape="index in array boundsainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -145,17 +193,25 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="false"
obsolete="true"
archived="false">
<result status="valid" time="0.03"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.00"/>
</proof>
</goal>
<goal
name="WP_parameter solve8.6"
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="6. index in array bounds"
sum="d48753cf76cd4c110f08b345e58b0577"
sum="58a91047781856be201c8e4623240d88"
proved="true"
expanded="false"
shape="index in array boundsainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -165,6 +221,14 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="true"
archived="false">
<result status="valid" time="0.00"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.00"/>
......@@ -175,7 +239,7 @@
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="7. precondition"
sum="013f897984932d02e06a771270dc3d1f"
sum="34f24aec5759081fee36b1644c8429a2"
proved="true"
expanded="false"
shape="preconditionaspecV4c0ainfix +c0c3V2V3Iainfix &lt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Iainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -185,17 +249,25 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="false"
obsolete="true"
archived="false">
<result status="valid" time="0.03"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.05"/>
</proof>
</goal>
<goal
name="WP_parameter solve8.8"
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="8. index in array bounds"
sum="1ceb9b706381e5de75351694ecf8dbe0"
sum="88e96f60b490680d6c249a30486ace46"
proved="true"
expanded="false"
shape="index in array boundsainfix &lt;c5V0Aainfix &lt;=c0c5INainfix &lt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Iainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -205,17 +277,25 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="false"
obsolete="true"
archived="false">
<result status="valid" time="0.02"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.01"/>
</proof>
</goal>
<goal
name="WP_parameter solve8.9"
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="9. index in array bounds"
sum="b0aa1e8c453fb14a0c496427fe72c261"
sum="ac6ac6f1a460a5f86a3f2adf3ac50014"
proved="true"
expanded="false"
shape="index in array boundsainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5INainfix &lt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Iainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -225,17 +305,25 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="false"
obsolete="true"
archived="false">
<result status="valid" time="0.01"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal
name="WP_parameter solve8.10"
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="10. index in array bounds"
sum="4d642559ec83039923a2496f4e23c8dd"
sum="09e57bdf69b9d7e778bfcbec3f7b54eb"
proved="true"
expanded="false"
shape="index in array boundsainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5INainfix &lt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Iainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -245,17 +333,25 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="false"
obsolete="true"
archived="false">
<result status="valid" time="0.00"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.01"/>
</proof>
</goal>
<goal
name="WP_parameter solve8.11"
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="11. index in array bounds"
sum="ccc3323c04090655cab8a1ff7873574b"
sum="38b655ba3c73a177cfbf78b8baa6082a"
proved="true"
expanded="false"
shape="index in array boundsainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5INainfix &lt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Iainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -265,17 +361,25 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="false"
obsolete="true"
archived="false">
<result status="valid" time="0.01"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal
name="WP_parameter solve8.12"
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="12. index in array bounds"
sum="2408d061a0b1ecd4c87f16d7e41725ae"
sum="6d2c10b66c462a0d9b0f19a794da2a87"
proved="true"
expanded="false"
shape="index in array boundsainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5INainfix &lt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Iainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -285,6 +389,14 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="true"
archived="false">
<result status="valid" time="0.02"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.02"/>
......@@ -295,7 +407,7 @@
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="13. index in array bounds"
sum="690c698a413c66bc1693b12cb66955c7"
sum="b47140fc58b644b4ac9d5b7679aee6f6"
proved="true"
expanded="false"
shape="index in array boundsainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5INainfix &lt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Iainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -305,6 +417,14 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="true"
archived="false">
<result status="valid" time="0.01"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.01"/>
......@@ -315,7 +435,7 @@
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="14. precondition"
sum="2620171d7414e045b8365fbe66eb3348"
sum="b3b8375d53b28e76a2d3682683a3c898"
proved="true"
expanded="false"
shape="preconditionaspecV4c3ainfix +c3c3V2V3Iainfix &gt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Iainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5INainfix &lt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Iainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -325,17 +445,25 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="false"
obsolete="true"
archived="false">
<result status="valid" time="0.04"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.10"/>
</proof>
</goal>
<goal
name="WP_parameter solve8.15"
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="15. index in array bounds"
sum="d9200f7b3d36b8483637f1183b331206"
sum="831d05791c705cdc721163d39eecd416"
proved="true"
expanded="false"
shape="index in array boundsainfix &lt;c7V0Aainfix &lt;=c0c7INainfix &gt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Iainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5INainfix &lt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Iainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -345,17 +473,25 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="false"
obsolete="true"
archived="false">
<result status="valid" time="0.01"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal
name="WP_parameter solve8.16"
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="16. index in array bounds"
sum="2fa7c6a4347a6f7978963a52fc87741f"
sum="a62bd0cff55006d72867d31f0d27a80d"
proved="true"
expanded="false"
shape="index in array boundsainfix &lt;c6V0Aainfix &lt;=c0c6Iainfix &lt;c7V0Aainfix &lt;=c0c7INainfix &gt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Iainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5INainfix &lt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Iainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
......@@ -365,6 +501,14 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="true"
archived="false">
<result status="valid" time="0.01"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.01"/>
......@@ -375,9 +519,9 @@
locfile="../balance.mlw"
loclnum="39" loccnumb="6" loccnume="12"
expl="17. postcondition"
sum="a3b67d2c6ba952e455a09a5cdfe83011"
sum="2440fb80af7ec657e33026f1e85b604f"
proved="true"
expanded="true"
expanded="false"
shape="postconditionainfix =ic7c6ainfix &lt;agetV1c6agetV1c7V2Iainfix &lt;c6V0Aainfix &lt;=c0c6Iainfix &lt;c7V0Aainfix &lt;=c0c7INainfix &gt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Iainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5INainfix &lt;ainfix +ainfix +agetV1c0agetV1c1agetV1c2ainfix +ainfix +agetV1c3agetV1c4agetV1c5Iainfix &lt;c0V0Aainfix &lt;=c0c0Iainfix &lt;c1V0Aainfix &lt;=c0c1Iainfix &lt;c2V0Aainfix &lt;=c0c2Iainfix &lt;c3V0Aainfix &lt;=c0c3Iainfix &lt;c4V0Aainfix &lt;=c0c4Iainfix &lt;c5V0Aainfix &lt;=c0c5IaspecV4c0c8V2V3Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for solve8"/>
......@@ -385,13 +529,48 @@
prover="0"
timelimit="10"
memlimit="1000"
obsolete="false"
obsolete="true"
archived="false">
<result status="valid" time="0.20"/>
</proof>
<proof
prover="1"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.10"/>
</proof>
</goal>
</transf>
</goal>
</theory>
<theory
name="Balance12"
locfile="../balance.mlw"
loclnum="56" loccnumb="7" loccnume="16"
verified="true"
expanded="true">
<goal
name="WP_parameter solve12"
locfile="../balance.mlw"
loclnum="71" loccnumb="5" loccnume="12"
expl="VC for solve12"
sum="a05df0918d7e59201dc1c3ff73fdefe8"
proved="true"
expanded="false"
shape="iiiiiiainfix =V4aFalseAainfix =V3c0ainfix =V4aFalseAainfix =V3c1ainfix &lt;agetV1c0agetV1c1Aainfix &lt;c0V0Aainfix &lt;=c0c0Aainfix &lt;c1V0Aainfix &lt;=c0c1ainfix =aTrueV4Aainfix =c5V3ainfix =agetV1c0agetV1c1Aainfix &lt;c0V0Aainfix &lt;=c0c0Aainfix &lt;c1V0Aainfix &lt;=c0c1iiainfix =V4aFalseAainfix =V3c2ainfix =V4aFalseAainfix =V3c5ainfix &lt;agetV1c2agetV1c5Aainfix &lt;c2V0Aainfix &lt;=c0c2Aainfix &lt;c5V0Aainfix &lt;=c0c5ainfix =aTrueV4Aainfix =c4V3ainfix =agetV1c2agetV1c5Aainfix &lt;c2V0Aainfix &lt;=c0c2Aainfix &lt;c5V0Aainfix &lt;=c0c5ainfix &lt;ainfix +ainfix +agetV1c0agetV1c1agetV1c4ainfix +ainfix +agetV1c2agetV1c5agetV1c8Aainfix &lt;c0V0Aainfix &lt;=c0c0Aainfix &lt;c1V0Aainfix &lt;=c0c1Aainfix &lt;c4V0Aainfix &lt;=c0c4Aainfix &lt;c2V0Aainfix &lt;=c0c2Aainfix &lt;c5V0Aainfix &lt;=c0c5Aainfix &lt;c8V0Aainfix &lt;=c0c8iiainfix =V4aTrueAainfix =V3c7ainfix =V4aTrueAainfix =V3c6ainfix &lt;agetV1c6agetV1c7Aainfix &lt;c6V0Aainfix &lt;=c0c6Aainfix &lt;c7V0Aainfix &lt;=c0c7ainfix =aFalseV4Aainfix =c3V3ainfix =agetV1c6agetV1c7Aainfix &lt;c6V0Aainfix &lt;=c0c6Aainfix &lt;c7V0Aainfix &lt;=c0c7ainfix =ainfix +ainfix +agetV1c0agetV1c1agetV1c4ainfix +ainfix +agetV1c2agetV1c5agetV1c8Aainfix &lt;c0V0Aainfix &lt;=c0c0Aainfix &lt;c1V0Aainfix &lt;=c0c1Aainfix &lt;c4V0Aainfix &lt;=c0c4Aainfix &lt;c2V0Aainfix &lt;=c0c2Aainfix &lt;c5V0Aainfix &lt;=c0c5Aainfix &lt;c8V0Aainfix &lt;=c0c8iiiainfix =V4aFalseAainfix =V3c4ainfix =V4aTrueAainfix =V3c2ainfix =agetV1c4agetV1c8Aainfix &lt;c4V0Aainfix &lt;=c0c4Aainfix &lt;c8V0Aainfix &lt;=c0c8iiainfix =V4aTrueAainfix =V3c1ainfix =V4aTrueAainfix =V3c0ainfix &lt;agetV1c0agetV1c1Aainfix &lt;c0V0Aainfix &lt;=c0c0Aainfix &lt;c1V0Aainfix &lt;=c0c1ainfix =aFalseV4Aainfix =c5V3ainfix =agetV1c0agetV1c1Aainfix &lt;c0V0Aainfix &lt;=c0c0Aainfix &lt;c1V0Aainfix &lt;=c0c1ainfix &lt;ainfix +ainfix +agetV1c0agetV1c1agetV1c4ainfix +ainfix +agetV1c2agetV1c5agetV1c8Aainfix &lt;c0V0Aainfix &lt;=c0c0Aainfix &lt;c1V0Aainfix &lt;=c0c1Aainfix &lt;c4V0Aainfix &lt;=c0c4Aainfix &lt;c2V0Aainfix &lt;=c0c2Aainfix &lt;c5V0Aainfix &lt;=c0c5Aainfix &lt;c8V0Aainfix &lt;=c0c8iiainfix =V4aFalseAainfix =V3c6ainfix =V4aFalseAainfix =V3c7ainfix &lt;agetV1c6agetV1c7Aainfix &lt;c6V0Aainfix &lt;=c0c6Aainfix &lt;c7V0Aainfix &lt;=c0c7ainfix =aTrueV4Aainfix =c3V3ainfix =agetV1c6agetV1c7Aainfix &lt;c6V0Aainfix &lt;=c0c6Aainfix &lt;c7V0Aainfix &lt;=c0c7ainfix =ainfix +ainfix +agetV1c0agetV1c1agetV1c4ainfix +ainfix +agetV1c2agetV1c5agetV1c8Aainfix &lt;c0V0Aainfix &lt;=c0c0Aainfix &lt;c1V0Aainfix &lt;=c0c1Aainfix &lt;c4V0Aainfix &lt;=c0c4Aainfix &lt;c2V0Aainfix &lt;=c0c2Aainfix &lt;c5V0Aainfix &lt;=c0c5Aainfix &lt;c8V0Aainfix &lt;=c0c8ainfix &lt;ainfix +ainfix +ainfix +agetV1c0agetV1c1agetV1c2agetV1c3ainfix +ainfix +ainfix +agetV1c4agetV1c5agetV1c6agetV1c7Aainfix &lt;c0V0Aainfix &lt;=c0c0Aainfix &lt;c1V0Aainfix &lt;=c0c1Aainfix &lt;c2V0Aainfix &lt;=c0c2Aainfix &lt;c3V0Aainfix &lt;=c0c3Aainfix &lt;c4V0Aainfix &lt;=c0c4Aainfix &lt;c5V0Aainfix &lt;=c0c5Aainfix &lt;c6V0Aainfix &lt;=c0c6Aainfix &lt;c7V0Aainfix &lt;=c0c7iiiiainfix =V4aTrueAainfix =V3c10ainfix =V4aTrueAainfix =V3c9ainfix &lt;agetV1c9agetV1c10Aainfix &lt;c9V0Aainfix &lt;=c0c9Aainfix &lt;c10V0Aainfix &lt;=c0c10ainfix =aFalseV4Aainfix =c8V3ainfix =agetV1c9agetV1c10Aainfix &lt;c9V0Aainfix &lt;=c0c9Aainfix &lt;c10V0Aainfix &lt;=c0c10iiainfix =V4aFalseAainfix =V3c9ainfix =V4aFalseAainfix =V3c10ainfix &lt;agetV1c9agetV1c10Aainfix &lt;c9V0Aainfix &lt;=c0c9Aainfix &lt;c10V0Aainfix &lt;=c0c10ainfix =aTrueV4Aainfix =c8V3ainfix =agetV1c9agetV1c10Aainfix &lt;c9V0Aainfix &lt;=c0c9Aainfix &lt;c10V0Aainfix &lt;=c0c10ainfix &lt;ainfix +agetV1c0agetV1c8ainfix +agetV1c9agetV1c10Aainfix &lt;c0V0Aainfix &lt;=c0c0Aainfix &lt;c8V0Aainfix &lt;=c0c8Aainfix &lt;c9V0Aainfix &lt;=c0c9Aainfix &lt;c10V0Aainfix &lt;=c0c10iainfix =V4aTrueAainfix =V3c11ainfix =V4aFalseAainfix =V3c11ainfix &lt;agetV1c0agetV1c11Aainfix &lt;c0V0Aainfix &lt;=c0c0Aainfix &lt;c11V0Aainfix &lt;=c0c11ainfix =ainfix +agetV1c0agetV1c8ainfix +agetV1c9agetV1c10Aainfix &lt;c0V0Aainfix &lt;=c0c0Aainfix &lt;c8V0Aainfix &lt;=c0c8Aainfix &lt;c9V0Aainfix &lt;=c0c9Aainfix &lt;c10V0Aainfix &lt;=c0c10ainfix =ainfix +ainfix +ainfix +agetV1c0agetV1c1agetV1c2agetV1c3ainfix +ainfix +ainfix +agetV1c4agetV1c5agetV1c6agetV1c7Aainfix &lt;c0V0Aainfix &lt;=c0c0Aainfix &lt;c1V0Aainfix &lt;=c0c1Aainfix &lt;c2V0Aainfix &lt;=c0c2Aainfix &lt;c3V0Aainfix &lt;=c0c3Aainfix &lt;c4V0Aainfix &lt;=c0c4Aainfix &lt;c5V0Aainfix &lt;=c0c5Aainfix &lt;c6V0Aainfix &lt;=c0c6Aainfix &lt;c7V0Aainfix &lt;=c0c7Iaspecamk arrayV0V1c0c12V3V2V4Aainfix &lt;=c0V0F">
<label
name="expl:VC for solve12"/>
<proof
prover="2"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="1.10"/>
</proof>
</goal>
</theory>
</file>
</why3session>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment