permutation property: more lemmas and updated proofs (in progress)

parent 1e29247f
......@@ -19,7 +19,7 @@ module Flag
a[i] <- a[j];
a[j] <- v
end
{ exchange a (old a) i j }
{ exchange (old a) a i j }
let dutch_flag (a:array color) (n:int) =
{ 0 <= n /\ length a = n }
......@@ -33,7 +33,7 @@ module Flag
monochrome a !b !i White /\
monochrome a !r n Red /\
length a = n /\
permut_sub a (at a 'Init) 0 n }
permut_sub (at a 'Init) a 0 n }
variant { !r - !i }
match a[!i] with
| Blue ->
......@@ -51,7 +51,7 @@ module Flag
monochrome a 0 b Blue /\
monochrome a b r White /\
monochrome a r n Red)
/\ permut a (old a) }
/\ permut (old a) a }
end
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE why3session SYSTEM "why3session.dtd">
<why3session name="examples/programs/flag/why3session.xml">
<file name="../flag.mlw" verified="true" expanded="true">
<theory name="WP Flag" verified="true" expanded="true">
<goal name="WP_parameter swap" expl="correctness of parameter swap" sum="57952bfe7c7360743d0f0102996ac86f" proved="true" expanded="true">
<prover id="alt-ergo" name="Alt-Ergo" version="0.93"/>
<prover id="coq" name="Coq" version="8.2pl1"/>
<prover id="cvc3" name="CVC3" version="2.2"/>
<prover id="eprover" name="Eprover" version="0.7 Dhajea"/>
<prover id="gappa" name="Gappa" version="0.14.0"/>
<prover id="simplify" name="Simplify" version="1.5.4"/>
<prover id="yices" name="Yices" version="1.0.13"/>
<prover id="z3" name="Z3" version="2.13"/>
<file name="../flag.mlw" verified="false" expanded="true">
<theory name="WP Flag" verified="false" expanded="true">
<goal name="WP_parameter swap" expl="correctness of parameter swap" sum="933150befd5b3652581f6f26b48b7c6e" proved="true" expanded="true" shape="aexchangeV3V5V1V2Iainfix =V5asetV4V2agetV3V1FAainfix <V2V0Aainfix <=c0V2Iainfix =V4asetV3V1agetV3V2FAainfix <V1V0Aainfix <=c0V1Aainfix <V2V0Aainfix <=c0V2Aainfix <V1V0Aainfix <=c0V1Iainfix <V2V0Aainfix <=c0V2Aainfix <V1V0Aainfix <=c0V1FFFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag" expl="correctness of parameter dutch_flag" sum="b1e45240b530a8f41beb99d5e66e52f6" proved="true" expanded="true">
<transf name="split_goal" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.1" expl="loop invariant init" sum="10209b9343c7272c86f3817137cfc8b1" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.2" expl="precondition" sum="a11e5e768ab95f9ec8e7121cd08ad067" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.3" expl="correctness of parameter dutch_flag" sum="5bfad2270a8b86a9b24e014cc4ae319d" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag" expl="correctness of parameter dutch_flag" sum="b5d3289f20a205da568b4d556d40d4a9" proved="false" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7iainfix <V5V4CagetV7V5aBlueLamk arrayV0V9ainfix <ainfix -V4V12ainfix -V4V5Aainfix <=c0ainfix -V4V5Aapermut_subV2V9c0V1Aainfix =V0V1AamonochromeV10V4V1aRedAamonochromeV10V11V12aWhiteAamonochromeV10c0V11aBlueAainfix <=V4V1Aainfix <=V12V4Aainfix <=V11V12Aainfix <=c0V11Iainfix =V12ainfix +V5c1FIainfix =V11ainfix +V6c1FIaexchangeV7V9V6V5FAainfix <V5V0Aainfix <=c0V5Aainfix <V6V0Aainfix <=c0V6aWhiteainfix <ainfix -V4V13ainfix -V4V5Aainfix <=c0ainfix -V4V5Aapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V13aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V13V4Aainfix <=V6V13Aainfix <=c0V6Iainfix =V13ainfix +V5c1FaRedLamk arrayV0V15ainfix <ainfix -V14V5ainfix -V4V5Aainfix <=c0ainfix -V4V5Aapermut_subV2V15c0V1Aainfix =V0V1AamonochromeV16V14V1aRedAamonochromeV16V6V5aWhiteAamonochromeV16c0V6aBlueAainfix <=V14V1Aainfix <=V5V14Aainfix <=V6V5Aainfix <=c0V6IaexchangeV7V15V14V5FAainfix <V5V0Aainfix <=c0V5Aainfix <V14V0Aainfix <=c0V14Iainfix =V14ainfix -V4c1FAainfix <V5V0Aainfix <=c0V5apermutV3V8AamonochromeV8V18V1aRedAamonochromeV8V17V18aWhiteAamonochromeV8c0V17aBlueEEIapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFAapermut_subV2V2c0V1Aainfix =V0V1AamonochromeV3V1V1aRedAamonochromeV3c0c0aWhiteAamonochromeV3c0c0aBlueAainfix <=V1V1Aainfix <=c0V1Aainfix <=c0c0Aainfix <=c0c0Iainfix =V0V1Aainfix <=c0V1FFF">
<transf name="split_goal" proved="false" expanded="true">
<goal name="WP_parameter dutch_flag.1" expl="loop invariant init" sum="dcc62613cd7c5edaad8ffaac79602025" proved="true" expanded="true" shape="Lamk arrayV0V2apermut_subV2V2c0V1Aainfix =V0V1AamonochromeV3V1V1aRedAamonochromeV3c0c0aWhiteAamonochromeV3c0c0aBlueAainfix <=V1V1Aainfix <=c0V1Aainfix <=c0c0Aainfix <=c0c0Iainfix =V0V1Aainfix <=c0V1FFF">
<transf name="split_goal" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.3.1" expl="correctness of parameter dutch_flag" sum="e365accc2a42a0cc8f12c193fe6f7bdd" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.3.2" expl="correctness of parameter dutch_flag" sum="ce9d01a78e25db4f793de493f69d4848" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.1.1" expl="correctness of parameter dutch_flag" sum="71f916e3bea00ac271b1d509102038cf" proved="true" expanded="true" shape="Lamk arrayV0V2ainfix <=c0c0Iainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.3.3" expl="correctness of parameter dutch_flag" sum="83c17a5ddc696601ff5c3048b3dc5253" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.1.2" expl="correctness of parameter dutch_flag" sum="71f916e3bea00ac271b1d509102038cf" proved="true" expanded="true" shape="Lamk arrayV0V2ainfix <=c0c0Iainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.3.4" expl="correctness of parameter dutch_flag" sum="73666daa26642b49f28ded67a3ddbea7" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.1.3" expl="correctness of parameter dutch_flag" sum="fa4434dc3f753e4c965a05719c575a26" proved="true" expanded="true" shape="Lamk arrayV0V2ainfix <=c0V1Iainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.03"/>
</proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter dutch_flag.4" expl="correctness of parameter dutch_flag" sum="ef8df83bc44b7e045168774b45c6637c" proved="true" expanded="true">
<transf name="split_goal" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.4.1" expl="correctness of parameter dutch_flag" sum="35757aa4277435b9ae980a003d1a65ff" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.1.4" expl="correctness of parameter dutch_flag" sum="d7b2673057f4ceb0b821c978b22215ba" proved="true" expanded="true" shape="Lamk arrayV0V2ainfix <=V1V1Iainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.4.2" expl="correctness of parameter dutch_flag" sum="f753bfe1fa112f6e791618323cd37965" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.1.5" expl="correctness of parameter dutch_flag" sum="c58045f6510bcb78b7069e507b3de9cc" proved="true" expanded="true" shape="Lamk arrayV0V2amonochromeV3c0c0aBlueIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.4.3" expl="correctness of parameter dutch_flag" sum="f919562ee0d7304d6b06771668481e10" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.1.6" expl="correctness of parameter dutch_flag" sum="490e9693503bcc67ab15474703e80970" proved="true" expanded="true" shape="Lamk arrayV0V2amonochromeV3c0c0aWhiteIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.4.4" expl="correctness of parameter dutch_flag" sum="15ea5ac504638ca34edcf967f7c24cc0" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.1.7" expl="correctness of parameter dutch_flag" sum="0814a395a50d87bc1d4dce867a6096f0" proved="true" expanded="true" shape="Lamk arrayV0V2amonochromeV3V1V1aRedIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.4.5" expl="correctness of parameter dutch_flag" sum="f60750ed59aee12bd5acd2943c46a3e8" proved="true" expanded="true">
<proof prover="coq" timelimit="10" edited="flag_WP_Flag_WP_parameter_dutch_flag_2.v" obsolete="false">
<result status="valid" time="0.58"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.4.6" expl="correctness of parameter dutch_flag" sum="36f0b4873f192708a089d11d5c148ad1" proved="true" expanded="true">
<proof prover="coq" timelimit="10" edited="flag_WP_Flag_WP_parameter_dutch_flag_3.v" obsolete="false">
<result status="valid" time="0.61"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.4.7" expl="correctness of parameter dutch_flag" sum="646336e39c8c6b60f2520d7c0c00a14a" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.1.8" expl="correctness of parameter dutch_flag" sum="7a53ebadb923e73f879bb9665c7e8c87" proved="true" expanded="true" shape="Lamk arrayV0V2ainfix =V0V1Iainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="cvc3" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.45"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.4.8" expl="correctness of parameter dutch_flag" sum="0fd49c97da41be8f7638b1729e2b04e2" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.4.9" expl="correctness of parameter dutch_flag" sum="83fbea912642a969c0d141567c40cb1b" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.1.9" expl="correctness of parameter dutch_flag" sum="253c8d2e88313c4ee5ab718c90ab3b34" proved="true" expanded="true" shape="Lamk arrayV0V2apermut_subV2V2c0V1Iainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.04"/>
<result status="valid" time="0.02"/>
</proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter dutch_flag.5" expl="correctness of parameter dutch_flag" sum="77724cc8047f6dc4f6afeffe144cb11c" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.2" expl="precondition" sum="0d4ee4ed392c3f846eadfb38dfea3d78" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7ainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<transf name="split_goal" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.5.1" expl="correctness of parameter dutch_flag" sum="5bce3e7ac9b26ba9e67f1c8f172e0257" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.2.1" expl="correctness of parameter dutch_flag" sum="c2995d522e46ab978ec9d98c911b33ed" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7ainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.5.2" expl="correctness of parameter dutch_flag" sum="09bac77f1bffcacf491e890b6bad0211" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.2.2" expl="correctness of parameter dutch_flag" sum="5e0ff5a593b6f0a649306c2b72663571" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7ainfix <V5V0Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
<result status="valid" time="0.01"/>
</proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter dutch_flag.6" expl="correctness of parameter dutch_flag" sum="970aa25f73a013b430b622f7e0c26ab2" proved="true" expanded="true">
<transf name="split_goal" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.6.1" expl="correctness of parameter dutch_flag" sum="8699caf714abbc0726cf16c3fcfb0dbd" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.6.2" expl="correctness of parameter dutch_flag" sum="92196be47ac01d2fe2c45542cce6c76d" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.3" expl="correctness of parameter dutch_flag" sum="ccca04bb54038eb2774fe087e2f99a1f" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBlueainfix <V5V0Aainfix <=c0V5Aainfix <V6V0Aainfix <=c0V6aWhitetaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="cvc3" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.03"/>
</proof>
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.4" expl="correctness of parameter dutch_flag" sum="4f043ffba022d84745b44b44a65124b8" proved="false" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBlueLamk arrayV0V9apermut_subV2V9c0V1Aainfix =V0V1AamonochromeV10V4V1aRedAamonochromeV10V11V12aWhiteAamonochromeV10c0V11aBlueAainfix <=V4V1Aainfix <=V12V4Aainfix <=V11V12Aainfix <=c0V11Iainfix =V12ainfix +V5c1FIainfix =V11ainfix +V6c1FIaexchangeV7V9V6V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V6V0Aainfix <=c0V6aWhitetaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<transf name="split_goal" proved="false" expanded="true">
<goal name="WP_parameter dutch_flag.4.1" expl="correctness of parameter dutch_flag" sum="863b304a6b918913fe31c7d51b5a7b80" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBlueLamk arrayV0V9ainfix <=c0V11Iainfix =V12ainfix +V5c1FIainfix =V11ainfix +V6c1FIaexchangeV7V9V6V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V6V0Aainfix <=c0V6aWhitetaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.6.3" expl="correctness of parameter dutch_flag" sum="7bdc6a40841de2cb245af36e55bf2827" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.4.2" expl="correctness of parameter dutch_flag" sum="7c0e93900a3a8625776b4cfdde01df09" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBlueLamk arrayV0V9ainfix <=V11V12Iainfix =V12ainfix +V5c1FIainfix =V11ainfix +V6c1FIaexchangeV7V9V6V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V6V0Aainfix <=c0V6aWhitetaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.6.4" expl="correctness of parameter dutch_flag" sum="0f3449004ef97d92d8b7b831179422d6" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.4.3" expl="correctness of parameter dutch_flag" sum="1759570f30f56679a3cd44102e76a887" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBlueLamk arrayV0V9ainfix <=V12V4Iainfix =V12ainfix +V5c1FIainfix =V11ainfix +V6c1FIaexchangeV7V9V6V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V6V0Aainfix <=c0V6aWhitetaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.6.5" expl="correctness of parameter dutch_flag" sum="86c2699f065ce166644577162e6dd6d4" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.4.4" expl="correctness of parameter dutch_flag" sum="2522f75096eec0ac962b9ea1d757c74b" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBlueLamk arrayV0V9ainfix <=V4V1Iainfix =V12ainfix +V5c1FIainfix =V11ainfix +V6c1FIaexchangeV7V9V6V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V6V0Aainfix <=c0V6aWhitetaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.6.6" expl="correctness of parameter dutch_flag" sum="39826dae0f79175ec6205f97ef85c310" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.4.5" expl="correctness of parameter dutch_flag" sum="522aa897b229dc4725efa3b938fa054f" proved="false" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBlueLamk arrayV0V9amonochromeV10c0V11aBlueIainfix =V12ainfix +V5c1FIainfix =V11ainfix +V6c1FIaexchangeV7V9V6V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V6V0Aainfix <=c0V6aWhitetaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="cvc3" timelimit="10" edited="" obsolete="false">
<result status="timeout" time="10.06"/>
</proof>
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
<result status="timeout" time="10.58"/>
</proof>
<proof prover="z3" timelimit="10" edited="" obsolete="true">
<result status="timeout" time="11.21"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.6.7" expl="correctness of parameter dutch_flag" sum="cabe5449551ddd530e25123a1c30301d" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.4.6" expl="correctness of parameter dutch_flag" sum="b19b27cc31487070519f19e3ba99fa9c" proved="false" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBlueLamk arrayV0V9amonochromeV10V11V12aWhiteIainfix =V12ainfix +V5c1FIainfix =V11ainfix +V6c1FIaexchangeV7V9V6V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V6V0Aainfix <=c0V6aWhitetaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="cvc3" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
<result status="timeout" time="10.10"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.6.8" expl="correctness of parameter dutch_flag" sum="862009249acca5160389dc0e65d91e82" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
<result status="timeout" time="10.23"/>
</proof>
<proof prover="z3" timelimit="10" edited="" obsolete="true">
<result status="timeout" time="11.59"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.4.7" expl="correctness of parameter dutch_flag" sum="c12f2421f7e3bff07382e61e7b48cbb1" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBlueLamk arrayV0V9amonochromeV10V4V1aRedIainfix =V12ainfix +V5c1FIainfix =V11ainfix +V6c1FIaexchangeV7V9V6V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V6V0Aainfix <=c0V6aWhitetaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="cvc3" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.84"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.6.9" expl="correctness of parameter dutch_flag" sum="a11a18266ac7142130bec6fc052868fc" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.4.8" expl="correctness of parameter dutch_flag" sum="b4b217a0c76daf35621c1ad2acb1b180" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBlueLamk arrayV0V9ainfix =V0V1Iainfix =V12ainfix +V5c1FIainfix =V11ainfix +V6c1FIaexchangeV7V9V6V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V6V0Aainfix <=c0V6aWhitetaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.4.9" expl="correctness of parameter dutch_flag" sum="e0fdef9bde13190886ae019f0f08a902" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBlueLamk arrayV0V9apermut_subV2V9c0V1Iainfix =V12ainfix +V5c1FIainfix =V11ainfix +V6c1FIaexchangeV7V9V6V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V6V0Aainfix <=c0V6aWhitetaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="4.22"/>
</proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter dutch_flag.7" expl="correctness of parameter dutch_flag" sum="5d313f7e708a49bb02dfbfb3f014fe65" proved="true" expanded="true">
<proof prover="cvc3" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
<goal name="WP_parameter dutch_flag.5" expl="correctness of parameter dutch_flag" sum="1c4b609a6648e565b12540473d5a1f74" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBlueLamk arrayV0V9ainfix <ainfix -V4V12ainfix -V4V5Aainfix <=c0ainfix -V4V5Iapermut_subV2V9c0V1Aainfix =V0V1AamonochromeV10V4V1aRedAamonochromeV10V11V12aWhiteAamonochromeV10c0V11aBlueAainfix <=V4V1Aainfix <=V12V4Aainfix <=V11V12Aainfix <=c0V11Iainfix =V12ainfix +V5c1FIainfix =V11ainfix +V6c1FIaexchangeV7V9V6V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V6V0Aainfix <=c0V6aWhitetaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.8" expl="correctness of parameter dutch_flag" sum="c19e32a860e2bdd2ba38080926a80a81" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.6" expl="correctness of parameter dutch_flag" sum="a431e5271a30c64db3a6a7b6bf4bf480" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhiteapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V9aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V9V4Aainfix <=V6V9Aainfix <=c0V6Iainfix =V9ainfix +V5c1FaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<transf name="split_goal" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.8.1" expl="correctness of parameter dutch_flag" sum="70653263241f4634353aa223a2ffcefb" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.6.1" expl="correctness of parameter dutch_flag" sum="a57b82673d5d7c98c8266ee039bd86e6" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhiteainfix <=c0V6Iainfix =V9ainfix +V5c1FaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.8.2" expl="correctness of parameter dutch_flag" sum="cd67e4a1a6c84699516c5db1b7347785" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.6.2" expl="correctness of parameter dutch_flag" sum="ae12499310d7121e523014ca5a70ab9c" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhiteainfix <=V6V9Iainfix =V9ainfix +V5c1FaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.8.3" expl="correctness of parameter dutch_flag" sum="3758f35139af4e8342637878f2c8ab59" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.6.3" expl="correctness of parameter dutch_flag" sum="797361b96cdaedaa49e46f0851c7f4cf" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhiteainfix <=V9V4Iainfix =V9ainfix +V5c1FaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.8.4" expl="correctness of parameter dutch_flag" sum="0ece914657ffa0b344b2ae918182b759" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.6.4" expl="correctness of parameter dutch_flag" sum="547affea2d4a68b478269957450a33c2" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhiteainfix <=V4V1Iainfix =V9ainfix +V5c1FaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.6.5" expl="correctness of parameter dutch_flag" sum="435dfc3c2a9e3568ddc4fad28de1ae28" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhiteamonochromeV8c0V6aBlueIainfix =V9ainfix +V5c1FaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.6.6" expl="correctness of parameter dutch_flag" sum="1d222a7894ad65f7790e1d88a345b26e" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhiteamonochromeV8V6V9aWhiteIainfix =V9ainfix +V5c1FaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.6.7" expl="correctness of parameter dutch_flag" sum="9be9ac38d51446af362db11b34378b5e" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhiteamonochromeV8V4V1aRedIainfix =V9ainfix +V5c1FaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.04"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.6.8" expl="correctness of parameter dutch_flag" sum="d073537d21eb01a4d89fe84c18778698" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhiteainfix =V0V1Iainfix =V9ainfix +V5c1FaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.04"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.6.9" expl="correctness of parameter dutch_flag" sum="d062461743f05ba4750eaada085747a5" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhiteapermut_subV2V7c0V1Iainfix =V9ainfix +V5c1FaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter dutch_flag.9" expl="correctness of parameter dutch_flag" sum="d64172095ebb3d759538db0ede8c7593" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.7" expl="correctness of parameter dutch_flag" sum="06a27c216403c8e336030571a3078f9c" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhiteainfix <ainfix -V4V9ainfix -V4V5Aainfix <=c0ainfix -V4V5Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V9aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V9V4Aainfix <=V6V9Aainfix <=c0V6Iainfix =V9ainfix +V5c1FaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<transf name="split_goal" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.9.1" expl="correctness of parameter dutch_flag" sum="a53ceb5c48071ede890abf09e7182b1a" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.7.1" expl="correctness of parameter dutch_flag" sum="d5ebe46dfb4cda4a141d4ff8769ffc5c" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhiteainfix <=c0ainfix -V4V5Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V9aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V9V4Aainfix <=V6V9Aainfix <=c0V6Iainfix =V9ainfix +V5c1FaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.7.2" expl="correctness of parameter dutch_flag" sum="ad7d661b13c24aa3b45497276b0595d7" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhiteainfix <ainfix -V4V9ainfix -V4V5Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V9aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V9V4Aainfix <=V6V9Aainfix <=c0V6Iainfix =V9ainfix +V5c1FaRedtIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.9.2" expl="correctness of parameter dutch_flag" sum="e1b284cbb88305ef09dafd4b4b16ef0e" proved="true" expanded="true">
</transf>
</goal>
<goal name="WP_parameter dutch_flag.8" expl="correctness of parameter dutch_flag" sum="63319b2700cd509ab07a8f8f029afe1b" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhitetaRedainfix <V5V0Aainfix <=c0V5Aainfix <V9V0Aainfix <=c0V9Iainfix =V9ainfix -V4c1FIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.04"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.9" expl="correctness of parameter dutch_flag" sum="460036c09c459a389c644b4fa3bd40a8" proved="false" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhitetaRedLamk arrayV0V10apermut_subV2V10c0V1Aainfix =V0V1AamonochromeV11V9V1aRedAamonochromeV11V6V5aWhiteAamonochromeV11c0V6aBlueAainfix <=V9V1Aainfix <=V5V9Aainfix <=V6V5Aainfix <=c0V6IaexchangeV7V10V9V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V9V0Aainfix <=c0V9Iainfix =V9ainfix -V4c1FIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<transf name="split_goal" proved="false" expanded="true">
<goal name="WP_parameter dutch_flag.9.1" expl="correctness of parameter dutch_flag" sum="d3ce20a16eddf390e0d44700be26dc35" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhitetaRedLamk arrayV0V10ainfix <=c0V6IaexchangeV7V10V9V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V9V0Aainfix <=c0V9Iainfix =V9ainfix -V4c1FIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.9.2" expl="correctness of parameter dutch_flag" sum="3fac7110d2299ef9fa8258c2632691e3" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhitetaRedLamk arrayV0V10ainfix <=V6V5IaexchangeV7V10V9V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V9V0Aainfix <=c0V9Iainfix =V9ainfix -V4c1FIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.9.3" expl="correctness of parameter dutch_flag" sum="1e269d9f5a4b4f6656e89f156b3898a6" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.9.3" expl="correctness of parameter dutch_flag" sum="5d3587e7c0b98f7696fcd10a31b2685f" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhitetaRedLamk arrayV0V10ainfix <=V5V9IaexchangeV7V10V9V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V9V0Aainfix <=c0V9Iainfix =V9ainfix -V4c1FIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.9.4" expl="correctness of parameter dutch_flag" sum="ab2afec3b7e546f974dce97efffb8db0" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.9.4" expl="correctness of parameter dutch_flag" sum="853c0f7ae6112f7ec2146409b3f3af64" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhitetaRedLamk arrayV0V10ainfix <=V9V1IaexchangeV7V10V9V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V9V0Aainfix <=c0V9Iainfix =V9ainfix -V4c1FIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.9.5" expl="correctness of parameter dutch_flag" sum="7e5e8e71286fe761ce391e080a827737" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.9.5" expl="correctness of parameter dutch_flag" sum="06fe8dbbb4fce699fad51434bc70d6e3" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhitetaRedLamk arrayV0V10amonochromeV11c0V6aBlueIaexchangeV7V10V9V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V9V0Aainfix <=c0V9Iainfix =V9ainfix -V4c1FIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="cvc3" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.47"/>
<result status="valid" time="1.03"/>
</proof>
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="timeout" time="11.51"/>
</proof>
<proof prover="z3" timelimit="10" edited="" obsolete="true">
<result status="timeout" time="10.30"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.9.6" expl="correctness of parameter dutch_flag" sum="8416039e9162b9fce1ab87e9af97d2a1" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.9.6" expl="correctness of parameter dutch_flag" sum="e71c28701048c7d43b8015b0bab1efe8" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhitetaRedLamk arrayV0V10amonochromeV11V6V5aWhiteIaexchangeV7V10V9V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V9V0Aainfix <=c0V9Iainfix =V9ainfix -V4c1FIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="cvc3" timelimit="10" edited="" obsolete="false">
<result status="valid" time="3.14"/>
<result status="valid" time="6.24"/>
</proof>
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="timeout" time="11.58"/>
</proof>
<proof prover="z3" timelimit="10" edited="" obsolete="true">
<result status="timeout" time="10.41"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.9.7" expl="correctness of parameter dutch_flag" sum="ea103d0691939ee2575adfc7edece289" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.9.7" expl="correctness of parameter dutch_flag" sum="b09c5e0681f695e912027bce2a8b8621" proved="false" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhitetaRedLamk arrayV0V10amonochromeV11V9V1aRedIaexchangeV7V10V9V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V9V0Aainfix <=c0V9Iainfix =V9ainfix -V4c1FIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="cvc3" timelimit="10" edited="" obsolete="false">
<result status="valid" time="7.09"/>
<result status="timeout" time="10.08"/>
</proof>
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="timeout" time="10.61"/>
</proof>
<proof prover="z3" timelimit="10" edited="" obsolete="true">
<result status="timeout" time="10.35"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.9.8" expl="correctness of parameter dutch_flag" sum="c956b0af1f9308957c2aaffe6cbff3b4" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.9.8" expl="correctness of parameter dutch_flag" sum="c001bd22429c968840919b68518dfa3e" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhitetaRedLamk arrayV0V10ainfix =V0V1IaexchangeV7V10V9V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V9V0Aainfix <=c0V9Iainfix =V9ainfix -V4c1FIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.9.9" expl="correctness of parameter dutch_flag" sum="e40d758487ea8901ea1f712101f57dd7" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.9.9" expl="correctness of parameter dutch_flag" sum="7902d0942739a9131c40403bda2bad21" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhitetaRedLamk arrayV0V10apermut_subV2V10c0V1IaexchangeV7V10V9V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V9V0Aainfix <=c0V9Iainfix =V9ainfix -V4c1FIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="cvc3" timelimit="10" edited="" obsolete="true">
<result status="timeout" time="10.11"/>
</proof>
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.03"/>
<result status="valid" time="4.99"/>
</proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter dutch_flag.10" expl="correctness of parameter dutch_flag" sum="63a177c9c9b0ea88df565f801042a727" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.10" expl="correctness of parameter dutch_flag" sum="9eba2fef3449a589baeec5fa248edd7f" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhitetaRedLamk arrayV0V10ainfix <ainfix -V9V5ainfix -V4V5Aainfix <=c0ainfix -V4V5Iapermut_subV2V10c0V1Aainfix =V0V1AamonochromeV11V9V1aRedAamonochromeV11V6V5aWhiteAamonochromeV11c0V6aBlueAainfix <=V9V1Aainfix <=V5V9Aainfix <=V6V5Aainfix <=c0V6IaexchangeV7V10V9V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V9V0Aainfix <=c0V9Iainfix =V9ainfix -V4c1FIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<transf name="split_goal" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.10.1" expl="correctness of parameter dutch_flag" sum="09e807d3e04b806e735203eae25addbf" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.10.1" expl="correctness of parameter dutch_flag" sum="1200a37de63311571f308312353d185d" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhitetaRedLamk arrayV0V10ainfix <=c0ainfix -V4V5Iapermut_subV2V10c0V1Aainfix =V0V1AamonochromeV11V9V1aRedAamonochromeV11V6V5aWhiteAamonochromeV11c0V6aBlueAainfix <=V9V1Aainfix <=V5V9Aainfix <=V6V5Aainfix <=c0V6IaexchangeV7V10V9V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V9V0Aainfix <=c0V9Iainfix =V9ainfix -V4c1FIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.04"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.10.2" expl="correctness of parameter dutch_flag" sum="23a3f7254a090d0aa0064c7d88b08ba8" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.10.2" expl="correctness of parameter dutch_flag" sum="21595ddb28d585815ac73deb793a6353" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7CagetV7V5aBluetaWhitetaRedLamk arrayV0V10ainfix <ainfix -V9V5ainfix -V4V5Iapermut_subV2V10c0V1Aainfix =V0V1AamonochromeV11V9V1aRedAamonochromeV11V6V5aWhiteAamonochromeV11c0V6aBlueAainfix <=V9V1Aainfix <=V5V9Aainfix <=V6V5Aainfix <=c0V6IaexchangeV7V10V9V5FIainfix <V5V0Aainfix <=c0V5Aainfix <V9V0Aainfix <=c0V9Iainfix =V9ainfix -V4c1FIainfix <V5V0Aainfix <=c0V5Iainfix <V5V4Iapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.04"/>
</proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter dutch_flag.11" expl="normal postcondition" sum="6b45fc37879bcd1f1d723881ade0af44" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.11" expl="normal postcondition" sum="6baf04f0b243643da6254b2059547c3d" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7apermutV3V8AamonochromeV8V10V1aRedAamonochromeV8V9V10aWhiteAamonochromeV8c0V9aBlueEEIainfix <V5V4NIapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<transf name="split_goal" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.11.1" expl="correctness of parameter dutch_flag" sum="4828a18939c093434a4ac86228097128" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.11.1" expl="correctness of parameter dutch_flag" sum="52279cd61657bcbf96261871bf6ef621" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7amonochromeV8V10V1aRedAamonochromeV8V9V10aWhiteAamonochromeV8c0V9aBlueEEIainfix <V5V4NIapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
<result status="valid" time="0.04"/>
</proof>
</goal>
<goal name="WP_parameter dutch_flag.11.2" expl="correctness of parameter dutch_flag" sum="ba5e12bab53f12e1e00201a76675c9c7" proved="true" expanded="true">
<goal name="WP_parameter dutch_flag.11.2" expl="correctness of parameter dutch_flag" sum="515f14ed3ad1eaf17eb6146f18d5477a" proved="true" expanded="true" shape="Lamk arrayV0V2Lamk arrayV0V7apermutV3V8Iainfix <V5V4NIapermut_subV2V7c0V1Aainfix =V0V1AamonochromeV8V4V1aRedAamonochromeV8V6V5aWhiteAamonochromeV8c0V6aBlueAainfix <=V4V1Aainfix <=V5V4Aainfix <=V6V5Aainfix <=c0V6FFFFIainfix =V0V1Aainfix <=c0V1FFF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.03"/>
<result status="valid" time="0.07"/>
</proof>
<proof prover="cvc3" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.05"/>
</proof>
</goal>
</transf>
......
......@@ -15,25 +15,25 @@ module InsertionSort
'L:
for i = 1 to length a - 1 do
(* a[0..i[ is sorted; now insert a[i] *)
invariant { sorted_sub a 0 i /\ permut a (at a 'L) }
invariant { sorted_sub a 0 i /\ permut (at a 'L) a }
let v = a[i] in
let j = ref i in
while !j > 0 && a[!j - 1] > v do
invariant {
0 <= !j <= i /\ permut a[!j <- v] (at a 'L) /\
0 <= !j <= i /\ permut (at a 'L) a[!j <- v] /\
(forall k1 k2: int.
0 <= k1 <= k2 <= i -> k1 <> !j -> k2 <> !j -> a[k1] <= a[k2]) /\
(forall k: int. !j+1 <= k <= i -> v < a[k]) }
variant { !j }
'L1:
a[!j] <- a[!j - 1];
assert { exchange a[!j-1 <- v] (at a 'L1)[!j <- v] (!j - 1) !j};
assert { exchange (at a 'L1)[!j <- v] a[!j-1 <- v] (!j - 1) !j};
j := !j - 1
done;
assert { forall k: int. 0 <= k < !j -> a[k] <= v };
a[!j] <- v
done
{ sorted a /\ permut a (old a) }
{ sorted a /\ permut (old a) a }
end
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE why3session SYSTEM "why3session.dtd">
<why3session name="examples/programs/insertion_sort/why3session.xml">
<file name="../insertion_sort.mlw" verified="true" expanded="true">
<theory name="WP InsertionSort" verified="true" expanded="true">
<goal name="WP_parameter insertion_sort" expl="correctness of parameter insertion_sort" sum="52df11dfc4b1b1606ca27380dcf91a75" proved="true" expanded="true">
<transf name="split_goal" proved="true" expanded="true">
<goal name="WP_parameter insertion_sort.1" expl="normal postcondition" sum="bb6492bb0670c7bb75e24ba8da2a88e2" proved="true" expanded="false">
<prover id="alt-ergo" name="Alt-Ergo" version="0.93"/>
<prover id="coq" name="Coq" version="8.2pl1"/>
<prover id="cvc3" name="CVC3" version="2.2"/>
<prover id="eprover" name="Eprover" version="0.7 Dhajea"/>
<prover id="gappa" name="Gappa" version="0.14.0"/>
<prover id="simplify" name="Simplify" version="1.5.4"/>
<prover id="yices" name="Yices" version="1.0.13"/>
<prover id="z3" name="Z3" version="2.13"/>
<file name="../insertion_sort.mlw" verified="false" expanded="true">
<theory name="WP InsertionSort" verified="false" expanded="true">
<goal name="WP_parameter insertion_sort" expl="correctness of parameter insertion_sort" sum="ba7d33cff433c31f31822790e3c8b75e" proved="false" expanded="true" shape="Lamk arrayV0V1Lamk arrayV0V3apermutV2V4AasortedV4IapermutV2V4Aasorted_subV3c0ainfix +ainfix -V0c1c1ALagetV3V5Lamk arrayV0V8iainfix >V7c0iainfix >agetV8ainfix -V7c1V6Lamk arrayV0V10ainfix <V12V7Aainfix <=c0V7Aainfix <V6agetV10V13Iainfix <=V13V5Aainfix <=ainfix +V12c1V13FAainfix <=agetV10V14agetV10V15Iainfix =V15V12NIainfix =V14V12NIainfix <=V15V5Aainfix <=V14V15Aainfix <=c0V14FAapermutV2asetV11V12V6Aainfix <=V12V5Aainfix <=c0V12Iainfix =V12ainfix -V7c1FAaexchangeCasetV9V7V6amk arraywVV16CasetV11ainfix -V7c1V6amk arraywVV17ainfix -V7c1V7Iainfix =V10asetV8V7agetV8ainfix -V7c1FAainfix <V7V0Aainfix <=c0V7Aainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1apermutV2amk arrayV0V18Aasorted_subV18c0ainfix +V5c1Iainfix =V18asetV8V7V6FAainfix <V7V0Aainfix <=c0V7Aainfix <=agetV8V19V6Iainfix <V19V7Aainfix <=c0V19FAainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1ifLamk arrayV0V20ainfix <V22V7Aainfix <=c0V7Aainfix <V6agetV20V23Iainfix <=V23V5Aainfix <=ainfix +V22c1V23FAainfix <=agetV20V24agetV20V25Iainfix =V25V22NIainfix =V24V22NIainfix <=V25V5Aainfix <=V24V25Aainfix <=c0V24FAapermutV2asetV21V22V6Aainfix <=V22V5Aainfix <=c0V22Iainfix =V22ainfix -V7c1FAaexchangeCasetV9V7V6amk arraywVV26CasetV21ainfix -V7c1V6amk arraywVV27ainfix -V7c1V7Iainfix =V20asetV8V7agetV8ainfix -V7c1FAainfix <V7V0Aainfix <=c0V7Aainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1apermutV2amk arrayV0V28Aasorted_subV28c0ainfix +V5c1Iainfix =V28asetV8V7V6FAainfix <V7V0Aainfix <=c0V7Aainfix <=agetV8V29V6Iainfix <V29V7Aainfix <=c0V29FIainfix <V6agetV8V30Iainfix <=V30V5Aainfix <=ainfix +V7c1V30FAainfix <=agetV8V31agetV8V32Iainfix =V32V7NIainfix =V31V7NIainfix <=V32V5Aainfix <=V31V32Aainfix <=c0V31FAapermutV2asetV9V7V6Aainfix <=V7V5Aainfix <=c0V7FFAainfix <V6agetV3V33Iainfix <=V33V5Aainfix <=ainfix +V5c1V33FAainfix <=agetV3V34agetV3V35Iainfix =V35V5NIainfix =V34V5NIainfix <=V35V5Aainfix <=V34V35Aainfix <=c0V34FAapermutV2asetV4V5V6Aainfix <=V5V5Aainfix <=c0V5Aainfix <V5V0Aainfix <=c0V5IapermutV2V4Aasorted_subV3c0V5Iainfix <=V5ainfix -V0c1Aainfix <=c1V5FFAapermutV2V2Aasorted_subV1c0c1Iainfix <=c1ainfix -V0c1AapermutV2V2AasortedV2Iainfix >c1ainfix -V0c1FF">
<transf name="split_goal" proved="false" expanded="true">
<goal name="WP_parameter insertion_sort.1" expl="normal postcondition" sum="0d467139981e2be12600aa9eab9b5387" proved="true" expanded="true" shape="Lamk arrayV0V1apermutV2V2AasortedV2Iainfix >c1ainfix -V0c1FF">
<proof prover="alt-ergo" timelimit="30" edited="" obsolete="false">
<result status="valid" time="0.02"/>
<result status="valid" time="0.04"/>
</proof>
</goal>
<goal name="WP_parameter insertion_sort.2" expl="for loop initialization" sum="1e417f4ec6a45a2be290cc3e6fc35473" proved="true" expanded="false">
<proof prover="alt-ergo" timelimit="30" edited="" obsolete="false">
<result status="valid" time="0.01"/>
</proof>
</goal>
<goal name="WP_parameter insertion_sort.3" expl="for loop preservation" sum="ce2751087c1b44c33a1945304e896655" proved="true" expanded="true">
<goal name="WP_parameter insertion_sort.2" expl="for loop initialization" sum="bb6da37008a789c5e740ca8071b58154" proved="true" expanded="true" shape="Lamk arrayV0V1apermutV2V2Aasorted_subV1c0c1Iainfix <=c1ainfix -V0c1FF">
<transf name="split_goal" proved="true" expanded="true">
<goal name="WP_parameter insertion_sort.3.1" expl="for loop preservation" sum="1fc8f8a33493bc212cf613b97d1bdaf5" proved="true" expanded="false">
<goal name="WP_parameter insertion_sort.2.1" expl="correctness of parameter insertion_sort" sum="bff34f38daf27dabef7f0ba055a4c5f4" proved="true" expanded="true" shape="Lamk arrayV0V1asorted_subV1c0c1Iainfix <=c1ainfix -V0c1FF">
<proof prover="alt-ergo" timelimit="30" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter insertion_sort.3.2" expl="for loop preservation" sum="dda6b7bb0df5896a7498d61e1bab580f" proved="true" expanded="false">
<goal name="WP_parameter insertion_sort.2.2" expl="correctness of parameter insertion_sort" sum="2f95de4c5c4763a160f1c03c639c6ccd" proved="true" expanded="true" shape="Lamk arrayV0V1apermutV2V2Iainfix <=c1ainfix -V0c1FF">
<proof prover="cvc3" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.04"/>
</proof>
</goal>
<goal name="WP_parameter insertion_sort.3.3" expl="for loop preservation" sum="4c5ef1fc9cbccfe9b38fa239ccce671b" proved="true" expanded="false">
<proof prover="cvc3" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</transf>
</goal>
<goal name="WP_parameter insertion_sort.3" expl="for loop preservation" sum="93d44998908e8b7fcdc34c21cede0f4f" proved="false" expanded="true" shape="Lamk arrayV0V1Lamk arrayV0V3LagetV3V5Lamk arrayV0V8iainfix >V7c0iainfix >agetV8ainfix -V7c1V6Lamk arrayV0V10ainfix <V12V7Aainfix <=c0V7Aainfix <V6agetV10V13Iainfix <=V13V5Aainfix <=ainfix +V12c1V13FAainfix <=agetV10V14agetV10V15Iainfix =V15V12NIainfix =V14V12NIainfix <=V15V5Aainfix <=V14V15Aainfix <=c0V14FAapermutV2asetV11V12V6Aainfix <=V12V5Aainfix <=c0V12Iainfix =V12ainfix -V7c1FAaexchangeCasetV9V7V6amk arraywVV16CasetV11ainfix -V7c1V6amk arraywVV17ainfix -V7c1V7Iainfix =V10asetV8V7agetV8ainfix -V7c1FAainfix <V7V0Aainfix <=c0V7Aainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1apermutV2amk arrayV0V18Aasorted_subV18c0ainfix +V5c1Iainfix =V18asetV8V7V6FAainfix <V7V0Aainfix <=c0V7Aainfix <=agetV8V19V6Iainfix <V19V7Aainfix <=c0V19FAainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1ifLamk arrayV0V20ainfix <V22V7Aainfix <=c0V7Aainfix <V6agetV20V23Iainfix <=V23V5Aainfix <=ainfix +V22c1V23FAainfix <=agetV20V24agetV20V25Iainfix =V25V22NIainfix =V24V22NIainfix <=V25V5Aainfix <=V24V25Aainfix <=c0V24FAapermutV2asetV21V22V6Aainfix <=V22V5Aainfix <=c0V22Iainfix =V22ainfix -V7c1FAaexchangeCasetV9V7V6amk arraywVV26CasetV21ainfix -V7c1V6amk arraywVV27ainfix -V7c1V7Iainfix =V20asetV8V7agetV8ainfix -V7c1FAainfix <V7V0Aainfix <=c0V7Aainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1apermutV2amk arrayV0V28Aasorted_subV28c0ainfix +V5c1Iainfix =V28asetV8V7V6FAainfix <V7V0Aainfix <=c0V7Aainfix <=agetV8V29V6Iainfix <V29V7Aainfix <=c0V29FIainfix <V6agetV8V30Iainfix <=V30V5Aainfix <=ainfix +V7c1V30FAainfix <=agetV8V31agetV8V32Iainfix =V32V7NIainfix =V31V7NIainfix <=V32V5Aainfix <=V31V32Aainfix <=c0V31FAapermutV2asetV9V7V6Aainfix <=V7V5Aainfix <=c0V7FFAainfix <V6agetV3V33Iainfix <=V33V5Aainfix <=ainfix +V5c1V33FAainfix <=agetV3V34agetV3V35Iainfix =V35V5NIainfix =V34V5NIainfix <=V35V5Aainfix <=V34V35Aainfix <=c0V34FAapermutV2asetV4V5V6Aainfix <=V5V5Aainfix <=c0V5Aainfix <V5V0Aainfix <=c0V5IapermutV2V4Aasorted_subV3c0V5Iainfix <=V5ainfix -V0c1Aainfix <=c1V5FFIainfix <=c1ainfix -V0c1FF">
<transf name="split_goal" proved="false" expanded="true">
<goal name="WP_parameter insertion_sort.3.1" expl="for loop preservation" sum="26d6c7b5d446796ede5132f4c6e6cf56" proved="true" expanded="true" shape="Lamk arrayV0V1Lamk arrayV0V3ainfix <V5V0Aainfix <=c0V5IapermutV2V4Aasorted_subV3c0V5Iainfix <=V5ainfix -V0c1Aainfix <=c1V5FFIainfix <=c1ainfix -V0c1FF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter insertion_sort.3.4" expl="for loop preservation" sum="2b4a02a52328dd3ae37e3fbcf4e6e065" proved="true" expanded="false">
<goal name="WP_parameter insertion_sort.3.2" expl="for loop preservation" sum="d09df538ad9fc6d8a994cdcba28c9a5b" proved="true" expanded="true" shape="Lamk arrayV0V1Lamk arrayV0V3LagetV3V5ainfix <V6agetV3V7Iainfix <=V7V5Aainfix <=ainfix +V5c1V7FAainfix <=agetV3V8agetV3V9Iainfix =V9V5NIainfix =V8V5NIainfix <=V9V5Aainfix <=V8V9Aainfix <=c0V8FAapermutV2asetV4V5V6Aainfix <=V5V5Aainfix <=c0V5Iainfix <V5V0Aainfix <=c0V5IapermutV2V4Aasorted_subV3c0V5Iainfix <=V5ainfix -V0c1Aainfix <=c1V5FFIainfix <=c1ainfix -V0c1FF">
<proof prover="cvc3" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.05"/>
</proof>
</goal>
<goal name="WP_parameter insertion_sort.3.5" expl="for loop preservation" sum="b6cd8b74e4abdad61d699b45afcf91e1" proved="true" expanded="false">
<proof prover="cvc3" timelimit="10" edited="" obsolete="false">
<goal name="WP_parameter insertion_sort.3.3" expl="for loop preservation" sum="6e904f54936b9403db94e24f178ead2b" proved="true" expanded="true" shape="Lamk arrayV0V1Lamk arrayV0V3LagetV3V5Lamk arrayV0V8ainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1Iainfix >V7c0Iainfix <V6agetV8V10Iainfix <=V10V5Aainfix <=ainfix +V7c1V10FAainfix <=agetV8V11agetV8V12Iainfix =V12V7NIainfix =V11V7NIainfix <=V12V5Aainfix <=V11V12Aainfix <=c0V11FAapermutV2asetV9V7V6Aainfix <=V7V5Aainfix <=c0V7FFIainfix <V5V0Aainfix <=c0V5IapermutV2V4Aasorted_subV3c0V5Iainfix <=V5ainfix -V0c1Aainfix <=c1V5FFIainfix <=c1ainfix -V0c1FF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter insertion_sort.3.4" expl="for loop preservation" sum="5774ac1df3ea4842733f635349825bb9" proved="true" expanded="true" shape="Lamk arrayV0V1Lamk arrayV0V3LagetV3V5Lamk arrayV0V8ainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1Iainfix >agetV8ainfix -V7c1V6Iainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1Iainfix >V7c0Iainfix <V6agetV8V10Iainfix <=V10V5Aainfix <=ainfix +V7c1V10FAainfix <=agetV8V11agetV8V12Iainfix =V12V7NIainfix =V11V7NIainfix <=V12V5Aainfix <=V11V12Aainfix <=c0V11FAapermutV2asetV9V7V6Aainfix <=V7V5Aainfix <=c0V7FFIainfix <V5V0Aainfix <=c0V5IapermutV2V4Aasorted_subV3c0V5Iainfix <=V5ainfix -V0c1Aainfix <=c1V5FFIainfix <=c1ainfix -V0c1FF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter insertion_sort.3.5" expl="for loop preservation" sum="eb37f6f07ce51ce05d0fe74b50fe1ea7" proved="true" expanded="true" shape="Lamk arrayV0V1Lamk arrayV0V3LagetV3V5Lamk arrayV0V8ainfix <V7V0Aainfix <=c0V7Iainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1Iainfix >agetV8ainfix -V7c1V6Iainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1Iainfix >V7c0Iainfix <V6agetV8V10Iainfix <=V10V5Aainfix <=ainfix +V7c1V10FAainfix <=agetV8V11agetV8V12Iainfix =V12V7NIainfix =V11V7NIainfix <=V12V5Aainfix <=V11V12Aainfix <=c0V11FAapermutV2asetV9V7V6Aainfix <=V7V5Aainfix <=c0V7FFIainfix <V5V0Aainfix <=c0V5IapermutV2V4Aasorted_subV3c0V5Iainfix <=V5ainfix -V0c1Aainfix <=c1V5FFIainfix <=c1ainfix -V0c1FF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter insertion_sort.3.6" expl="for loop preservation" sum="7469ac21f28641078ecf05befb432b4a" proved="true" expanded="false">
<proof prover="z3" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.10"/>
<goal name="WP_parameter insertion_sort.3.6" expl="for loop preservation" sum="5e5f50afcc6ece0a8e68ce5ef6b61eb0" proved="true" expanded="true" shape="Lamk arrayV0V1Lamk arrayV0V3LagetV3V5Lamk arrayV0V8Lamk arrayV0V10aexchangeCasetV9V7V6amk arraywVV12CasetV11ainfix -V7c1V6amk arraywVV13ainfix -V7c1V7Iainfix =V10asetV8V7agetV8ainfix -V7c1FIainfix <V7V0Aainfix <=c0V7Iainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1Iainfix >agetV8ainfix -V7c1V6Iainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1Iainfix >V7c0Iainfix <V6agetV8V14Iainfix <=V14V5Aainfix <=ainfix +V7c1V14FAainfix <=agetV8V15agetV8V16Iainfix =V16V7NIainfix =V15V7NIainfix <=V16V5Aainfix <=V15V16Aainfix <=c0V15FAapermutV2asetV9V7V6Aainfix <=V7V5Aainfix <=c0V7FFIainfix <V5V0Aainfix <=c0V5IapermutV2V4Aasorted_subV3c0V5Iainfix <=V5ainfix -V0c1Aainfix <=c1V5FFIainfix <=c1ainfix -V0c1FF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="3.36"/>
</proof>
</goal>
<goal name="WP_parameter insertion_sort.3.7" expl="for loop preservation" sum="a79927e40e82f44bb2b90202f518345c" proved="true" expanded="true">
<transf name="split_goal" proved="true" expanded="true">
<goal name="WP_parameter insertion_sort.3.7.1" expl="for loop preservation" sum="a18c6d454fee9e450b12110bd9e7db2d" proved="true" expanded="false">
<goal name="WP_parameter insertion_sort.3.7" expl="for loop preservation" sum="07de9781228b48c01d77f6fee2500e9c" proved="false" expanded="true" shape="Lamk arrayV0V1Lamk arrayV0V3LagetV3V5Lamk arrayV0V8Lamk arrayV0V10ainfix <V6agetV10V13Iainfix <=V13V5Aainfix <=ainfix +V12c1V13FAainfix <=agetV10V14agetV10V15Iainfix =V15V12NIainfix =V14V12NIainfix <=V15V5Aainfix <=V14V15Aainfix <=c0V14FAapermutV2asetV11V12V6Aainfix <=V12V5Aainfix <=c0V12Iainfix =V12ainfix -V7c1FIaexchangeCasetV9V7V6amk arraywVV16CasetV11ainfix -V7c1V6amk arraywVV17ainfix -V7c1V7Iainfix =V10asetV8V7agetV8ainfix -V7c1FIainfix <V7V0Aainfix <=c0V7Iainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1Iainfix >agetV8ainfix -V7c1V6Iainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1Iainfix >V7c0Iainfix <V6agetV8V18Iainfix <=V18V5Aainfix <=ainfix +V7c1V18FAainfix <=agetV8V19agetV8V20Iainfix =V20V7NIainfix =V19V7NIainfix <=V20V5Aainfix <=V19V20Aainfix <=c0V19FAapermutV2asetV9V7V6Aainfix <=V7V5Aainfix <=c0V7FFIainfix <V5V0Aainfix <=c0V5IapermutV2V4Aasorted_subV3c0V5Iainfix <=V5ainfix -V0c1Aainfix <=c1V5FFIainfix <=c1ainfix -V0c1FF">
<transf name="split_goal" proved="false" expanded="true">
<goal name="WP_parameter insertion_sort.3.7.1" expl="for loop preservation" sum="67b6e80fae5e80dbfd7a026b263d88d5" proved="true" expanded="true" shape="Lamk arrayV0V1Lamk arrayV0V3LagetV3V5Lamk arrayV0V8Lamk arrayV0V10ainfix <=c0V12Iainfix =V12ainfix -V7c1FIaexchangeCasetV9V7V6amk arraywVV13CasetV11ainfix -V7c1V6amk arraywVV14ainfix -V7c1V7Iainfix =V10asetV8V7agetV8ainfix -V7c1FIainfix <V7V0Aainfix <=c0V7Iainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1Iainfix >agetV8ainfix -V7c1V6Iainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1Iainfix >V7c0Iainfix <V6agetV8V15Iainfix <=V15V5Aainfix <=ainfix +V7c1V15FAainfix <=agetV8V16agetV8V17Iainfix =V17V7NIainfix =V16V7NIainfix <=V17V5Aainfix <=V16V17Aainfix <=c0V16FAapermutV2asetV9V7V6Aainfix <=V7V5Aainfix <=c0V7FFIainfix <V5V0Aainfix <=c0V5IapermutV2V4Aasorted_subV3c0V5Iainfix <=V5ainfix -V0c1Aainfix <=c1V5FFIainfix <=c1ainfix -V0c1FF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
</proof>
</goal>
<goal name="WP_parameter insertion_sort.3.7.2" expl="for loop preservation" sum="50d8b516f2f3651f71e4efa9e2ac7642" proved="true" expanded="false">
<goal name="WP_parameter insertion_sort.3.7.2" expl="for loop preservation" sum="e487b3843498f3cf1543ee338edfb31b" proved="true" expanded="true" shape="Lamk arrayV0V1Lamk arrayV0V3LagetV3V5Lamk arrayV0V8Lamk arrayV0V10ainfix <=V12V5Iainfix =V12ainfix -V7c1FIaexchangeCasetV9V7V6amk arraywVV13CasetV11ainfix -V7c1V6amk arraywVV14ainfix -V7c1V7Iainfix =V10asetV8V7agetV8ainfix -V7c1FIainfix <V7V0Aainfix <=c0V7Iainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1Iainfix >agetV8ainfix -V7c1V6Iainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1Iainfix >V7c0Iainfix <V6agetV8V15Iainfix <=V15V5Aainfix <=ainfix +V7c1V15FAainfix <=agetV8V16agetV8V17Iainfix =V17V7NIainfix =V16V7NIainfix <=V17V5Aainfix <=V16V17Aainfix <=c0V16FAapermutV2asetV9V7V6Aainfix <=V7V5Aainfix <=c0V7FFIainfix <V5V0Aainfix <=c0V5IapermutV2V4Aasorted_subV3c0V5Iainfix <=V5ainfix -V0c1Aainfix <=c1V5FFIainfix <=c1ainfix -V0c1FF">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter insertion_sort.3.7.3" expl="for loop preservation" sum="075afbb9aa06a22be826b537dbf2212c" proved="true" expanded="true">
<proof prover="coq" timelimit="10" edited="insertion_sort_WP_InsertionSort_WP_parameter_insertion_sort_1.v" obsolete="false">
<result status="valid" time="0.57"/>
<goal name="WP_parameter insertion_sort.3.7.3" expl="for loop preservation" sum="d151c246094fcbaee0d63f8daf0daac4" proved="false" expanded="true" shape="Lamk arrayV0V1Lamk arrayV0V3LagetV3V5Lamk arrayV0V8Lamk arrayV0V10apermutV2asetV11V12V6Iainfix =V12ainfix -V7c1FIaexchangeCasetV9V7V6amk arraywVV13CasetV11ainfix -V7c1V6amk arraywVV14ainfix -V7c1V7Iainfix =V10asetV8V7agetV8ainfix -V7c1FIainfix <V7V0Aainfix <=c0V7Iainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1Iainfix >agetV8ainfix -V7c1V6Iainfix <ainfix -V7c1V0Aainfix <=c0ainfix -V7c1Iainfix >V7c0Iainfix <V6agetV8V15Iainfix <=V15V5Aainfix <=ainfix +V7c1V15FAainfix <=agetV8V16agetV8V17Iainfix =V17V7NIainfix =V16V7NIainfix <=V17V5Aainfix <=V16V17Aainfix <=c0V16FAapermutV2asetV9V7V6Aainfix <=V7V5Aainfix <=c0V7FFIainfix <V5V0Aainfix <=c0V5IapermutV2V4Aasorted_subV3c0V5Iainfix <=V5ainfix -V0c1Aainfix <=c1V5FFIainfix <=c1ainfix -V0c1FF">
<proof prover="cvc3" timelimit="10" edited="" obsolete="false">
<result status="timeout" time="10.04"/>
</proof>
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="timeout" time="11.66"/>
</proof>
</goal>