Commit ba6fd292 authored by Andrei Paskevich's avatar Andrei Paskevich

repair algo63, algo64, and alg065

parent 8da1605f
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -21,12 +21,12 @@ module Algo64
(* Algorithm 63 *)
val partition (a:array int) (m:int) (n:int) (i:ref int) (j:ref int) : unit
val partition (a:array int) (m n:int) (i j:ref int) : unit
requires { 0 <= m < n < length a }
writes {a,i,j}
ensures { m <= !j < !i <= n }
ensures { permut_sub (old a) a m (n+1) }
ensures {
writes { a, i, j}
ensures { m <= !j < !i <= n }
ensures { permut_sub (old a) a m (n+1) }
ensures {
exists x:int.
(forall r:int. m <= r <= !j -> a[r] <= x) /\
(forall r:int. !j < r < !i -> a[r] = x) /\
......@@ -34,19 +34,37 @@ module Algo64
(* Algorithm 64 *)
let rec quicksort (a:array int) (m:int) (n:int) : unit variant { n-m } =
let rec quicksort (a:array int) (m n:int) : unit
requires { 0 <= m <= n < length a }
variant { n - m }
ensures { permut_sub (old a) a m (n+1) }
ensures { sorted_sub a m (n+1) }
'Init:
if m < n then begin
= if m < n then begin
let i = ref 0 in
let j = ref 0 in
partition a m n i j;
'L1: quicksort a m !j;
assert { permut_sub (at a 'L1) a m (n+1) };
assert { forall r:int. !j < r <= n -> a[r] = (at a 'L1)[r] };
assert { forall r:int. m <= r <= !j ->
(exists s:int. m <= s <= !j /\ a[r] = (at a 'L1)[s]) &&
a[r] <= a[!j+1] };
'L2: quicksort a !i n;
assert { permut_sub (at a 'L2) a m (n+1) }
assert { permut_sub (at a 'L2) a m (n+1) };
assert { forall r:int. m <= r < !i -> a[r] = (at a 'L2)[r] };
assert { forall r:int. !i <= r <= n ->
(exists s:int. !i <= s <= n /\ a[r] = (at a 'L2)[s]) &&
a[r] >= a[!i-1] };
assert {
forall r s:int. m <= r <= s <= n ->
if r <= !j then
if s <= !j then "a" a[r] <= a[s] else
if s < !i then "b" a[r] <= a[s] else
"c" a[r] <= a[s] else
if r < !i then
if s < !i then "d" a[r] <= a[s] else
"e" a[r] <= a[s] else
"f" a[r] <= a[s] }
end
let qs (a:array int) : unit
......
......@@ -4,15 +4,11 @@
<prover
id="0"
name="Alt-Ergo"
version="0.95.1"/>
version="0.95.2"/>
<prover
id="1"
name="Eprover"
version="1.6"/>
<prover
id="2"
name="Z3"
version="2.19"/>
name="CVC4"
version="1.3"/>
<file
name="../algo64.mlw"
verified="true"
......@@ -28,14 +24,14 @@
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="VC for quicksort"
sum="11e0ec38983b8ef38413190f7b000838"
sum="7474b99401909442b5e323900d1e602e"
proved="true"
expanded="true"
shape="iasorted_subV1V2ainfix +V3c1Aapermut_subV1V1V2ainfix +V3c1asorted_subV8V2ainfix +V3c1Aapermut_subV1V8V2ainfix +V3c1Aapermut_subV7V8V2ainfix +V3c1Iasorted_subV8V5ainfix +V3c1Aapermut_subV7V8V5ainfix +V3c1Aainfix &lt;=c0V0FAainfix &lt;V3V0Aainfix &lt;=V5V3Aainfix &lt;=c0V5Aainfix &lt;ainfix -V3V5ainfix -V3V2Aainfix &lt;=c0ainfix -V3V2Aapermut_subV6V7V2ainfix +V3c1Iasorted_subV7V2ainfix +V4c1Aapermut_subV6V7V2ainfix +V4c1Aainfix &lt;=c0V0FAainfix &lt;V4V0Aainfix &lt;=V2V4Aainfix &lt;=c0V2Aainfix &lt;ainfix -V4V2ainfix -V3V2Aainfix &lt;=c0ainfix -V3V2Iainfix &gt;=agetV6V10V9Iainfix &lt;=V10V3Aainfix &lt;=V5V10FAainfix =agetV6V11V9Iainfix &lt;V11V5Aainfix &lt;V4V11FAainfix &lt;=agetV6V12V9Iainfix &lt;=V12V4Aainfix &lt;=V2V12FEAapermut_subV1V6V2ainfix +V3c1Aainfix &lt;=V5V3Aainfix &lt;V4V5Aainfix &lt;=V2V4Aainfix &lt;=c0V0FAainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2ainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0F">
shape="iasorted_subV1V2ainfix +V3c1Aapermut_subV4V4V2ainfix +V3c1asorted_subV11V2ainfix +V3c1Aapermut_subV4V12V2ainfix +V3c1Aiiainfix &lt;=agetV11V13agetV11V14iainfix &lt;=agetV11V13agetV11V14ainfix &lt;=agetV11V13agetV11V14ainfix &lt;V14V6ainfix &lt;V13V6iiainfix &lt;=agetV11V13agetV11V14ainfix &lt;=agetV11V13agetV11V14ainfix &lt;V14V6ainfix &lt;=agetV11V13agetV11V14ainfix &lt;=V14V5ainfix &lt;=V13V5Iainfix &lt;=V14V3Aainfix &lt;=V13V14Aainfix &lt;=V2V13FAainfix &gt;=agetV11V15agetV11ainfix -V6c1Aainfix =agetV11V15agetV9V16Aainfix &lt;=V16V3Aainfix &lt;=V6V16EIainfix &lt;=V15V3Aainfix &lt;=V6V15FAainfix =agetV11V17agetV9V17Iainfix &lt;V17V6Aainfix &lt;=V2V17FAapermut_subV10V12V2ainfix +V3c1Iasorted_subV11V6ainfix +V3c1Aapermut_subV10V12V6ainfix +V3c1Aainfix &lt;=c0V0Lamk arrayV0V11FAainfix &lt;V3V0Aainfix &lt;=V6V3Aainfix &lt;=c0V6Aainfix &lt;ainfix -V3V6ainfix -V3V2Aainfix &lt;=c0ainfix -V3V2Aainfix &lt;=agetV9V18agetV9ainfix +V5c1Aainfix =agetV9V18agetV7V19Aainfix &lt;=V19V5Aainfix &lt;=V2V19EIainfix &lt;=V18V5Aainfix &lt;=V2V18FAainfix =agetV9V20agetV7V20Iainfix &lt;=V20V3Aainfix &lt;V5V20FAapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix &lt;=c0V0Lamk arrayV0V9FAainfix &lt;V5V0Aainfix &lt;=V2V5Aainfix &lt;=c0V2Aainfix &lt;ainfix -V5V2ainfix -V3V2Aainfix &lt;=c0ainfix -V3V2Iainfix &gt;=agetV7V22V21Iainfix &lt;=V22V3Aainfix &lt;=V6V22FAainfix =agetV7V23V21Iainfix &lt;V23V6Aainfix &lt;V5V23FAainfix &lt;=agetV7V24V21Iainfix &lt;=V24V5Aainfix &lt;=V2V24FEAapermut_subV4V8V2ainfix +V3c1Aainfix &lt;=V6V3Aainfix &lt;V5V6Aainfix &lt;=V2V5Aainfix &lt;=c0V0Lamk arrayV0V7FAainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2ainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<transf
name="split_goal"
name="split_goal_wp"
proved="true"
expanded="true">
<goal
......@@ -43,10 +39,10 @@
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="1. precondition"
sum="1a91e33b4ccc5d2b06db73cacadca3df"
sum="47bb4f97adb5d588e750a86f191c5d08"
proved="true"
expanded="true"
shape="preconditionainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0F">
shape="preconditionainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<proof
......@@ -55,7 +51,7 @@
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal
......@@ -63,10 +59,10 @@
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="2. variant decrease"
sum="da59ba895708f566dd6d4489d1abb8b8"
sum="ccf04094852ba6c954ce46783a499205"
proved="true"
expanded="true"
shape="variant decreaseainfix &lt;ainfix -V4V2ainfix -V3V2Aainfix &lt;=c0ainfix -V3V2Iainfix &gt;=agetV6V8V7Iainfix &lt;=V8V3Aainfix &lt;=V5V8FAainfix =agetV6V9V7Iainfix &lt;V9V5Aainfix &lt;V4V9FAainfix &lt;=agetV6V10V7Iainfix &lt;=V10V4Aainfix &lt;=V2V10FEAapermut_subV1V6V2ainfix +V3c1Aainfix &lt;=V5V3Aainfix &lt;V4V5Aainfix &lt;=V2V4Aainfix &lt;=c0V0FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0F">
shape="variant decreaseainfix &lt;ainfix -V5V2ainfix -V3V2Aainfix &lt;=c0ainfix -V3V2Iainfix &gt;=agetV7V10V9Iainfix &lt;=V10V3Aainfix &lt;=V6V10FAainfix =agetV7V11V9Iainfix &lt;V11V6Aainfix &lt;V5V11FAainfix &lt;=agetV7V12V9Iainfix &lt;=V12V5Aainfix &lt;=V2V12FEAapermut_subV4V8V2ainfix +V3c1Aainfix &lt;=V6V3Aainfix &lt;V5V6Aainfix &lt;=V2V5Aainfix &lt;=c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<proof
......@@ -83,10 +79,10 @@
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="3. precondition"
sum="9c534646a73c85a15840090ce3ccc11a"
sum="dfd59b0d6ddf83f6026a55f062fcd1b1"
proved="true"
expanded="true"
shape="preconditionainfix &lt;V4V0Aainfix &lt;=V2V4Aainfix &lt;=c0V2Iainfix &gt;=agetV6V8V7Iainfix &lt;=V8V3Aainfix &lt;=V5V8FAainfix =agetV6V9V7Iainfix &lt;V9V5Aainfix &lt;V4V9FAainfix &lt;=agetV6V10V7Iainfix &lt;=V10V4Aainfix &lt;=V2V10FEAapermut_subV1V6V2ainfix +V3c1Aainfix &lt;=V5V3Aainfix &lt;V4V5Aainfix &lt;=V2V4Aainfix &lt;=c0V0FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0F">
shape="preconditionainfix &lt;V5V0Aainfix &lt;=V2V5Aainfix &lt;=c0V2Iainfix &gt;=agetV7V10V9Iainfix &lt;=V10V3Aainfix &lt;=V6V10FAainfix =agetV7V11V9Iainfix &lt;V11V6Aainfix &lt;V5V11FAainfix &lt;=agetV7V12V9Iainfix &lt;=V12V5Aainfix &lt;=V2V12FEAapermut_subV4V8V2ainfix +V3c1Aainfix &lt;=V6V3Aainfix &lt;V5V6Aainfix &lt;=V2V5Aainfix &lt;=c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<proof
......@@ -95,7 +91,7 @@
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.02"/>
<result status="valid" time="0.01"/>
</proof>
</goal>
<goal
......@@ -103,10 +99,10 @@
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="4. assertion"
sum="a2ec830713293a1edfcfbecda44bcd78"
sum="1a5fc92ab0b1d3509713a35bb6e265d8"
proved="true"
expanded="true"
shape="assertionapermut_subV6V7V2ainfix +V3c1Iasorted_subV7V2ainfix +V4c1Aapermut_subV6V7V2ainfix +V4c1Aainfix &lt;=c0V0FIainfix &lt;V4V0Aainfix &lt;=V2V4Aainfix &lt;=c0V2Iainfix &gt;=agetV6V9V8Iainfix &lt;=V9V3Aainfix &lt;=V5V9FAainfix =agetV6V10V8Iainfix &lt;V10V5Aainfix &lt;V4V10FAainfix &lt;=agetV6V11V8Iainfix &lt;=V11V4Aainfix &lt;=V2V11FEAapermut_subV1V6V2ainfix +V3c1Aainfix &lt;=V5V3Aainfix &lt;V4V5Aainfix &lt;=V2V4Aainfix &lt;=c0V0FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0F">
shape="assertionapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix &lt;=c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix &lt;=V2V5Aainfix &lt;=c0V2Iainfix &gt;=agetV7V12V11Iainfix &lt;=V12V3Aainfix &lt;=V6V12FAainfix =agetV7V13V11Iainfix &lt;V13V6Aainfix &lt;V5V13FAainfix &lt;=agetV7V14V11Iainfix &lt;=V14V5Aainfix &lt;=V2V14FEAapermut_subV4V8V2ainfix +V3c1Aainfix &lt;=V6V3Aainfix &lt;V5V6Aainfix &lt;=V2V5Aainfix &lt;=c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<proof
......@@ -122,11 +118,11 @@
name="WP_parameter quicksort.5"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="5. variant decrease"
sum="1d8af92cbd4765778bf722473a0bd96b"
expl="5. assertion"
sum="8c164e1a9725ed1ee4e2bd15cc7ddf5d"
proved="true"
expanded="true"
shape="variant decreaseainfix &lt;ainfix -V3V5ainfix -V3V2Aainfix &lt;=c0ainfix -V3V2Iapermut_subV6V7V2ainfix +V3c1Iasorted_subV7V2ainfix +V4c1Aapermut_subV6V7V2ainfix +V4c1Aainfix &lt;=c0V0FIainfix &lt;V4V0Aainfix &lt;=V2V4Aainfix &lt;=c0V2Iainfix &gt;=agetV6V9V8Iainfix &lt;=V9V3Aainfix &lt;=V5V9FAainfix =agetV6V10V8Iainfix &lt;V10V5Aainfix &lt;V4V10FAainfix &lt;=agetV6V11V8Iainfix &lt;=V11V4Aainfix &lt;=V2V11FEAapermut_subV1V6V2ainfix +V3c1Aainfix &lt;=V5V3Aainfix &lt;V4V5Aainfix &lt;=V2V4Aainfix &lt;=c0V0FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0F">
shape="assertionainfix =agetV9V11agetV7V11Iainfix &lt;=V11V3Aainfix &lt;V5V11FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix &lt;=c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix &lt;=V2V5Aainfix &lt;=c0V2Iainfix &gt;=agetV7V13V12Iainfix &lt;=V13V3Aainfix &lt;=V6V13FAainfix =agetV7V14V12Iainfix &lt;V14V6Aainfix &lt;V5V14FAainfix &lt;=agetV7V15V12Iainfix &lt;=V15V5Aainfix &lt;=V2V15FEAapermut_subV4V8V2ainfix +V3c1Aainfix &lt;=V6V3Aainfix &lt;V5V6Aainfix &lt;=V2V5Aainfix &lt;=c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<proof
......@@ -135,18 +131,126 @@
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.02"/>
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal
name="WP_parameter quicksort.6"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="6. precondition"
sum="f940cea88b26a332531aca899c6c48dd"
expl="6. assertion"
sum="2ff84800e3bd3bceadbc43e47b1f32ff"
proved="true"
expanded="true"
shape="assertionainfix &lt;=agetV9V11agetV9ainfix +V5c1Aainfix =agetV9V11agetV7V12Aainfix &lt;=V12V5Aainfix &lt;=V2V12EIainfix &lt;=V11V5Aainfix &lt;=V2V11FIainfix =agetV9V13agetV7V13Iainfix &lt;=V13V3Aainfix &lt;V5V13FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix &lt;=c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix &lt;=V2V5Aainfix &lt;=c0V2Iainfix &gt;=agetV7V15V14Iainfix &lt;=V15V3Aainfix &lt;=V6V15FAainfix =agetV7V16V14Iainfix &lt;V16V6Aainfix &lt;V5V16FAainfix &lt;=agetV7V17V14Iainfix &lt;=V17V5Aainfix &lt;=V2V17FEAapermut_subV4V8V2ainfix +V3c1Aainfix &lt;=V6V3Aainfix &lt;V5V6Aainfix &lt;=V2V5Aainfix &lt;=c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<transf
name="split_goal_wp"
proved="true"
expanded="true">
<goal
name="WP_parameter quicksort.6.1"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="1. assertion"
sum="5475e644d8202d6d6575609adfd4e59c"
proved="true"
expanded="true"
shape="assertionainfix =agetV9V11agetV7V12Aainfix &lt;=V12V5Aainfix &lt;=V2V12EIainfix &lt;=V11V5Aainfix &lt;=V2V11FIainfix =agetV9V13agetV7V13Iainfix &lt;=V13V3Aainfix &lt;V5V13FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix &lt;=c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix &lt;=V2V5Aainfix &lt;=c0V2Iainfix &gt;=agetV7V15V14Iainfix &lt;=V15V3Aainfix &lt;=V6V15FAainfix =agetV7V16V14Iainfix &lt;V16V6Aainfix &lt;V5V16FAainfix &lt;=agetV7V17V14Iainfix &lt;=V17V5Aainfix &lt;=V2V17FEAapermut_subV4V8V2ainfix +V3c1Aainfix &lt;=V6V3Aainfix &lt;V5V6Aainfix &lt;=V2V5Aainfix &lt;=c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<transf
name="inline_goal"
proved="true"
expanded="true">
<goal
name="WP_parameter quicksort.6.1.1"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="1. assertion"
sum="da23a28833f27a22599d277a5bf8f267"
proved="true"
expanded="true"
shape="assertionainfix =agetV9V11agetV7V12Aainfix =V12V5Oainfix &lt;V12V5Aainfix =V2V12Oainfix &lt;V2V12EIainfix =V11V5Oainfix &lt;V11V5Aainfix =V2V11Oainfix &lt;V2V11FIainfix =agetV9V13agetV7V13Iainfix =V13V3Oainfix &lt;V13V3Aainfix &lt;V5V13FIamap_eq_subaeltsV8aeltsV10ainfix +V3c1alengthV8AapermutV8V10V2ainfix +V3c1Aamap_eq_subaeltsV8aeltsV10c0V2Iainfix &lt;=amixfix []V9V14amixfix []V9V15Iainfix &lt;V15ainfix +V5c1Aainfix &lt;=V14V15Aainfix &lt;=V2V14FAamap_eq_subaeltsV8aeltsV10ainfix +V5c1alengthV8AapermutV8V10V2ainfix +V5c1Aamap_eq_subaeltsV8aeltsV10c0V2Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix =V2V5Oainfix &lt;V2V5Aainfix =c0V2Oainfix &lt;c0V2Iainfix &lt;=V16agetV7V17Iainfix =V17V3Oainfix &lt;V17V3Aainfix =V6V17Oainfix &lt;V6V17FAainfix =agetV7V18V16Iainfix &lt;V18V6Aainfix &lt;V5V18FAainfix =agetV7V19V16Oainfix &lt;agetV7V19V16Iainfix =V19V5Oainfix &lt;V19V5Aainfix =V2V19Oainfix &lt;V2V19FEAamap_eq_subaeltsV4aeltsV8ainfix +V3c1alengthV4AapermutV4V8V2ainfix +V3c1Aamap_eq_subaeltsV4aeltsV8c0V2Aainfix =V6V3Oainfix &lt;V6V3Aainfix &lt;V5V6Aainfix =V2V5Oainfix &lt;V2V5Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix =c0V2Oainfix &lt;c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix =V2V3Oainfix &lt;V2V3Aainfix =c0V2Oainfix &lt;c0V2Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<transf
name="inline_goal"
proved="true"
expanded="true">
<goal
name="WP_parameter quicksort.6.1.1.1"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="1. assertion"
sum="b88aba171f42020781f46fdad1d544f6"
proved="true"
expanded="true"
shape="assertionainfix =agetV9V11agetV7V12Aainfix =V12V5Oainfix &lt;V12V5Aainfix =V2V12Oainfix &lt;V2V12EIainfix =V11V5Oainfix &lt;V11V5Aainfix =V2V11Oainfix &lt;V2V11FIainfix =agetV9V13agetV7V13Iainfix =V13V3Oainfix &lt;V13V3Aainfix &lt;V5V13FIainfix =amixfix []aeltsV8V14amixfix []aeltsV10V14Iainfix &lt;V14alengthV8Aainfix &lt;=ainfix +V3c1V14FAapermutaeltsV8aeltsV10V2ainfix +V3c1Aainfix &lt;=ainfix +V3c1alengthV8Aainfix &lt;=c0ainfix +V3c1Aainfix &lt;=V2alengthV8Aainfix &lt;=c0V2Aainfix =alengthV8alengthV10Aainfix =amixfix []aeltsV8V15amixfix []aeltsV10V15Iainfix &lt;V15V2Aainfix &lt;=c0V15FIainfix =amixfix []V9V16amixfix []V9V17Oainfix &lt;amixfix []V9V16amixfix []V9V17Iainfix &lt;V17ainfix +V5c1Aainfix =V16V17Oainfix &lt;V16V17Aainfix =V2V16Oainfix &lt;V2V16FAainfix =amixfix []aeltsV8V18amixfix []aeltsV10V18Iainfix &lt;V18alengthV8Aainfix &lt;=ainfix +V5c1V18FAapermutaeltsV8aeltsV10V2ainfix +V5c1Aainfix &lt;=ainfix +V5c1alengthV8Aainfix &lt;=c0ainfix +V5c1Aainfix &lt;=V2alengthV8Aainfix &lt;=c0V2Aainfix =alengthV8alengthV10Aainfix =amixfix []aeltsV8V19amixfix []aeltsV10V19Iainfix &lt;V19V2Aainfix &lt;=c0V19FAainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix =V2V5Oainfix &lt;V2V5Aainfix =c0V2Oainfix &lt;c0V2Iainfix =V20agetV7V21Oainfix &lt;V20agetV7V21Iainfix =V21V3Oainfix &lt;V21V3Aainfix =V6V21Oainfix &lt;V6V21FAainfix =agetV7V22V20Iainfix &lt;V22V6Aainfix &lt;V5V22FAainfix =agetV7V23V20Oainfix &lt;agetV7V23V20Iainfix =V23V5Oainfix &lt;V23V5Aainfix =V2V23Oainfix &lt;V2V23FEAainfix =amixfix []aeltsV4V24amixfix []aeltsV8V24Iainfix &lt;V24alengthV4Aainfix &lt;=ainfix +V3c1V24FAapermutaeltsV4aeltsV8V2ainfix +V3c1Aainfix &lt;=ainfix +V3c1alengthV4Aainfix &lt;=c0ainfix +V3c1Aainfix &lt;=V2alengthV4Aainfix &lt;=c0V2Aainfix =alengthV4alengthV8Aainfix =amixfix []aeltsV4V25amixfix []aeltsV8V25Iainfix &lt;V25V2Aainfix &lt;=c0V25FAainfix =V6V3Oainfix &lt;V6V3Aainfix &lt;V5V6Aainfix =V2V5Oainfix &lt;V2V5Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix =c0V2Oainfix &lt;c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix =V2V3Oainfix &lt;V2V3Aainfix =c0V2Oainfix &lt;c0V2Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<transf
name="inline_goal"
proved="true"
expanded="true">
<goal
name="WP_parameter quicksort.6.1.1.1.1"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="1. assertion"
sum="2612f07a96c2ef31fb93ded0e3081e05"
proved="true"
expanded="true"
shape="assertionainfix =agetV9V11agetV7V12Aainfix =V12V5Oainfix &lt;V12V5Aainfix =V2V12Oainfix &lt;V2V12EIainfix =V11V5Oainfix &lt;V11V5Aainfix =V2V11Oainfix &lt;V2V11FIainfix =agetV9V13agetV7V13Iainfix =V13V3Oainfix &lt;V13V3Aainfix &lt;V5V13FIainfix =agetaeltsV8V14agetaeltsV10V14Iainfix &lt;V14alengthV8Aainfix =ainfix +V3c1V14Oainfix &lt;ainfix +V3c1V14FAapermutaeltsV8aeltsV10V2ainfix +V3c1Aainfix =ainfix +V3c1alengthV8Oainfix &lt;ainfix +V3c1alengthV8Aainfix =c0ainfix +V3c1Oainfix &lt;c0ainfix +V3c1Aainfix =V2alengthV8Oainfix &lt;V2alengthV8Aainfix =c0V2Oainfix &lt;c0V2Aainfix =alengthV8alengthV10Aainfix =agetaeltsV8V15agetaeltsV10V15Iainfix &lt;V15V2Aainfix =c0V15Oainfix &lt;c0V15FIainfix =agetV9V16agetV9V17Oainfix &lt;amixfix []V9V16amixfix []V9V17Iainfix &lt;V17ainfix +V5c1Aainfix =V16V17Oainfix &lt;V16V17Aainfix =V2V16Oainfix &lt;V2V16FAainfix =agetaeltsV8V18agetaeltsV10V18Iainfix &lt;V18alengthV8Aainfix =ainfix +V5c1V18Oainfix &lt;ainfix +V5c1V18FAapermutaeltsV8aeltsV10V2ainfix +V5c1Aainfix =ainfix +V5c1alengthV8Oainfix &lt;ainfix +V5c1alengthV8Aainfix =c0ainfix +V5c1Oainfix &lt;c0ainfix +V5c1Aainfix =V2alengthV8Oainfix &lt;V2alengthV8Aainfix =c0V2Oainfix &lt;c0V2Aainfix =alengthV8alengthV10Aainfix =agetaeltsV8V19agetaeltsV10V19Iainfix &lt;V19V2Aainfix =c0V19Oainfix &lt;c0V19FAainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix =V2V5Oainfix &lt;V2V5Aainfix =c0V2Oainfix &lt;c0V2Iainfix =V20agetV7V21Oainfix &lt;V20agetV7V21Iainfix =V21V3Oainfix &lt;V21V3Aainfix =V6V21Oainfix &lt;V6V21FAainfix =agetV7V22V20Iainfix &lt;V22V6Aainfix &lt;V5V22FAainfix =agetV7V23V20Oainfix &lt;agetV7V23V20Iainfix =V23V5Oainfix &lt;V23V5Aainfix =V2V23Oainfix &lt;V2V23FEAainfix =agetaeltsV4V24agetaeltsV8V24Iainfix &lt;V24alengthV4Aainfix =ainfix +V3c1V24Oainfix &lt;ainfix +V3c1V24FAapermutaeltsV4aeltsV8V2ainfix +V3c1Aainfix =ainfix +V3c1alengthV4Oainfix &lt;ainfix +V3c1alengthV4Aainfix =c0ainfix +V3c1Oainfix &lt;c0ainfix +V3c1Aainfix =V2alengthV4Oainfix &lt;V2alengthV4Aainfix =c0V2Oainfix &lt;c0V2Aainfix =alengthV4alengthV8Aainfix =agetaeltsV4V25agetaeltsV8V25Iainfix &lt;V25V2Aainfix =c0V25Oainfix &lt;c0V25FAainfix =V6V3Oainfix &lt;V6V3Aainfix &lt;V5V6Aainfix =V2V5Oainfix &lt;V2V5Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix =c0V2Oainfix &lt;c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix =V2V3Oainfix &lt;V2V3Aainfix =c0V2Oainfix &lt;c0V2Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<proof
prover="0"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.25"/>
</proof>
</goal>
</transf>
</goal>
</transf>
</goal>
</transf>
</goal>
<goal
name="WP_parameter quicksort.6.2"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="2. assertion"
sum="ff60e75ad1668bf3408418765f6d8bb9"
proved="true"
expanded="true"
shape="assertionainfix &lt;=agetV9V11agetV9ainfix +V5c1Iainfix =agetV9V11agetV7V12Aainfix &lt;=V12V5Aainfix &lt;=V2V12EIainfix &lt;=V11V5Aainfix &lt;=V2V11FIainfix =agetV9V13agetV7V13Iainfix &lt;=V13V3Aainfix &lt;V5V13FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix &lt;=c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix &lt;=V2V5Aainfix &lt;=c0V2Iainfix &gt;=agetV7V15V14Iainfix &lt;=V15V3Aainfix &lt;=V6V15FAainfix =agetV7V16V14Iainfix &lt;V16V6Aainfix &lt;V5V16FAainfix &lt;=agetV7V17V14Iainfix &lt;=V17V5Aainfix &lt;=V2V17FEAapermut_subV4V8V2ainfix +V3c1Aainfix &lt;=V6V3Aainfix &lt;V5V6Aainfix &lt;=V2V5Aainfix &lt;=c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<proof
prover="0"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.11"/>
</proof>
</goal>
</transf>
</goal>
<goal
name="WP_parameter quicksort.7"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="7. variant decrease"
sum="db7a4f78fd1c4ac24b2675f61a705831"
proved="true"
expanded="true"
shape="preconditionainfix &lt;V3V0Aainfix &lt;=V5V3Aainfix &lt;=c0V5Iapermut_subV6V7V2ainfix +V3c1Iasorted_subV7V2ainfix +V4c1Aapermut_subV6V7V2ainfix +V4c1Aainfix &lt;=c0V0FIainfix &lt;V4V0Aainfix &lt;=V2V4Aainfix &lt;=c0V2Iainfix &gt;=agetV6V9V8Iainfix &lt;=V9V3Aainfix &lt;=V5V9FAainfix =agetV6V10V8Iainfix &lt;V10V5Aainfix &lt;V4V10FAainfix &lt;=agetV6V11V8Iainfix &lt;=V11V4Aainfix &lt;=V2V11FEAapermut_subV1V6V2ainfix +V3c1Aainfix &lt;=V5V3Aainfix &lt;V4V5Aainfix &lt;=V2V4Aainfix &lt;=c0V0FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0F">
shape="variant decreaseainfix &lt;ainfix -V3V6ainfix -V3V2Aainfix &lt;=c0ainfix -V3V2Iainfix &lt;=agetV9V11agetV9ainfix +V5c1Aainfix =agetV9V11agetV7V12Aainfix &lt;=V12V5Aainfix &lt;=V2V12EIainfix &lt;=V11V5Aainfix &lt;=V2V11FIainfix =agetV9V13agetV7V13Iainfix &lt;=V13V3Aainfix &lt;V5V13FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix &lt;=c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix &lt;=V2V5Aainfix &lt;=c0V2Iainfix &gt;=agetV7V15V14Iainfix &lt;=V15V3Aainfix &lt;=V6V15FAainfix =agetV7V16V14Iainfix &lt;V16V6Aainfix &lt;V5V16FAainfix &lt;=agetV7V17V14Iainfix &lt;=V17V5Aainfix &lt;=V2V17FEAapermut_subV4V8V2ainfix +V3c1Aainfix &lt;=V6V3Aainfix &lt;V5V6Aainfix &lt;=V2V5Aainfix &lt;=c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<proof
......@@ -155,18 +259,18 @@
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal
name="WP_parameter quicksort.7"
name="WP_parameter quicksort.8"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="7. assertion"
sum="e0eccde7bb5f060921081ffcb2209d82"
expl="8. precondition"
sum="b6f37ca0f09a2744e5c77651748ad0f0"
proved="true"
expanded="true"
shape="assertionapermut_subV7V8V2ainfix +V3c1Iasorted_subV8V5ainfix +V3c1Aapermut_subV7V8V5ainfix +V3c1Aainfix &lt;=c0V0FIainfix &lt;V3V0Aainfix &lt;=V5V3Aainfix &lt;=c0V5Iapermut_subV6V7V2ainfix +V3c1Iasorted_subV7V2ainfix +V4c1Aapermut_subV6V7V2ainfix +V4c1Aainfix &lt;=c0V0FIainfix &lt;V4V0Aainfix &lt;=V2V4Aainfix &lt;=c0V2Iainfix &gt;=agetV6V10V9Iainfix &lt;=V10V3Aainfix &lt;=V5V10FAainfix =agetV6V11V9Iainfix &lt;V11V5Aainfix &lt;V4V11FAainfix &lt;=agetV6V12V9Iainfix &lt;=V12V4Aainfix &lt;=V2V12FEAapermut_subV1V6V2ainfix +V3c1Aainfix &lt;=V5V3Aainfix &lt;V4V5Aainfix &lt;=V2V4Aainfix &lt;=c0V0FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0F">
shape="preconditionainfix &lt;V3V0Aainfix &lt;=V6V3Aainfix &lt;=c0V6Iainfix &lt;=agetV9V11agetV9ainfix +V5c1Aainfix =agetV9V11agetV7V12Aainfix &lt;=V12V5Aainfix &lt;=V2V12EIainfix &lt;=V11V5Aainfix &lt;=V2V11FIainfix =agetV9V13agetV7V13Iainfix &lt;=V13V3Aainfix &lt;V5V13FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix &lt;=c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix &lt;=V2V5Aainfix &lt;=c0V2Iainfix &gt;=agetV7V15V14Iainfix &lt;=V15V3Aainfix &lt;=V6V15FAainfix =agetV7V16V14Iainfix &lt;V16V6Aainfix &lt;V5V16FAainfix &lt;=agetV7V17V14Iainfix &lt;=V17V5Aainfix &lt;=V2V17FEAapermut_subV4V8V2ainfix +V3c1Aainfix &lt;=V6V3Aainfix &lt;V5V6Aainfix &lt;=V2V5Aainfix &lt;=c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<proof
......@@ -179,49 +283,140 @@
</proof>
</goal>
<goal
name="WP_parameter quicksort.8"
name="WP_parameter quicksort.9"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="8. postcondition"
sum="76e3183894a521560df10aebaa535cfe"
expl="9. assertion"
sum="7deec2c7eca02baa90f8d66d33fb83f0"
proved="true"
expanded="true"
shape="postconditionapermut_subV1V8V2ainfix +V3c1Iapermut_subV7V8V2ainfix +V3c1Iasorted_subV8V5ainfix +V3c1Aapermut_subV7V8V5ainfix +V3c1Aainfix &lt;=c0V0FIainfix &lt;V3V0Aainfix &lt;=V5V3Aainfix &lt;=c0V5Iapermut_subV6V7V2ainfix +V3c1Iasorted_subV7V2ainfix +V4c1Aapermut_subV6V7V2ainfix +V4c1Aainfix &lt;=c0V0FIainfix &lt;V4V0Aainfix &lt;=V2V4Aainfix &lt;=c0V2Iainfix &gt;=agetV6V10V9Iainfix &lt;=V10V3Aainfix &lt;=V5V10FAainfix =agetV6V11V9Iainfix &lt;V11V5Aainfix &lt;V4V11FAainfix &lt;=agetV6V12V9Iainfix &lt;=V12V4Aainfix &lt;=V2V12FEAapermut_subV1V6V2ainfix +V3c1Aainfix &lt;=V5V3Aainfix &lt;V4V5Aainfix &lt;=V2V4Aainfix &lt;=c0V0FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0F">
shape="assertionapermut_subV10V12V2ainfix +V3c1Iasorted_subV11V6ainfix +V3c1Aapermut_subV10V12V6ainfix +V3c1Aainfix &lt;=c0V0Lamk arrayV0V11FIainfix &lt;V3V0Aainfix &lt;=V6V3Aainfix &lt;=c0V6Iainfix &lt;=agetV9V13agetV9ainfix +V5c1Aainfix =agetV9V13agetV7V14Aainfix &lt;=V14V5Aainfix &lt;=V2V14EIainfix &lt;=V13V5Aainfix &lt;=V2V13FIainfix =agetV9V15agetV7V15Iainfix &lt;=V15V3Aainfix &lt;V5V15FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix &lt;=c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix &lt;=V2V5Aainfix &lt;=c0V2Iainfix &gt;=agetV7V17V16Iainfix &lt;=V17V3Aainfix &lt;=V6V17FAainfix =agetV7V18V16Iainfix &lt;V18V6Aainfix &lt;V5V18FAainfix &lt;=agetV7V19V16Iainfix &lt;=V19V5Aainfix &lt;=V2V19FEAapermut_subV4V8V2ainfix +V3c1Aainfix &lt;=V6V3Aainfix &lt;V5V6Aainfix &lt;=V2V5Aainfix &lt;=c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<proof
prover="0"
timelimit="17"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.04"/>
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal
name="WP_parameter quicksort.9"
name="WP_parameter quicksort.10"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="9. postcondition"
sum="b04b9f2930bbbc20d97026777b784fb1"
expl="10. assertion"
sum="9d0476a064db9af2b32fde6591b1e42a"
proved="true"
expanded="true"
shape="postconditionasorted_subV8V2ainfix +V3c1Iapermut_subV7V8V2ainfix +V3c1Iasorted_subV8V5ainfix +V3c1Aapermut_subV7V8V5ainfix +V3c1Aainfix &lt;=c0V0FIainfix &lt;V3V0Aainfix &lt;=V5V3Aainfix &lt;=c0V5Iapermut_subV6V7V2ainfix +V3c1Iasorted_subV7V2ainfix +V4c1Aapermut_subV6V7V2ainfix +V4c1Aainfix &lt;=c0V0FIainfix &lt;V4V0Aainfix &lt;=V2V4Aainfix &lt;=c0V2Iainfix &gt;=agetV6V10V9Iainfix &lt;=V10V3Aainfix &lt;=V5V10FAainfix =agetV6V11V9Iainfix &lt;V11V5Aainfix &lt;V4V11FAainfix &lt;=agetV6V12V9Iainfix &lt;=V12V4Aainfix &lt;=V2V12FEAapermut_subV1V6V2ainfix +V3c1Aainfix &lt;=V5V3Aainfix &lt;V4V5Aainfix &lt;=V2V4Aainfix &lt;=c0V0FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0F">
shape="assertionainfix =agetV11V13agetV9V13Iainfix &lt;V13V6Aainfix &lt;=V2V13FIapermut_subV10V12V2ainfix +V3c1Iasorted_subV11V6ainfix +V3c1Aapermut_subV10V12V6ainfix +V3c1Aainfix &lt;=c0V0Lamk arrayV0V11FIainfix &lt;V3V0Aainfix &lt;=V6V3Aainfix &lt;=c0V6Iainfix &lt;=agetV9V14agetV9ainfix +V5c1Aainfix =agetV9V14agetV7V15Aainfix &lt;=V15V5Aainfix &lt;=V2V15EIainfix &lt;=V14V5Aainfix &lt;=V2V14FIainfix =agetV9V16agetV7V16Iainfix &lt;=V16V3Aainfix &lt;V5V16FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix &lt;=c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix &lt;=V2V5Aainfix &lt;=c0V2Iainfix &gt;=agetV7V18V17Iainfix &lt;=V18V3Aainfix &lt;=V6V18FAainfix =agetV7V19V17Iainfix &lt;V19V6Aainfix &lt;V5V19FAainfix &lt;=agetV7V20V17Iainfix &lt;=V20V5Aainfix &lt;=V2V20FEAapermut_subV4V8V2ainfix +V3c1Aainfix &lt;=V6V3Aainfix &lt;V5V6Aainfix &lt;=V2V5Aainfix &lt;=c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<proof
prover="0"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.05"/>
</proof>
</goal>
<goal
name="WP_parameter quicksort.11"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="11. assertion"
sum="ca7cad33812f06c163adc229d1cb92cd"
proved="true"
expanded="true"
shape="assertionainfix &gt;=agetV11V13agetV11ainfix -V6c1Aainfix =agetV11V13agetV9V14Aainfix &lt;=V14V3Aainfix &lt;=V6V14EIainfix &lt;=V13V3Aainfix &lt;=V6V13FIainfix =agetV11V15agetV9V15Iainfix &lt;V15V6Aainfix &lt;=V2V15FIapermut_subV10V12V2ainfix +V3c1Iasorted_subV11V6ainfix +V3c1Aapermut_subV10V12V6ainfix +V3c1Aainfix &lt;=c0V0Lamk arrayV0V11FIainfix &lt;V3V0Aainfix &lt;=V6V3Aainfix &lt;=c0V6Iainfix &lt;=agetV9V16agetV9ainfix +V5c1Aainfix =agetV9V16agetV7V17Aainfix &lt;=V17V5Aainfix &lt;=V2V17EIainfix &lt;=V16V5Aainfix &lt;=V2V16FIainfix =agetV9V18agetV7V18Iainfix &lt;=V18V3Aainfix &lt;V5V18FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix &lt;=c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix &lt;=V2V5Aainfix &lt;=c0V2Iainfix &gt;=agetV7V20V19Iainfix &lt;=V20V3Aainfix &lt;=V6V20FAainfix =agetV7V21V19Iainfix &lt;V21V6Aainfix &lt;V5V21FAainfix &lt;=agetV7V22V19Iainfix &lt;=V22V5Aainfix &lt;=V2V22FEAapermut_subV4V8V2ainfix +V3c1Aainfix &lt;=V6V3Aainfix &lt;V5V6Aainfix &lt;=V2V5Aainfix &lt;=c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<transf
name="inline_all"
name="split_goal_wp"
proved="true"
expanded="true">
<goal
name="WP_parameter quicksort.9.1"
name="WP_parameter quicksort.11.1"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="1. assertion"
sum="790b991917447054b4b80f9d459fea37"
proved="true"
expanded="true"
shape="assertionainfix =agetV11V13agetV9V14Aainfix &lt;=V14V3Aainfix &lt;=V6V14EIainfix &lt;=V13V3Aainfix &lt;=V6V13FIainfix =agetV11V15agetV9V15Iainfix &lt;V15V6Aainfix &lt;=V2V15FIapermut_subV10V12V2ainfix +V3c1Iasorted_subV11V6ainfix +V3c1Aapermut_subV10V12V6ainfix +V3c1Aainfix &lt;=c0V0Lamk arrayV0V11FIainfix &lt;V3V0Aainfix &lt;=V6V3Aainfix &lt;=c0V6Iainfix &lt;=agetV9V16agetV9ainfix +V5c1Aainfix =agetV9V16agetV7V17Aainfix &lt;=V17V5Aainfix &lt;=V2V17EIainfix &lt;=V16V5Aainfix &lt;=V2V16FIainfix =agetV9V18agetV7V18Iainfix &lt;=V18V3Aainfix &lt;V5V18FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix &lt;=c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix &lt;=V2V5Aainfix &lt;=c0V2Iainfix &gt;=agetV7V20V19Iainfix &lt;=V20V3Aainfix &lt;=V6V20FAainfix =agetV7V21V19Iainfix &lt;V21V6Aainfix &lt;V5V21FAainfix &lt;=agetV7V22V19Iainfix &lt;=V22V5Aainfix &lt;=V2V22FEAapermut_subV4V8V2ainfix +V3c1Aainfix &lt;=V6V3Aainfix &lt;V5V6Aainfix &lt;=V2V5Aainfix &lt;=c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<transf
name="inline_goal"
proved="true"
expanded="true">
<goal
name="WP_parameter quicksort.11.1.1"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="1. assertion"
sum="e386c18656e4dc90cb598b44af34617e"
proved="true"
expanded="true"
shape="assertionainfix =agetV11V13agetV9V14Aainfix =V14V3Oainfix &lt;V14V3Aainfix =V6V14Oainfix &lt;V6V14EIainfix =V13V3Oainfix &lt;V13V3Aainfix =V6V13Oainfix &lt;V6V13FIainfix =agetV11V15agetV9V15Iainfix &lt;V15V6Aainfix =V2V15Oainfix &lt;V2V15FIamap_eq_subaeltsV10aeltsV12ainfix +V3c1alengthV10AapermutV10V12V2ainfix +V3c1Aamap_eq_subaeltsV10aeltsV12c0V2Iainfix &lt;=amixfix []V11V16amixfix []V11V17Iainfix &lt;V17ainfix +V3c1Aainfix &lt;=V16V17Aainfix &lt;=V6V16FAamap_eq_subaeltsV10aeltsV12ainfix +V3c1alengthV10AapermutV10V12V6ainfix +V3c1Aamap_eq_subaeltsV10aeltsV12c0V6Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V11FIainfix &lt;V3V0Aainfix =V6V3Oainfix &lt;V6V3Aainfix =c0V6Oainfix &lt;c0V6Iainfix =agetV9V18agetV9ainfix +V5c1Oainfix &lt;agetV9V18agetV9ainfix +V5c1Aainfix =agetV9V18agetV7V19Aainfix =V19V5Oainfix &lt;V19V5Aainfix =V2V19Oainfix &lt;V2V19EIainfix =V18V5Oainfix &lt;V18V5Aainfix =V2V18Oainfix &lt;V2V18FIainfix =agetV9V20agetV7V20Iainfix =V20V3Oainfix &lt;V20V3Aainfix &lt;V5V20FIamap_eq_subaeltsV8aeltsV10ainfix +V3c1alengthV8AapermutV8V10V2ainfix +V3c1Aamap_eq_subaeltsV8aeltsV10c0V2Iainfix &lt;=amixfix []V9V21amixfix []V9V22Iainfix &lt;V22ainfix +V5c1Aainfix &lt;=V21V22Aainfix &lt;=V2V21FAamap_eq_subaeltsV8aeltsV10ainfix +V5c1alengthV8AapermutV8V10V2ainfix +V5c1Aamap_eq_subaeltsV8aeltsV10c0V2Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix =V2V5Oainfix &lt;V2V5Aainfix =c0V2Oainfix &lt;c0V2Iainfix &lt;=V23agetV7V24Iainfix =V24V3Oainfix &lt;V24V3Aainfix =V6V24Oainfix &lt;V6V24FAainfix =agetV7V25V23Iainfix &lt;V25V6Aainfix &lt;V5V25FAainfix =agetV7V26V23Oainfix &lt;agetV7V26V23Iainfix =V26V5Oainfix &lt;V26V5Aainfix =V2V26Oainfix &lt;V2V26FEAamap_eq_subaeltsV4aeltsV8ainfix +V3c1alengthV4AapermutV4V8V2ainfix +V3c1Aamap_eq_subaeltsV4aeltsV8c0V2Aainfix =V6V3Oainfix &lt;V6V3Aainfix &lt;V5V6Aainfix =V2V5Oainfix &lt;V2V5Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix =c0V2Oainfix &lt;c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix =V2V3Oainfix &lt;V2V3Aainfix =c0V2Oainfix &lt;c0V2Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<transf
name="inline_goal"
proved="true"
expanded="true">
<goal
name="WP_parameter quicksort.11.1.1.1"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="1. assertion"
sum="a7fde159773542df5b38c2c02ea0fc70"
proved="true"
expanded="true"
shape="assertionainfix =agetV11V13agetV9V14Aainfix =V14V3Oainfix &lt;V14V3Aainfix =V6V14Oainfix &lt;V6V14EIainfix =V13V3Oainfix &lt;V13V3Aainfix =V6V13Oainfix &lt;V6V13FIainfix =agetV11V15agetV9V15Iainfix &lt;V15V6Aainfix =V2V15Oainfix &lt;V2V15FIainfix =amixfix []aeltsV10V16amixfix []aeltsV12V16Iainfix &lt;V16alengthV10Aainfix &lt;=ainfix +V3c1V16FAapermutaeltsV10aeltsV12V2ainfix +V3c1Aainfix &lt;=ainfix +V3c1alengthV10Aainfix &lt;=c0ainfix +V3c1Aainfix &lt;=V2alengthV10Aainfix &lt;=c0V2Aainfix =alengthV10alengthV12Aainfix =amixfix []aeltsV10V17amixfix []aeltsV12V17Iainfix &lt;V17V2Aainfix &lt;=c0V17FIainfix =amixfix []V11V18amixfix []V11V19Oainfix &lt;amixfix []V11V18amixfix []V11V19Iainfix &lt;V19ainfix +V3c1Aainfix =V18V19Oainfix &lt;V18V19Aainfix =V6V18Oainfix &lt;V6V18FAainfix =amixfix []aeltsV10V20amixfix []aeltsV12V20Iainfix &lt;V20alengthV10Aainfix &lt;=ainfix +V3c1V20FAapermutaeltsV10aeltsV12V6ainfix +V3c1Aainfix &lt;=ainfix +V3c1alengthV10Aainfix &lt;=c0ainfix +V3c1Aainfix &lt;=V6alengthV10Aainfix &lt;=c0V6Aainfix =alengthV10alengthV12Aainfix =amixfix []aeltsV10V21amixfix []aeltsV12V21Iainfix &lt;V21V6Aainfix &lt;=c0V21FAainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V11FIainfix &lt;V3V0Aainfix =V6V3Oainfix &lt;V6V3Aainfix =c0V6Oainfix &lt;c0V6Iainfix =agetV9V22agetV9ainfix +V5c1Oainfix &lt;agetV9V22agetV9ainfix +V5c1Aainfix =agetV9V22agetV7V23Aainfix =V23V5Oainfix &lt;V23V5Aainfix =V2V23Oainfix &lt;V2V23EIainfix =V22V5Oainfix &lt;V22V5Aainfix =V2V22Oainfix &lt;V2V22FIainfix =agetV9V24agetV7V24Iainfix =V24V3Oainfix &lt;V24V3Aainfix &lt;V5V24FIainfix =amixfix []aeltsV8V25amixfix []aeltsV10V25Iainfix &lt;V25alengthV8Aainfix &lt;=ainfix +V3c1V25FAapermutaeltsV8aeltsV10V2ainfix +V3c1Aainfix &lt;=ainfix +V3c1alengthV8Aainfix &lt;=c0ainfix +V3c1Aainfix &lt;=V2alengthV8Aainfix &lt;=c0V2Aainfix =alengthV8alengthV10Aainfix =amixfix []aeltsV8V26amixfix []aeltsV10V26Iainfix &lt;V26V2Aainfix &lt;=c0V26FIainfix =amixfix []V9V27amixfix []V9V28Oainfix &lt;amixfix []V9V27amixfix []V9V28Iainfix &lt;V28ainfix +V5c1Aainfix =V27V28Oainfix &lt;V27V28Aainfix =V2V27Oainfix &lt;V2V27FAainfix =amixfix []aeltsV8V29amixfix []aeltsV10V29Iainfix &lt;V29alengthV8Aainfix &lt;=ainfix +V5c1V29FAapermutaeltsV8aeltsV10V2ainfix +V5c1Aainfix &lt;=ainfix +V5c1alengthV8Aainfix &lt;=c0ainfix +V5c1Aainfix &lt;=V2alengthV8Aainfix &lt;=c0V2Aainfix =alengthV8alengthV10Aainfix =amixfix []aeltsV8V30amixfix []aeltsV10V30Iainfix &lt;V30V2Aainfix &lt;=c0V30FAainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix =V2V5Oainfix &lt;V2V5Aainfix =c0V2Oainfix &lt;c0V2Iainfix =V31agetV7V32Oainfix &lt;V31agetV7V32Iainfix =V32V3Oainfix &lt;V32V3Aainfix =V6V32Oainfix &lt;V6V32FAainfix =agetV7V33V31Iainfix &lt;V33V6Aainfix &lt;V5V33FAainfix =agetV7V34V31Oainfix &lt;agetV7V34V31Iainfix =V34V5Oainfix &lt;V34V5Aainfix =V2V34Oainfix &lt;V2V34FEAainfix =amixfix []aeltsV4V35amixfix []aeltsV8V35Iainfix &lt;V35alengthV4Aainfix &lt;=ainfix +V3c1V35FAapermutaeltsV4aeltsV8V2ainfix +V3c1Aainfix &lt;=ainfix +V3c1alengthV4Aainfix &lt;=c0ainfix +V3c1Aainfix &lt;=V2alengthV4Aainfix &lt;=c0V2Aainfix =alengthV4alengthV8Aainfix =amixfix []aeltsV4V36amixfix []aeltsV8V36Iainfix &lt;V36V2Aainfix &lt;=c0V36FAainfix =V6V3Oainfix &lt;V6V3Aainfix &lt;V5V6Aainfix =V2V5Oainfix &lt;V2V5Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix =c0V2Oainfix &lt;c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix =V2V3Oainfix &lt;V2V3Aainfix =c0V2Oainfix &lt;c0V2Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<transf
name="inline_goal"
proved="true"
expanded="true">
<goal
name="WP_parameter quicksort.11.1.1.1.1"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="1. assertion"
sum="80f30236ba9312a0353ef7fd3eb1017c"
proved="true"
expanded="true"
shape="assertionainfix =agetV11V13agetV9V14Aainfix =V14V3Oainfix &lt;V14V3Aainfix =V6V14Oainfix &lt;V6V14EIainfix =V13V3Oainfix &lt;V13V3Aainfix =V6V13Oainfix &lt;V6V13FIainfix =agetV11V15agetV9V15Iainfix &lt;V15V6Aainfix =V2V15Oainfix &lt;V2V15FIainfix =agetaeltsV10V16agetaeltsV12V16Iainfix &lt;V16alengthV10Aainfix =ainfix +V3c1V16Oainfix &lt;ainfix +V3c1V16FAapermutaeltsV10aeltsV12V2ainfix +V3c1Aainfix =ainfix +V3c1alengthV10Oainfix &lt;ainfix +V3c1alengthV10Aainfix =c0ainfix +V3c1Oainfix &lt;c0ainfix +V3c1Aainfix =V2alengthV10Oainfix &lt;V2alengthV10Aainfix =c0V2Oainfix &lt;c0V2Aainfix =alengthV10alengthV12Aainfix =agetaeltsV10V17agetaeltsV12V17Iainfix &lt;V17V2Aainfix =c0V17Oainfix &lt;c0V17FIainfix =agetV11V18agetV11V19Oainfix &lt;amixfix []V11V18amixfix []V11V19Iainfix &lt;V19ainfix +V3c1Aainfix =V18V19Oainfix &lt;V18V19Aainfix =V6V18Oainfix &lt;V6V18FAainfix =agetaeltsV10V20agetaeltsV12V20Iainfix &lt;V20alengthV10Aainfix =ainfix +V3c1V20Oainfix &lt;ainfix +V3c1V20FAapermutaeltsV10aeltsV12V6ainfix +V3c1Aainfix =ainfix +V3c1alengthV10Oainfix &lt;ainfix +V3c1alengthV10Aainfix =c0ainfix +V3c1Oainfix &lt;c0ainfix +V3c1Aainfix =V6alengthV10Oainfix &lt;V6alengthV10Aainfix =c0V6Oainfix &lt;c0V6Aainfix =alengthV10alengthV12Aainfix =agetaeltsV10V21agetaeltsV12V21Iainfix &lt;V21V6Aainfix =c0V21Oainfix &lt;c0V21FAainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V11FIainfix &lt;V3V0Aainfix =V6V3Oainfix &lt;V6V3Aainfix =c0V6Oainfix &lt;c0V6Iainfix =agetV9V22agetV9ainfix +V5c1Oainfix &lt;agetV9V22agetV9ainfix +V5c1Aainfix =agetV9V22agetV7V23Aainfix =V23V5Oainfix &lt;V23V5Aainfix =V2V23Oainfix &lt;V2V23EIainfix =V22V5Oainfix &lt;V22V5Aainfix =V2V22Oainfix &lt;V2V22FIainfix =agetV9V24agetV7V24Iainfix =V24V3Oainfix &lt;V24V3Aainfix &lt;V5V24FIainfix =agetaeltsV8V25agetaeltsV10V25Iainfix &lt;V25alengthV8Aainfix =ainfix +V3c1V25Oainfix &lt;ainfix +V3c1V25FAapermutaeltsV8aeltsV10V2ainfix +V3c1Aainfix =ainfix +V3c1alengthV8Oainfix &lt;ainfix +V3c1alengthV8Aainfix =c0ainfix +V3c1Oainfix &lt;c0ainfix +V3c1Aainfix =V2alengthV8Oainfix &lt;V2alengthV8Aainfix =c0V2Oainfix &lt;c0V2Aainfix =alengthV8alengthV10Aainfix =agetaeltsV8V26agetaeltsV10V26Iainfix &lt;V26V2Aainfix =c0V26Oainfix &lt;c0V26FIainfix =agetV9V27agetV9V28Oainfix &lt;amixfix []V9V27amixfix []V9V28Iainfix &lt;V28ainfix +V5c1Aainfix =V27V28Oainfix &lt;V27V28Aainfix =V2V27Oainfix &lt;V2V27FAainfix =agetaeltsV8V29agetaeltsV10V29Iainfix &lt;V29alengthV8Aainfix =ainfix +V5c1V29Oainfix &lt;ainfix +V5c1V29FAapermutaeltsV8aeltsV10V2ainfix +V5c1Aainfix =ainfix +V5c1alengthV8Oainfix &lt;ainfix +V5c1alengthV8Aainfix =c0ainfix +V5c1Oainfix &lt;c0ainfix +V5c1Aainfix =V2alengthV8Oainfix &lt;V2alengthV8Aainfix =c0V2Oainfix &lt;c0V2Aainfix =alengthV8alengthV10Aainfix =agetaeltsV8V30agetaeltsV10V30Iainfix &lt;V30V2Aainfix =c0V30Oainfix &lt;c0V30FAainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix =V2V5Oainfix &lt;V2V5Aainfix =c0V2Oainfix &lt;c0V2Iainfix =V31agetV7V32Oainfix &lt;V31agetV7V32Iainfix =V32V3Oainfix &lt;V32V3Aainfix =V6V32Oainfix &lt;V6V32FAainfix =agetV7V33V31Iainfix &lt;V33V6Aainfix &lt;V5V33FAainfix =agetV7V34V31Oainfix &lt;agetV7V34V31Iainfix =V34V5Oainfix &lt;V34V5Aainfix =V2V34Oainfix &lt;V2V34FEAainfix =agetaeltsV4V35agetaeltsV8V35Iainfix &lt;V35alengthV4Aainfix =ainfix +V3c1V35Oainfix &lt;ainfix +V3c1V35FAapermutaeltsV4aeltsV8V2ainfix +V3c1Aainfix =ainfix +V3c1alengthV4Oainfix &lt;ainfix +V3c1alengthV4Aainfix =c0ainfix +V3c1Oainfix &lt;c0ainfix +V3c1Aainfix =V2alengthV4Oainfix &lt;V2alengthV4Aainfix =c0V2Oainfix &lt;c0V2Aainfix =alengthV4alengthV8Aainfix =agetaeltsV4V36agetaeltsV8V36Iainfix &lt;V36V2Aainfix =c0V36Oainfix &lt;c0V36FAainfix =V6V3Oainfix &lt;V6V3Aainfix &lt;V5V6Aainfix =V2V5Oainfix &lt;V2V5Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix =c0V2Oainfix &lt;c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix =V2V3Oainfix &lt;V2V3Aainfix =c0V2Oainfix &lt;c0V2Aainfix =c0V0Oainfix &lt;c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<proof
prover="0"
timelimit="5"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.35"/>
</proof>
</goal>
</transf>
</goal>
</transf>
</goal>
</transf>
</goal>
<goal
name="WP_parameter quicksort.11.2"
locfile="../algo64.mlw"
loclnum="37" loccnumb="10" loccnume="19"
expl="1. postcondition"
sum="1786633a1d7cbf41adc48f293fe5c7a8"
expl="2. assertion"
sum="0d71702b2c6c7b200e29409f925bc8d7"
proved="true"
expanded="true"
shape="postconditionainfix =agetV8V9agetV8V10Oainfix &lt;agetV8V9agetV8V10Iainfix &lt;V10ainfix +V3c1Aainfix =V9V10Oainfix &lt;V9V10Aainfix =V2V9Oainfix &lt;V2V9FIapermut_subV7V8V2ainfix +V3c1Iainfix =agetV8V11agetV8V12Oainfix &lt;agetV8V11agetV8V12Iainfix &lt;V12ainfix +V3c1Aainfix =V11V12Oainfix &lt;V11V12Aainfix =V5V11Oainfix &lt;V5V11FAapermut_subV7V8V5ainfix +V3c1Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;V3V0Aainfix =V5V3Oainfix &lt;V5V3Aainfix =c0V5Oainfix &lt;c0V5Iapermut_subV6V7V2ainfix +V3c1Iainfix =agetV7V13agetV7V14Oainfix &lt;agetV7V13agetV7V14Iainfix &lt;V14ainfix +V4c1Aainfix =V13V14Oainfix &lt;V13V14Aainfix =V2V13Oainfix &lt;V2V13FAapermut_subV6V7V2ainfix +V4c1Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;V4V0Aainfix =V2V4Oainfix &lt;V2V4Aainfix =c0V2Oainfix &lt;c0V2Iainfix =V15agetV6V16Oainfix &lt;V15agetV6V16Iainfix =V16V3Oainfix &lt;V16V3Aainfix =V5V16Oainfix &lt;V5V16FAainfix =agetV6V17V15Iainfix &lt;V17V5Aainfix &lt;V4V17FAainfix =agetV6V18V15Oainfix &lt;agetV6V18V15Iainfix =V18V4Oainfix &lt;V18V4Aainfix =V2V18Oainfix &lt;V2V18FEAapermut_subV1V6V2ainfix +V3c1Aainfix =V5V3Oainfix &lt;V5V3Aainfix &lt;V4V5Aainfix =V2V4Oainfix &lt;V2V4Aainfix =c0V0Oainfix &lt;c0V0FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix =c0V2Oainfix &lt;c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix =V2V3Oainfix &lt;V2V3Aainfix =c0V2Oainfix &lt;c0V2Aainfix =c0V0Oainfix &lt;c0V0F">
shape="assertionainfix &gt;=agetV11V13agetV11ainfix -V6c1Iainfix =agetV11V13agetV9V14Aainfix &lt;=V14V3Aainfix &lt;=V6V14EIainfix &lt;=V13V3Aainfix &lt;=V6V13FIainfix =agetV11V15agetV9V15Iainfix &lt;V15V6Aainfix &lt;=V2V15FIapermut_subV10V12V2ainfix +V3c1Iasorted_subV11V6ainfix +V3c1Aapermut_subV10V12V6ainfix +V3c1Aainfix &lt;=c0V0Lamk arrayV0V11FIainfix &lt;V3V0Aainfix &lt;=V6V3Aainfix &lt;=c0V6Iainfix &lt;=agetV9V16agetV9ainfix +V5c1Aainfix =agetV9V16agetV7V17Aainfix &lt;=V17V5Aainfix &lt;=V2V17EIainfix &lt;=V16V5Aainfix &lt;=V2V16FIainfix =agetV9V18agetV7V18Iainfix &lt;=V18V3Aainfix &lt;V5V18FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix &lt;=c0V0Lamk arrayV0V9FIainfix &lt;V5V0Aainfix &lt;=V2V5Aainfix &lt;=c0V2Iainfix &gt;=agetV7V20V19Iainfix &lt;=V20V3Aainfix &lt;=V6V20FAainfix =agetV7V21V19Iainfix &lt;V21V6Aainfix &lt;V5V21FAainfix &lt;=agetV7V22V19Iainfix &lt;=V22V5Aainfix &lt;=V2V22FEAapermut_subV4V8V2ainfix +V3c1Aainfix &lt;=V6V3Aainfix &lt;V5V6Aainfix &lt;=V2V5Aainfix &lt;=c0V0Lamk arrayV0V7FIainfix &lt;V3V0Aainfix &lt;V2V3Aainfix &lt;=c0V2Iainfix &lt;V2V3Iainfix &lt;V3V0Aainfix &lt;=V2V3Aainfix &lt;=c0V2Aainfix &lt;=c0V0Lamk arrayV0V1F">
<label
name="expl:VC for quicksort"/>
<proof
......@@ -230,33 +425,2138 @@
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="0.86"/>
</proof>
<proof
prover="2"
timelimit="20"
memlimit="1000"
obsolete="false"
archived="false">
<result status="valid" time="7.68"/>
<result status="valid" time="0.11"/>
</proof>
<metas
proved="true"
expanded="true">
<ts_pos
name="real"
arity="0"
id="2"
ip_theory="BuiltIn">
<ip_library
name="why3"/>
<ip_qualid
name="real"/>
</ts_pos>
<ts_pos
name="bool"
arity="0"
id="3"
ip_theory="Bool">
<ip_library
name="why3"/>
<ip_qualid
name="bool"/>
</ts_pos>
<ts_pos
name="tuple0"
arity="0"
id="20"
ip_theory="Tuple0">
<ip_library
name="why3"/>
<ip_qualid
name="tuple0"/>
</ts_pos>
<ts_pos
name="unit"
arity="0"
id="21"
ip_theory="Unit">
<ip_library
name="why3"/>
<ip_qualid
name="unit"/>
</ts_pos>
<ts_pos
name="ref"
arity="1"
id="2259"
ip_theory="Ref">
<ip_library
name="ref"/>
<ip_qualid
name="ref"/>
</ts_pos>
<ls_pos
name="infix ="
id="10"
ip_theory="BuiltIn">
<ip_library
name="why3"/>
<ip_qualid
name="infix ="/>
</ls_pos>
<ls_pos
name="zero"
id="255"
ip_theory="Int">
<ip_library
name="int"/>
<ip_qualid
name="zero"/>
</ls_pos>
<ls_pos
name="one"
id="256"
ip_theory="Int">
<ip_library
name="int"/>
<ip_qualid
name="one"/>
</ls_pos>
<ls_pos
name="infix &lt;"
id="257"
ip_theory="Int">
<ip_library
name="int"/>
<ip_qualid
name="infix &lt;"/>
</ls_pos>
<ls_pos
name="infix &gt;"
id="260"
ip_theory="Int">
<ip_library
name="int"/>
<ip_qualid
name="infix &gt;"/>