Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Why3
why3
Commits
ba6fd292
Commit
ba6fd292
authored
Feb 13, 2014
by
Andrei Paskevich
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
repair algo63, algo64, and alg065
parent
8da1605f
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
3769 additions
and
886 deletions
+3769
-886
examples/algo63/why3session.xml
examples/algo63/why3session.xml
+597
-562
examples/algo64.mlw
examples/algo64.mlw
+27
-9
examples/algo64/why3session.xml
examples/algo64/why3session.xml
+2483
-66
examples/algo65.mlw
examples/algo65.mlw
+16
-7
examples/algo65/why3session.xml
examples/algo65/why3session.xml
+559
-147
examples/quicksort/why3session.xml
examples/quicksort/why3session.xml
+87
-95
No files found.
examples/algo63/why3session.xml
View file @
ba6fd292
This source diff could not be displayed because it is too large. You can
view the blob
instead.
examples/algo64.mlw
View file @
ba6fd292
...
...
@@ -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
...
...
examples/algo64/why3session.xml
View file @
ba6fd292
...
...
@@ -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_subV
1V1
V2ainfix +V3c1asorted_subV
8
V2ainfix +V3c1Aapermut_subV
1V8
V2ainfix +V3c1Aapermut_subV
7V8
V2ainfix +V3c1Iasorted_subV
8V5
ainfix +V3c1Aapermut_subV
7V8V5
ainfix +V3c1Aainfix <=c0V0FAainfix <V3V0Aainfix <=V
5
V3Aainfix <=c0V
5
Aainfix <ainfix -V3V
5
ainfix -V3V2Aainfix <=c0ainfix -V3V2Aapermut_subV
6V7
V2ainfix +V3c1Iasorted_subV
7
V2ainfix +V
4
c1Aapermut_subV
6V7
V2ainfix +V
4
c1Aainfix <=c0V0FAainfix <V
4
V0Aainfix <=V2V
4
Aainfix <=c0V2Aainfix <ainfix -V
4
V2ainfix -V3V2Aainfix <=c0ainfix -V3V2Iainfix >=agetV
6V10V9
Iainfix <=V
10
V3Aainfix <=V
5V10
FAainfix =agetV
6V11V9
Iainfix <V
11V5
Aainfix <V
4V11
FAainfix <=agetV
6V12V9
Iainfix <=V
12V4
Aainfix <=V2V
1
2FEAapermut_subV
1V6
V2ainfix +V3c1Aainfix <=V
5
V3Aainfix <V
4V5
Aainfix <=V2V
4
Aainfix <=c0V0FAainfix <V3V0Aainfix <V2V3Aainfix <=c0V2ainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0F"
>
shape=
"iasorted_subV1V2ainfix +V3c1Aapermut_subV
4V4
V2ainfix +V3c1asorted_subV
11
V2ainfix +V3c1Aapermut_subV
4V12
V2ainfix +V3c1A
iiainfix <=agetV11V13agetV11V14iainfix <=agetV11V13agetV11V14ainfix <=agetV11V13agetV11V14ainfix <V14V6ainfix <V13V6iiainfix <=agetV11V13agetV11V14ainfix <=agetV11V13agetV11V14ainfix <V14V6ainfix <=agetV11V13agetV11V14ainfix <=V14V5ainfix <=V13V5Iainfix <=V14V3Aainfix <=V13V14Aainfix <=V2V13FAainfix >=agetV11V15agetV11ainfix -V6c1Aainfix =agetV11V15agetV9V16Aainfix <=V16V3Aainfix <=V6V16EIainfix <=V15V3Aainfix <=V6V15FAainfix =agetV11V17agetV9V17Iainfix <V17V6Aainfix <=V2V17FA
apermut_subV
10V12
V2ainfix +V3c1Iasorted_subV
11V6
ainfix +V3c1Aapermut_subV
10V12V6
ainfix +V3c1Aainfix <=c0V0
Lamk arrayV0V11
FAainfix <V3V0Aainfix <=V
6
V3Aainfix <=c0V
6
Aainfix <ainfix -V3V
6
ainfix -V3V2Aainfix <=c0ainfix -V3V2Aa
infix <=agetV9V18agetV9ainfix +V5c1Aainfix =agetV9V18agetV7V19Aainfix <=V19V5Aainfix <=V2V19EIainfix <=V18V5Aainfix <=V2V18FAainfix =agetV9V20agetV7V20Iainfix <=V20V3Aainfix <V5V20FAa
permut_subV
8V10
V2ainfix +V3c1Iasorted_subV
9
V2ainfix +V
5
c1Aapermut_subV
8V10
V2ainfix +V
5
c1Aainfix <=c0V0
Lamk arrayV0V9
FAainfix <V
5
V0Aainfix <=V2V
5
Aainfix <=c0V2Aainfix <ainfix -V
5
V2ainfix -V3V2Aainfix <=c0ainfix -V3V2Iainfix >=agetV
7V22V21
Iainfix <=V
22
V3Aainfix <=V
6V22
FAainfix =agetV
7V23V21
Iainfix <V
23V6
Aainfix <V
5V23
FAainfix <=agetV
7V24V21
Iainfix <=V
24V5
Aainfix <=V2V2
4
FEAapermut_subV
4V8
V2ainfix +V3c1Aainfix <=V
6
V3Aainfix <V
5V6
Aainfix <=V2V
5
Aainfix <=c0V0
Lamk arrayV0V7
FAainfix <V3V0Aainfix <V2V3Aainfix <=c0V2ainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0
Lamk arrayV0V1
F"
>
<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 <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0F"
>
shape=
"preconditionainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0
Lamk arrayV0V1
F"
>
<label
name=
"expl:VC for quicksort"
/>
<proof
...
...
@@ -55,7 +51,7 @@
memlimit=
"1000"
obsolete=
"false"
archived=
"false"
>
<result
status=
"valid"
time=
"0.0
1
"
/>
<result
status=
"valid"
time=
"0.0
2
"
/>
</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 <ainfix -V
4
V2ainfix -V3V2Aainfix <=c0ainfix -V3V2Iainfix >=agetV
6V8V7
Iainfix <=V
8
V3Aainfix <=V
5V8
FAainfix =agetV
6V9V7
Iainfix <V
9V5
Aainfix <V
4V9
FAainfix <=agetV
6
V1
0V7
Iainfix <=V1
0V4
Aainfix <=V2V1
0
FEAapermut_subV
1V6
V2ainfix +V3c1Aainfix <=V
5
V3Aainfix <V
4V5
Aainfix <=V2V
4
Aainfix <=c0V0FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0F"
>
shape=
"variant decreaseainfix <ainfix -V
5
V2ainfix -V3V2Aainfix <=c0ainfix -V3V2Iainfix >=agetV
7V10V9
Iainfix <=V
10
V3Aainfix <=V
6V10
FAainfix =agetV
7V11V9
Iainfix <V
11V6
Aainfix <V
5V11
FAainfix <=agetV
7
V1
2V9
Iainfix <=V1
2V5
Aainfix <=V2V1
2
FEAapermut_subV
4V8
V2ainfix +V3c1Aainfix <=V
6
V3Aainfix <V
5V6
Aainfix <=V2V
5
Aainfix <=c0V0
Lamk arrayV0V7
FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0
Lamk arrayV0V1
F"
>
<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 <V
4
V0Aainfix <=V2V
4
Aainfix <=c0V2Iainfix >=agetV
6V8V7
Iainfix <=V
8
V3Aainfix <=V
5V8
FAainfix =agetV
6V9V7
Iainfix <V
9V5
Aainfix <V
4V9
FAainfix <=agetV
6
V1
0V7
Iainfix <=V1
0V4
Aainfix <=V2V1
0
FEAapermut_subV
1V6
V2ainfix +V3c1Aainfix <=V
5
V3Aainfix <V
4V5
Aainfix <=V2V
4
Aainfix <=c0V0FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0F"
>
shape=
"preconditionainfix <V
5
V0Aainfix <=V2V
5
Aainfix <=c0V2Iainfix >=agetV
7V10V9
Iainfix <=V
10
V3Aainfix <=V
6V10
FAainfix =agetV
7V11V9
Iainfix <V
11V6
Aainfix <V
5V11
FAainfix <=agetV
7
V1
2V9
Iainfix <=V1
2V5
Aainfix <=V2V1
2
FEAapermut_subV
4V8
V2ainfix +V3c1Aainfix <=V
6
V3Aainfix <V
5V6
Aainfix <=V2V
5
Aainfix <=c0V0
Lamk arrayV0V7
FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0
Lamk arrayV0V1
F"
>
<label
name=
"expl:VC for quicksort"
/>
<proof
...
...
@@ -95,7 +91,7 @@
memlimit=
"1000"
obsolete=
"false"
archived=
"false"
>
<result
status=
"valid"
time=
"0.0
2
"
/>
<result
status=
"valid"
time=
"0.0
1
"
/>
</proof>
</goal>
<goal
...
...
@@ -103,10 +99,10 @@
locfile=
"../algo64.mlw"
loclnum=
"37"
loccnumb=
"10"
loccnume=
"19"
expl=
"4. assertion"
sum=
"
a2ec830713293a1edfcfbecda44bcd7
8"
sum=
"
1a5fc92ab0b1d3509713a35bb6e265d
8"
proved=
"true"
expanded=
"true"
shape=
"assertionapermut_subV
6V7
V2ainfix +V3c1Iasorted_subV
7
V2ainfix +V
4
c1Aapermut_subV
6V7
V2ainfix +V
4
c1Aainfix <=c0V0FIainfix <V
4
V0Aainfix <=V2V
4
Aainfix <=c0V2Iainfix >=agetV
6V9V8
Iainfix <=V
9
V3Aainfix <=V
5V9
FAainfix =agetV
6
V1
0V8
Iainfix <V1
0V5
Aainfix <V
4
V1
0
FAainfix <=agetV
6
V11
V8
Iainfix <=V1
1V4
Aainfix <=V2V1
1
FEAapermut_subV
1V6
V2ainfix +V3c1Aainfix <=V
5
V3Aainfix <V
4V5
Aainfix <=V2V
4
Aainfix <=c0V0FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0F"
>
shape=
"assertionapermut_subV
8V10
V2ainfix +V3c1Iasorted_subV
9
V2ainfix +V
5
c1Aapermut_subV
8V10
V2ainfix +V
5
c1Aainfix <=c0V0
Lamk arrayV0V9
FIainfix <V
5
V0Aainfix <=V2V
5
Aainfix <=c0V2Iainfix >=agetV
7V12V11
Iainfix <=V
12
V3Aainfix <=V
6V12
FAainfix =agetV
7
V1
3V11
Iainfix <V1
3V6
Aainfix <V
5
V1
3
FAainfix <=agetV
7V14
V11Iainfix <=V1
4V5
Aainfix <=V2V1
4
FEAapermut_subV
4V8
V2ainfix +V3c1Aainfix <=V
6
V3Aainfix <V
5V6
Aainfix <=V2V
5
Aainfix <=c0V0
Lamk arrayV0V7
FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0
Lamk arrayV0V1
F"
>
<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 <ainfix -V3V5ainfix -V3V2A
ainfix <=
c0
ainfix
-V3V2
Iapermut_subV
6V7
V2ainfix +V3c1Iasorted_subV
7
V2ainfix +V
4
c1Aapermut_subV
6V7
V2ainfix +V
4
c1Aainfix <=c0V0FIainfix <V
4
V0Aainfix <=V2V
4
Aainfix <=c0V2Iainfix >=agetV
6V9V8
Iainfix <=V
9
V3Aainfix <=V
5V9
FAainfix =agetV
6
V1
0V8
Iainfix <V1
0V5
Aainfix <V
4
V1
0
FAainfix <=agetV
6
V1
1V8
Iainfix <=V1
1V4
Aainfix <=V2V1
1
FEAapermut_subV
1V6
V2ainfix +V3c1Aainfix <=V
5
V3Aainfix <V
4V5
Aainfix <=V2V
4
Aainfix <=c0V0FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0F"
>
shape=
"
assertionainfix =agetV9V11agetV7V11I
ainfix <=
V11V3A
ainfix
<V5V11F
Iapermut_subV
8V10
V2ainfix +V3c1Iasorted_subV
9
V2ainfix +V
5
c1Aapermut_subV
8V10
V2ainfix +V
5
c1Aainfix <=c0V0
Lamk arrayV0V9
FIainfix <V
5
V0Aainfix <=V2V
5
Aainfix <=c0V2Iainfix >=agetV
7V13V12
Iainfix <=V
13
V3Aainfix <=V
6V13
FAainfix =agetV
7
V1
4V12
Iainfix <V1
4V6
Aainfix <V
5
V1
4
FAainfix <=agetV
7
V1
5V12
Iainfix <=V1
5V5
Aainfix <=V2V1
5
FEAapermut_subV
4V8
V2ainfix +V3c1Aainfix <=V
6
V3Aainfix <V
5V6
Aainfix <=V2V
5
Aainfix <=c0V0
Lamk arrayV0V7
FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0
Lamk arrayV0V1
F"
>
<label
name=
"expl:VC for quicksort"
/>
<proof
...
...
@@ -135,18 +131,126 @@
memlimit=
"1000"
obsolete=
"false"
archived=
"false"
>
<result
status=
"valid"
time=
"0.0
2
"
/>
<result
status=
"valid"
time=
"0.0
3
"
/>
</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 <=agetV9V11agetV9ainfix +V5c1Aainfix =agetV9V11agetV7V12Aainfix <=V12V5Aainfix <=V2V12EIainfix <=V11V5Aainfix <=V2V11FIainfix =agetV9V13agetV7V13Iainfix <=V13V3Aainfix <V5V13FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix <=c0V0Lamk arrayV0V9FIainfix <V5V0Aainfix <=V2V5Aainfix <=c0V2Iainfix >=agetV7V15V14Iainfix <=V15V3Aainfix <=V6V15FAainfix =agetV7V16V14Iainfix <V16V6Aainfix <V5V16FAainfix <=agetV7V17V14Iainfix <=V17V5Aainfix <=V2V17FEAapermut_subV4V8V2ainfix +V3c1Aainfix <=V6V3Aainfix <V5V6Aainfix <=V2V5Aainfix <=c0V0Lamk arrayV0V7FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=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 <=V12V5Aainfix <=V2V12EIainfix <=V11V5Aainfix <=V2V11FIainfix =agetV9V13agetV7V13Iainfix <=V13V3Aainfix <V5V13FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix <=c0V0Lamk arrayV0V9FIainfix <V5V0Aainfix <=V2V5Aainfix <=c0V2Iainfix >=agetV7V15V14Iainfix <=V15V3Aainfix <=V6V15FAainfix =agetV7V16V14Iainfix <V16V6Aainfix <V5V16FAainfix <=agetV7V17V14Iainfix <=V17V5Aainfix <=V2V17FEAapermut_subV4V8V2ainfix +V3c1Aainfix <=V6V3Aainfix <V5V6Aainfix <=V2V5Aainfix <=c0V0Lamk arrayV0V7FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=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 <V12V5Aainfix =V2V12Oainfix <V2V12EIainfix =V11V5Oainfix <V11V5Aainfix =V2V11Oainfix <V2V11FIainfix =agetV9V13agetV7V13Iainfix =V13V3Oainfix <V13V3Aainfix <V5V13FIamap_eq_subaeltsV8aeltsV10ainfix +V3c1alengthV8AapermutV8V10V2ainfix +V3c1Aamap_eq_subaeltsV8aeltsV10c0V2Iainfix <=amixfix []V9V14amixfix []V9V15Iainfix <V15ainfix +V5c1Aainfix <=V14V15Aainfix <=V2V14FAamap_eq_subaeltsV8aeltsV10ainfix +V5c1alengthV8AapermutV8V10V2ainfix +V5c1Aamap_eq_subaeltsV8aeltsV10c0V2Aainfix =c0V0Oainfix <c0V0Lamk arrayV0V9FIainfix <V5V0Aainfix =V2V5Oainfix <V2V5Aainfix =c0V2Oainfix <c0V2Iainfix <=V16agetV7V17Iainfix =V17V3Oainfix <V17V3Aainfix =V6V17Oainfix <V6V17FAainfix =agetV7V18V16Iainfix <V18V6Aainfix <V5V18FAainfix =agetV7V19V16Oainfix <agetV7V19V16Iainfix =V19V5Oainfix <V19V5Aainfix =V2V19Oainfix <V2V19FEAamap_eq_subaeltsV4aeltsV8ainfix +V3c1alengthV4AapermutV4V8V2ainfix +V3c1Aamap_eq_subaeltsV4aeltsV8c0V2Aainfix =V6V3Oainfix <V6V3Aainfix <V5V6Aainfix =V2V5Oainfix <V2V5Aainfix =c0V0Oainfix <c0V0Lamk arrayV0V7FIainfix <V3V0Aainfix <V2V3Aainfix =c0V2Oainfix <c0V2Iainfix <V2V3Iainfix <V3V0Aainfix =V2V3Oainfix <V2V3Aainfix =c0V2Oainfix <c0V2Aainfix =c0V0Oainfix <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 <V12V5Aainfix =V2V12Oainfix <V2V12EIainfix =V11V5Oainfix <V11V5Aainfix =V2V11Oainfix <V2V11FIainfix =agetV9V13agetV7V13Iainfix =V13V3Oainfix <V13V3Aainfix <V5V13FIainfix =amixfix []aeltsV8V14amixfix []aeltsV10V14Iainfix <V14alengthV8Aainfix <=ainfix +V3c1V14FAapermutaeltsV8aeltsV10V2ainfix +V3c1Aainfix <=ainfix +V3c1alengthV8Aainfix <=c0ainfix +V3c1Aainfix <=V2alengthV8Aainfix <=c0V2Aainfix =alengthV8alengthV10Aainfix =amixfix []aeltsV8V15amixfix []aeltsV10V15Iainfix <V15V2Aainfix <=c0V15FIainfix =amixfix []V9V16amixfix []V9V17Oainfix <amixfix []V9V16amixfix []V9V17Iainfix <V17ainfix +V5c1Aainfix =V16V17Oainfix <V16V17Aainfix =V2V16Oainfix <V2V16FAainfix =amixfix []aeltsV8V18amixfix []aeltsV10V18Iainfix <V18alengthV8Aainfix <=ainfix +V5c1V18FAapermutaeltsV8aeltsV10V2ainfix +V5c1Aainfix <=ainfix +V5c1alengthV8Aainfix <=c0ainfix +V5c1Aainfix <=V2alengthV8Aainfix <=c0V2Aainfix =alengthV8alengthV10Aainfix =amixfix []aeltsV8V19amixfix []aeltsV10V19Iainfix <V19V2Aainfix <=c0V19FAainfix =c0V0Oainfix <c0V0Lamk arrayV0V9FIainfix <V5V0Aainfix =V2V5Oainfix <V2V5Aainfix =c0V2Oainfix <c0V2Iainfix =V20agetV7V21Oainfix <V20agetV7V21Iainfix =V21V3Oainfix <V21V3Aainfix =V6V21Oainfix <V6V21FAainfix =agetV7V22V20Iainfix <V22V6Aainfix <V5V22FAainfix =agetV7V23V20Oainfix <agetV7V23V20Iainfix =V23V5Oainfix <V23V5Aainfix =V2V23Oainfix <V2V23FEAainfix =amixfix []aeltsV4V24amixfix []aeltsV8V24Iainfix <V24alengthV4Aainfix <=ainfix +V3c1V24FAapermutaeltsV4aeltsV8V2ainfix +V3c1Aainfix <=ainfix +V3c1alengthV4Aainfix <=c0ainfix +V3c1Aainfix <=V2alengthV4Aainfix <=c0V2Aainfix =alengthV4alengthV8Aainfix =amixfix []aeltsV4V25amixfix []aeltsV8V25Iainfix <V25V2Aainfix <=c0V25FAainfix =V6V3Oainfix <V6V3Aainfix <V5V6Aainfix =V2V5Oainfix <V2V5Aainfix =c0V0Oainfix <c0V0Lamk arrayV0V7FIainfix <V3V0Aainfix <V2V3Aainfix =c0V2Oainfix <c0V2Iainfix <V2V3Iainfix <V3V0Aainfix =V2V3Oainfix <V2V3Aainfix =c0V2Oainfix <c0V2Aainfix =c0V0Oainfix <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 <V12V5Aainfix =V2V12Oainfix <V2V12EIainfix =V11V5Oainfix <V11V5Aainfix =V2V11Oainfix <V2V11FIainfix =agetV9V13agetV7V13Iainfix =V13V3Oainfix <V13V3Aainfix <V5V13FIainfix =agetaeltsV8V14agetaeltsV10V14Iainfix <V14alengthV8Aainfix =ainfix +V3c1V14Oainfix <ainfix +V3c1V14FAapermutaeltsV8aeltsV10V2ainfix +V3c1Aainfix =ainfix +V3c1alengthV8Oainfix <ainfix +V3c1alengthV8Aainfix =c0ainfix +V3c1Oainfix <c0ainfix +V3c1Aainfix =V2alengthV8Oainfix <V2alengthV8Aainfix =c0V2Oainfix <c0V2Aainfix =alengthV8alengthV10Aainfix =agetaeltsV8V15agetaeltsV10V15Iainfix <V15V2Aainfix =c0V15Oainfix <c0V15FIainfix =agetV9V16agetV9V17Oainfix <amixfix []V9V16amixfix []V9V17Iainfix <V17ainfix +V5c1Aainfix =V16V17Oainfix <V16V17Aainfix =V2V16Oainfix <V2V16FAainfix =agetaeltsV8V18agetaeltsV10V18Iainfix <V18alengthV8Aainfix =ainfix +V5c1V18Oainfix <ainfix +V5c1V18FAapermutaeltsV8aeltsV10V2ainfix +V5c1Aainfix =ainfix +V5c1alengthV8Oainfix <ainfix +V5c1alengthV8Aainfix =c0ainfix +V5c1Oainfix <c0ainfix +V5c1Aainfix =V2alengthV8Oainfix <V2alengthV8Aainfix =c0V2Oainfix <c0V2Aainfix =alengthV8alengthV10Aainfix =agetaeltsV8V19agetaeltsV10V19Iainfix <V19V2Aainfix =c0V19Oainfix <c0V19FAainfix =c0V0Oainfix <c0V0Lamk arrayV0V9FIainfix <V5V0Aainfix =V2V5Oainfix <V2V5Aainfix =c0V2Oainfix <c0V2Iainfix =V20agetV7V21Oainfix <V20agetV7V21Iainfix =V21V3Oainfix <V21V3Aainfix =V6V21Oainfix <V6V21FAainfix =agetV7V22V20Iainfix <V22V6Aainfix <V5V22FAainfix =agetV7V23V20Oainfix <agetV7V23V20Iainfix =V23V5Oainfix <V23V5Aainfix =V2V23Oainfix <V2V23FEAainfix =agetaeltsV4V24agetaeltsV8V24Iainfix <V24alengthV4Aainfix =ainfix +V3c1V24Oainfix <ainfix +V3c1V24FAapermutaeltsV4aeltsV8V2ainfix +V3c1Aainfix =ainfix +V3c1alengthV4Oainfix <ainfix +V3c1alengthV4Aainfix =c0ainfix +V3c1Oainfix <c0ainfix +V3c1Aainfix =V2alengthV4Oainfix <V2alengthV4Aainfix =c0V2Oainfix <c0V2Aainfix =alengthV4alengthV8Aainfix =agetaeltsV4V25agetaeltsV8V25Iainfix <V25V2Aainfix =c0V25Oainfix <c0V25FAainfix =V6V3Oainfix <V6V3Aainfix <V5V6Aainfix =V2V5Oainfix <V2V5Aainfix =c0V0Oainfix <c0V0Lamk arrayV0V7FIainfix <V3V0Aainfix <V2V3Aainfix =c0V2Oainfix <c0V2Iainfix <V2V3Iainfix <V3V0Aainfix =V2V3Oainfix <V2V3Aainfix =c0V2Oainfix <c0V2Aainfix =c0V0Oainfix <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 <=agetV9V11agetV9ainfix +V5c1Iainfix =agetV9V11agetV7V12Aainfix <=V12V5Aainfix <=V2V12EIainfix <=V11V5Aainfix <=V2V11FIainfix =agetV9V13agetV7V13Iainfix <=V13V3Aainfix <V5V13FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix <=c0V0Lamk arrayV0V9FIainfix <V5V0Aainfix <=V2V5Aainfix <=c0V2Iainfix >=agetV7V15V14Iainfix <=V15V3Aainfix <=V6V15FAainfix =agetV7V16V14Iainfix <V16V6Aainfix <V5V16FAainfix <=agetV7V17V14Iainfix <=V17V5Aainfix <=V2V17FEAapermut_subV4V8V2ainfix +V3c1Aainfix <=V6V3Aainfix <V5V6Aainfix <=V2V5Aainfix <=c0V0Lamk arrayV0V7FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=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 <V3V0Aainfix <=V5
V3Aainfix <
=c0V5
Iapermut_subV
6V7
V2ainfix +V3c1Iasorted_subV
7
V2ainfix +V
4
c1Aapermut_subV
6V7
V2ainfix +V
4
c1Aainfix <=c0V0FIainfix <V
4
V0Aainfix <=V2V
4
Aainfix <=c0V2Iainfix >=agetV
6V9V8
Iainfix <=V
9
V3Aainfix <=V
5V9
FAainfix =agetV
6
V1
0V8
Iainfix <V1
0V5
Aainfix <V
4
V1
0
FAainfix <=agetV
6
V1
1V8
Iainfix <=V1
1V4
Aainfix <=V2V1
1
FEAapermut_subV
1V6
V2ainfix +V3c1Aainfix <=V
5
V3Aainfix <V
4V5
Aainfix <=V2V
4
Aainfix <=c0V0FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0F"
>
shape=
"
variant decreaseainfix <ainfix -V3V6ainfix -V3V2Aainfix <=c0ainfix -V3V2Iainfix <=agetV9V11agetV9ainfix +V5c1Aainfix =agetV9V11agetV7V12Aainfix <=V12V5Aainfix <=V2V12EIainfix <=V11V5Aainfix <=V2V11FIainfix =agetV9V13agetV7V13Iainfix <=V13
V3Aainfix <
V5V13F
Iapermut_subV
8V10
V2ainfix +V3c1Iasorted_subV
9
V2ainfix +V
5
c1Aapermut_subV
8V10
V2ainfix +V
5
c1Aainfix <=c0V0
Lamk arrayV0V9
FIainfix <V
5
V0Aainfix <=V2V
5
Aainfix <=c0V2Iainfix >=agetV
7V15V14
Iainfix <=V
15
V3Aainfix <=V
6V15
FAainfix =agetV
7
V1
6V14
Iainfix <V1
6V6
Aainfix <V
5
V1
6
FAainfix <=agetV
7
V1
7V14
Iainfix <=V1
7V5
Aainfix <=V2V1
7
FEAapermut_subV
4V8
V2ainfix +V3c1Aainfix <=V
6
V3Aainfix <V
5V6
Aainfix <=V2V
5
Aainfix <=c0V0
Lamk arrayV0V7
FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0
Lamk arrayV0V1
F"
>
<label
name=
"expl:VC for quicksort"
/>
<proof
...
...
@@ -155,18 +259,18 @@
memlimit=
"1000"
obsolete=
"false"
archived=
"false"
>
<result
status=
"valid"
time=
"0.0
1
"
/>
<result
status=
"valid"
time=
"0.0
2
"
/>
</proof>
</goal>
<goal
name=
"WP_parameter quicksort.
7
"
name=
"WP_parameter quicksort.
8
"
locfile=
"../algo64.mlw"
loclnum=
"37"
loccnumb=
"10"
loccnume=
"19"
expl=
"
7
.
asser
tion"
sum=
"
e0eccde7bb5f060921081ffcb2209d82
"
expl=
"
8
.
precondi
tion"
sum=
"
b6f37ca0f09a2744e5c77651748ad0f0
"
proved=
"true"
expanded=
"true"
shape=
"
assertionapermut_subV7V8V2ainfix +V3c1Iasorted_subV8V5
ainfix +V
3
c1Aa
permut_subV7V8V5ainfix +V3c1
Aainfix <=
c0V0F
Iainfix <
V3V0
Aainfix <=V
5V3Aainfix <=c0V5
Iapermut_subV
6V7
V2ainfix +V3c1Iasorted_subV
7
V2ainfix +V
4
c1Aapermut_subV
6V7
V2ainfix +V
4
c1Aainfix <=c0V0FIainfix <V
4
V0Aainfix <=V2V
4
Aainfix <=c0V2Iainfix >=agetV
6
V1
0V9
Iainfix <=V1
0
V3Aainfix <=V
5
V1
0
FAainfix =agetV
6
V1
1V9
Iainfix <V1
1V5
Aainfix <V
4
V1
1
FAainfix <=agetV
6
V1
2V9
Iainfix <=V1
2V4
Aainfix <=V2V1
2
FEAapermut_subV
1V6
V2ainfix +V3c1Aainfix <=V
5
V3Aainfix <V
4V5
Aainfix <=V2V
4
Aainfix <=c0V0FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0F"
>
shape=
"
preconditionainfix <V3V0Aainfix <=V6V3Aainfix <=c0V6Iainfix <=agetV9V11agetV9
ainfix +V
5
c1Aa
infix =agetV9V11agetV7V12Aainfix <=V12V5
Aainfix <=
V2V12E
Iainfix <
=V11V5
Aainfix <=V
2V11FIainfix =agetV9V13agetV7V13Iainfix <=V13V3Aainfix <V5V13F
Iapermut_subV
8V10
V2ainfix +V3c1Iasorted_subV
9
V2ainfix +V
5
c1Aapermut_subV
8V10
V2ainfix +V
5
c1Aainfix <=c0V0
Lamk arrayV0V9
FIainfix <V
5
V0Aainfix <=V2V
5
Aainfix <=c0V2Iainfix >=agetV
7
V1
5V14
Iainfix <=V1
5
V3Aainfix <=V
6
V1
5
FAainfix =agetV
7
V1
6V14
Iainfix <V1
6V6
Aainfix <V
5
V1
6
FAainfix <=agetV
7
V1
7V14
Iainfix <=V1
7V5
Aainfix <=V2V1
7
FEAapermut_subV
4V8
V2ainfix +V3c1Aainfix <=V
6
V3Aainfix <V
5V6
Aainfix <=V2V
5
Aainfix <=c0V0
Lamk arrayV0V7
FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0
Lamk arrayV0V1
F"
>
<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
.
postcondi
tion"
sum=
"7
6e3183894a521560df10aebaa535cfe
"
expl=
"
9
.
asser
tion"
sum=
"7
deec2c7eca02baa90f8d66d33fb83f0
"
proved=
"true"
expanded=
"true"
shape=
"
postcondi
tionapermut_subV1
V8
V2ainfix +V3c1Ia
permut_subV7V8V2ainfix +V3c1Iasorted_subV8V5ainfix +V3c1Aapermut_subV7V8V5ainfix +V3c1
Aainfix <=
c0V0F
Iainfix <
V
3V
0
Aainfix <=V5V3Aainfix <
=c0V5
Iapermut_subV
6V7
V2ainfix +V3c1Iasorted_subV
7
V2ainfix +V
4
c1Aapermut_subV
6V7
V2ainfix +V
4
c1Aainfix <=c0V0FIainfix <V
4
V0Aainfix <=V2V
4
Aainfix <=c0V2Iainfix >=agetV
6
V1
0V9
Iainfix <=V1
0
V3Aainfix <=V
5
V1
0
FAainfix =agetV
6
V1
1V9
Iainfix <V1
1V5
Aainfix <V
4
V1
1
FAainfix <=agetV
6
V1
2V9
Iainfix <=V1
2V4
Aainfix <=V2V1
2
FEAapermut_subV
1V6
V2ainfix +V3c1Aainfix <=V
5
V3Aainfix <V
4V5
Aainfix <=V2V
4
Aainfix <=c0V0FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0F"
>
shape=
"
asser
tionapermut_subV1
0V12
V2ainfix +V3c1Ia
sorted_subV11V6ainfix +V3c1Aapermut_subV10V12V6ainfix +V3c1Aainfix <=c0V0Lamk arrayV0V11FIainfix <V3V0Aainfix <=V6V3Aainfix <=c0V6Iainfix <=agetV9V13agetV9ainfix +V5c1Aainfix =agetV9V13agetV7V14Aainfix <=V14V5
Aainfix <=
V2V14E
Iainfix <
=V1
3V
5
Aainfix <=V
2V13FIainfix =agetV9V15agetV7V15Iainfix <=V1
5V3Aainfix <
V5V15F
Iapermut_subV
8V10
V2ainfix +V3c1Iasorted_subV
9
V2ainfix +V
5
c1Aapermut_subV
8V10
V2ainfix +V
5
c1Aainfix <=c0V0
Lamk arrayV0V9
FIainfix <V
5
V0Aainfix <=V2V
5
Aainfix <=c0V2Iainfix >=agetV
7
V1
7V16
Iainfix <=V1
7
V3Aainfix <=V
6
V1
7
FAainfix =agetV
7
V1
8V16
Iainfix <V1
8V6
Aainfix <V
5
V1
8
FAainfix <=agetV
7
V1
9V16
Iainfix <=V1
9V5
Aainfix <=V2V1
9
FEAapermut_subV
4V8
V2ainfix +V3c1Aainfix <=V
6
V3Aainfix <V
5V6
Aainfix <=V2V
5
Aainfix <=c0V0
Lamk arrayV0V7
FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0
Lamk arrayV0V1
F"
>
<label
name=
"expl:VC for quicksort"
/>
<proof
prover=
"0"
timelimit=
"
17
"
timelimit=
"
5
"
memlimit=
"1000"
obsolete=
"false"
archived=
"false"
>
<result
status=
"valid"
time=
"0.0
4
"
/>
<result
status=
"valid"
time=
"0.0
2
"
/>
</proof>
</goal>
<goal
name=
"WP_parameter quicksort.
9
"
name=
"WP_parameter quicksort.
10
"
locfile=
"../algo64.mlw"
loclnum=
"37"
loccnumb=
"10"
loccnume=
"19"
expl=
"
9. postcondi
tion"
sum=
"
b04
b9f2
930bbbc20d97026777b784fb1
"
expl=
"
10. asser
tion"
sum=
"
9d0476a064d
b9
a
f2
b32fde6591b1e42a
"
proved=
"true"
expanded=
"true"
shape=
"postconditionasorted_subV8V2ainfix +V3c1Iapermut_subV7V8V2ainfix +V3c1Iasorted_subV8V5ainfix +V3c1Aapermut_subV7V8V5ainfix +V3c1Aainfix <=c0V0FIainfix <V3V0Aainfix <=V5V3Aainfix <=c0V5Iapermut_subV6V7V2ainfix +V3c1Iasorted_subV7V2ainfix +V4c1Aapermut_subV6V7V2ainfix +V4c1Aainfix <=c0V0FIainfix <V4V0Aainfix <=V2V4Aainfix <=c0V2Iainfix >=agetV6V10V9Iainfix <=V10V3Aainfix <=V5V10FAainfix =agetV6V11V9Iainfix <V11V5Aainfix <V4V11FAainfix <=agetV6V12V9Iainfix <=V12V4Aainfix <=V2V12FEAapermut_subV1V6V2ainfix +V3c1Aainfix <=V5V3Aainfix <V4V5Aainfix <=V2V4Aainfix <=c0V0FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=c0V0F"
>
shape=
"assertionainfix =agetV11V13agetV9V13Iainfix <V13V6Aainfix <=V2V13FIapermut_subV10V12V2ainfix +V3c1Iasorted_subV11V6ainfix +V3c1Aapermut_subV10V12V6ainfix +V3c1Aainfix <=c0V0Lamk arrayV0V11FIainfix <V3V0Aainfix <=V6V3Aainfix <=c0V6Iainfix <=agetV9V14agetV9ainfix +V5c1Aainfix =agetV9V14agetV7V15Aainfix <=V15V5Aainfix <=V2V15EIainfix <=V14V5Aainfix <=V2V14FIainfix =agetV9V16agetV7V16Iainfix <=V16V3Aainfix <V5V16FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix <=c0V0Lamk arrayV0V9FIainfix <V5V0Aainfix <=V2V5Aainfix <=c0V2Iainfix >=agetV7V18V17Iainfix <=V18V3Aainfix <=V6V18FAainfix =agetV7V19V17Iainfix <V19V6Aainfix <V5V19FAainfix <=agetV7V20V17Iainfix <=V20V5Aainfix <=V2V20FEAapermut_subV4V8V2ainfix +V3c1Aainfix <=V6V3Aainfix <V5V6Aainfix <=V2V5Aainfix <=c0V0Lamk arrayV0V7FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=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 >=agetV11V13agetV11ainfix -V6c1Aainfix =agetV11V13agetV9V14Aainfix <=V14V3Aainfix <=V6V14EIainfix <=V13V3Aainfix <=V6V13FIainfix =agetV11V15agetV9V15Iainfix <V15V6Aainfix <=V2V15FIapermut_subV10V12V2ainfix +V3c1Iasorted_subV11V6ainfix +V3c1Aapermut_subV10V12V6ainfix +V3c1Aainfix <=c0V0Lamk arrayV0V11FIainfix <V3V0Aainfix <=V6V3Aainfix <=c0V6Iainfix <=agetV9V16agetV9ainfix +V5c1Aainfix =agetV9V16agetV7V17Aainfix <=V17V5Aainfix <=V2V17EIainfix <=V16V5Aainfix <=V2V16FIainfix =agetV9V18agetV7V18Iainfix <=V18V3Aainfix <V5V18FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix <=c0V0Lamk arrayV0V9FIainfix <V5V0Aainfix <=V2V5Aainfix <=c0V2Iainfix >=agetV7V20V19Iainfix <=V20V3Aainfix <=V6V20FAainfix =agetV7V21V19Iainfix <V21V6Aainfix <V5V21FAainfix <=agetV7V22V19Iainfix <=V22V5Aainfix <=V2V22FEAapermut_subV4V8V2ainfix +V3c1Aainfix <=V6V3Aainfix <V5V6Aainfix <=V2V5Aainfix <=c0V0Lamk arrayV0V7FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=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 <=V14V3Aainfix <=V6V14EIainfix <=V13V3Aainfix <=V6V13FIainfix =agetV11V15agetV9V15Iainfix <V15V6Aainfix <=V2V15FIapermut_subV10V12V2ainfix +V3c1Iasorted_subV11V6ainfix +V3c1Aapermut_subV10V12V6ainfix +V3c1Aainfix <=c0V0Lamk arrayV0V11FIainfix <V3V0Aainfix <=V6V3Aainfix <=c0V6Iainfix <=agetV9V16agetV9ainfix +V5c1Aainfix =agetV9V16agetV7V17Aainfix <=V17V5Aainfix <=V2V17EIainfix <=V16V5Aainfix <=V2V16FIainfix =agetV9V18agetV7V18Iainfix <=V18V3Aainfix <V5V18FIapermut_subV8V10V2ainfix +V3c1Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix <=c0V0Lamk arrayV0V9FIainfix <V5V0Aainfix <=V2V5Aainfix <=c0V2Iainfix >=agetV7V20V19Iainfix <=V20V3Aainfix <=V6V20FAainfix =agetV7V21V19Iainfix <V21V6Aainfix <V5V21FAainfix <=agetV7V22V19Iainfix <=V22V5Aainfix <=V2V22FEAapermut_subV4V8V2ainfix +V3c1Aainfix <=V6V3Aainfix <V5V6Aainfix <=V2V5Aainfix <=c0V0Lamk arrayV0V7FIainfix <V3V0Aainfix <V2V3Aainfix <=c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <=V2V3Aainfix <=c0V2Aainfix <=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 <V14V3Aainfix =V6V14Oainfix <V6V14EIainfix =V13V3Oainfix <V13V3Aainfix =V6V13Oainfix <V6V13FIainfix =agetV11V15agetV9V15Iainfix <V15V6Aainfix =V2V15Oainfix <V2V15FIamap_eq_subaeltsV10aeltsV12ainfix +V3c1alengthV10AapermutV10V12V2ainfix +V3c1Aamap_eq_subaeltsV10aeltsV12c0V2Iainfix <=amixfix []V11V16amixfix []V11V17Iainfix <V17ainfix +V3c1Aainfix <=V16V17Aainfix <=V6V16FAamap_eq_subaeltsV10aeltsV12ainfix +V3c1alengthV10AapermutV10V12V6ainfix +V3c1Aamap_eq_subaeltsV10aeltsV12c0V6Aainfix =c0V0Oainfix <c0V0Lamk arrayV0V11FIainfix <V3V0Aainfix =V6V3Oainfix <V6V3Aainfix =c0V6Oainfix <c0V6Iainfix =agetV9V18agetV9ainfix +V5c1Oainfix <agetV9V18agetV9ainfix +V5c1Aainfix =agetV9V18agetV7V19Aainfix =V19V5Oainfix <V19V5Aainfix =V2V19Oainfix <V2V19EIainfix =V18V5Oainfix <V18V5Aainfix =V2V18Oainfix <V2V18FIainfix =agetV9V20agetV7V20Iainfix =V20V3Oainfix <V20V3Aainfix <V5V20FIamap_eq_subaeltsV8aeltsV10ainfix +V3c1alengthV8AapermutV8V10V2ainfix +V3c1Aamap_eq_subaeltsV8aeltsV10c0V2Iainfix <=amixfix []V9V21amixfix []V9V22Iainfix <V22ainfix +V5c1Aainfix <=V21V22Aainfix <=V2V21FAamap_eq_subaeltsV8aeltsV10ainfix +V5c1alengthV8AapermutV8V10V2ainfix +V5c1Aamap_eq_subaeltsV8aeltsV10c0V2Aainfix =c0V0Oainfix <c0V0Lamk arrayV0V9FIainfix <V5V0Aainfix =V2V5Oainfix <V2V5Aainfix =c0V2Oainfix <c0V2Iainfix <=V23agetV7V24Iainfix =V24V3Oainfix <V24V3Aainfix =V6V24Oainfix <V6V24FAainfix =agetV7V25V23Iainfix <V25V6Aainfix <V5V25FAainfix =agetV7V26V23Oainfix <agetV7V26V23Iainfix =V26V5Oainfix <V26V5Aainfix =V2V26Oainfix <V2V26FEAamap_eq_subaeltsV4aeltsV8ainfix +V3c1alengthV4AapermutV4V8V2ainfix +V3c1Aamap_eq_subaeltsV4aeltsV8c0V2Aainfix =V6V3Oainfix <V6V3Aainfix <V5V6Aainfix =V2V5Oainfix <V2V5Aainfix =c0V0Oainfix <c0V0Lamk arrayV0V7FIainfix <V3V0Aainfix <V2V3Aainfix =c0V2Oainfix <c0V2Iainfix <V2V3Iainfix <V3V0Aainfix =V2V3Oainfix <V2V3Aainfix =c0V2Oainfix <c0V2Aainfix =c0V0Oainfix <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 <V14V3Aainfix =V6V14Oainfix <V6V14EIainfix =V13V3Oainfix <V13V3Aainfix =V6V13Oainfix <V6V13FIainfix =agetV11V15agetV9V15Iainfix <V15V6Aainfix =V2V15Oainfix <V2V15FIainfix =amixfix []aeltsV10V16amixfix []aeltsV12V16Iainfix <V16alengthV10Aainfix <=ainfix +V3c1V16FAapermutaeltsV10aeltsV12V2ainfix +V3c1Aainfix <=ainfix +V3c1alengthV10Aainfix <=c0ainfix +V3c1Aainfix <=V2alengthV10Aainfix <=c0V2Aainfix =alengthV10alengthV12Aainfix =amixfix []aeltsV10V17amixfix []aeltsV12V17Iainfix <V17V2Aainfix <=c0V17FIainfix =amixfix []V11V18amixfix []V11V19Oainfix <amixfix []V11V18amixfix []V11V19Iainfix <V19ainfix +V3c1Aainfix =V18V19Oainfix <V18V19Aainfix =V6V18Oainfix <V6V18FAainfix =amixfix []aeltsV10V20amixfix []aeltsV12V20Iainfix <V20alengthV10Aainfix <=ainfix +V3c1V20FAapermutaeltsV10aeltsV12V6ainfix +V3c1Aainfix <=ainfix +V3c1alengthV10Aainfix <=c0ainfix +V3c1Aainfix <=V6alengthV10Aainfix <=c0V6Aainfix =alengthV10alengthV12Aainfix =amixfix []aeltsV10V21amixfix []aeltsV12V21Iainfix <V21V6Aainfix <=c0V21FAainfix =c0V0Oainfix <c0V0Lamk arrayV0V11FIainfix <V3V0Aainfix =V6V3Oainfix <V6V3Aainfix =c0V6Oainfix <c0V6Iainfix =agetV9V22agetV9ainfix +V5c1Oainfix <agetV9V22agetV9ainfix +V5c1Aainfix =agetV9V22agetV7V23Aainfix =V23V5Oainfix <V23V5Aainfix =V2V23Oainfix <V2V23EIainfix =V22V5Oainfix <V22V5Aainfix =V2V22Oainfix <V2V22FIainfix =agetV9V24agetV7V24Iainfix =V24V3Oainfix <V24V3Aainfix <V5V24FIainfix =amixfix []aeltsV8V25amixfix []aeltsV10V25Iainfix <V25alengthV8Aainfix <=ainfix +V3c1V25FAapermutaeltsV8aeltsV10V2ainfix +V3c1Aainfix <=ainfix +V3c1alengthV8Aainfix <=c0ainfix +V3c1Aainfix <=V2alengthV8Aainfix <=c0V2Aainfix =alengthV8alengthV10Aainfix =amixfix []aeltsV8V26amixfix []aeltsV10V26Iainfix <V26V2Aainfix <=c0V26FIainfix =amixfix []V9V27amixfix []V9V28Oainfix <amixfix []V9V27amixfix []V9V28Iainfix <V28ainfix +V5c1Aainfix =V27V28Oainfix <V27V28Aainfix =V2V27Oainfix <V2V27FAainfix =amixfix []aeltsV8V29amixfix []aeltsV10V29Iainfix <V29alengthV8Aainfix <=ainfix +V5c1V29FAapermutaeltsV8aeltsV10V2ainfix +V5c1Aainfix <=ainfix +V5c1alengthV8Aainfix <=c0ainfix +V5c1Aainfix <=V2alengthV8Aainfix <=c0V2Aainfix =alengthV8alengthV10Aainfix =amixfix []aeltsV8V30amixfix []aeltsV10V30Iainfix <V30V2Aainfix <=c0V30FAainfix =c0V0Oainfix <c0V0Lamk arrayV0V9FIainfix <V5V0Aainfix =V2V5Oainfix <V2V5Aainfix =c0V2Oainfix <c0V2Iainfix =V31agetV7V32Oainfix <V31agetV7V32Iainfix =V32V3Oainfix <V32V3Aainfix =V6V32Oainfix <V6V32FAainfix =agetV7V33V31Iainfix <V33V6Aainfix <V5V33FAainfix =agetV7V34V31Oainfix <agetV7V34V31Iainfix =V34V5Oainfix <V34V5Aainfix =V2V34Oainfix <V2V34FEAainfix =amixfix []aeltsV4V35amixfix []aeltsV8V35Iainfix <V35alengthV4Aainfix <=ainfix +V3c1V35FAapermutaeltsV4aeltsV8V2ainfix +V3c1Aainfix <=ainfix +V3c1alengthV4Aainfix <=c0ainfix +V3c1Aainfix <=V2alengthV4Aainfix <=c0V2Aainfix =alengthV4alengthV8Aainfix =amixfix []aeltsV4V36amixfix []aeltsV8V36Iainfix <V36V2Aainfix <=c0V36FAainfix =V6V3Oainfix <V6V3Aainfix <V5V6Aainfix =V2V5Oainfix <V2V5Aainfix =c0V0Oainfix <c0V0Lamk arrayV0V7FIainfix <V3V0Aainfix <V2V3Aainfix =c0V2Oainfix <c0V2Iainfix <V2V3Iainfix <V3V0Aainfix =V2V3Oainfix <V2V3Aainfix =c0V2Oainfix <c0V2Aainfix =c0V0Oainfix <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 <V14V3Aainfix =V6V14Oainfix <V6V14EIainfix =V13V3Oainfix <V13V3Aainfix =V6V13Oainfix <V6V13FIainfix =agetV11V15agetV9V15Iainfix <V15V6Aainfix =V2V15Oainfix <V2V15FIainfix =agetaeltsV10V16agetaeltsV12V16Iainfix <V16alengthV10Aainfix =ainfix +V3c1V16Oainfix <ainfix +V3c1V16FAapermutaeltsV10aeltsV12V2ainfix +V3c1Aainfix =ainfix +V3c1alengthV10Oainfix <ainfix +V3c1alengthV10Aainfix =c0ainfix +V3c1Oainfix <c0ainfix +V3c1Aainfix =V2alengthV10Oainfix <V2alengthV10Aainfix =c0V2Oainfix <c0V2Aainfix =alengthV10alengthV12Aainfix =agetaeltsV10V17agetaeltsV12V17Iainfix <V17V2Aainfix =c0V17Oainfix <c0V17FIainfix =agetV11V18agetV11V19Oainfix <amixfix []V11V18amixfix []V11V19Iainfix <V19ainfix +V3c1Aainfix =V18V19Oainfix <V18V19Aainfix =V6V18Oainfix <V6V18FAainfix =agetaeltsV10V20agetaeltsV12V20Iainfix <V20alengthV10Aainfix =ainfix +V3c1V20Oainfix <ainfix +V3c1V20FAapermutaeltsV10aeltsV12V6ainfix +V3c1Aainfix =ainfix +V3c1alengthV10Oainfix <ainfix +V3c1alengthV10Aainfix =c0ainfix +V3c1Oainfix <c0ainfix +V3c1Aainfix =V6alengthV10Oainfix <V6alengthV10Aainfix =c0V6Oainfix <c0V6Aainfix =alengthV10alengthV12Aainfix =agetaeltsV10V21agetaeltsV12V21Iainfix <V21V6Aainfix =c0V21Oainfix <c0V21FAainfix =c0V0Oainfix <c0V0Lamk arrayV0V11FIainfix <V3V0Aainfix =V6V3Oainfix <V6V3Aainfix =c0V6Oainfix <c0V6Iainfix =agetV9V22agetV9ainfix +V5c1Oainfix <agetV9V22agetV9ainfix +V5c1Aainfix =agetV9V22agetV7V23Aainfix =V23V5Oainfix <V23V5Aainfix =V2V23Oainfix <V2V23EIainfix =V22V5Oainfix <V22V5Aainfix =V2V22Oainfix <V2V22FIainfix =agetV9V24agetV7V24Iainfix =V24V3Oainfix <V24V3Aainfix <V5V24FIainfix =agetaeltsV8V25agetaeltsV10V25Iainfix <V25alengthV8Aainfix =ainfix +V3c1V25Oainfix <ainfix +V3c1V25FAapermutaeltsV8aeltsV10V2ainfix +V3c1Aainfix =ainfix +V3c1alengthV8Oainfix <ainfix +V3c1alengthV8Aainfix =c0ainfix +V3c1Oainfix <c0ainfix +V3c1Aainfix =V2alengthV8Oainfix <V2alengthV8Aainfix =c0V2Oainfix <c0V2Aainfix =alengthV8alengthV10Aainfix =agetaeltsV8V26agetaeltsV10V26Iainfix <V26V2Aainfix =c0V26Oainfix <c0V26FIainfix =agetV9V27agetV9V28Oainfix <amixfix []V9V27amixfix []V9V28Iainfix <V28ainfix +V5c1Aainfix =V27V28Oainfix <V27V28Aainfix =V2V27Oainfix <V2V27FAainfix =agetaeltsV8V29agetaeltsV10V29Iainfix <V29alengthV8Aainfix =ainfix +V5c1V29Oainfix <ainfix +V5c1V29FAapermutaeltsV8aeltsV10V2ainfix +V5c1Aainfix =ainfix +V5c1alengthV8Oainfix <ainfix +V5c1alengthV8Aainfix =c0ainfix +V5c1Oainfix <c0ainfix +V5c1Aainfix =V2alengthV8Oainfix <V2alengthV8Aainfix =c0V2Oainfix <c0V2Aainfix =alengthV8alengthV10Aainfix =agetaeltsV8V30agetaeltsV10V30Iainfix <V30V2Aainfix =c0V30Oainfix <c0V30FAainfix =c0V0Oainfix <c0V0Lamk arrayV0V9FIainfix <V5V0Aainfix =V2V5Oainfix <V2V5Aainfix =c0V2Oainfix <c0V2Iainfix =V31agetV7V32Oainfix <V31agetV7V32Iainfix =V32V3Oainfix <V32V3Aainfix =V6V32Oainfix <V6V32FAainfix =agetV7V33V31Iainfix <V33V6Aainfix <V5V33FAainfix =agetV7V34V31Oainfix <agetV7V34V31Iainfix =V34V5Oainfix <V34V5Aainfix =V2V34Oainfix <V2V34FEAainfix =agetaeltsV4V35agetaeltsV8V35Iainfix <V35alengthV4Aainfix =ainfix +V3c1V35Oainfix <ainfix +V3c1V35FAapermutaeltsV4aeltsV8V2ainfix +V3c1Aainfix =ainfix +V3c1alengthV4Oainfix <ainfix +V3c1alengthV4Aainfix =c0ainfix +V3c1Oainfix <c0ainfix +V3c1Aainfix =V2alengthV4Oainfix <V2alengthV4Aainfix =c0V2Oainfix <c0V2Aainfix =alengthV4alengthV8Aainfix =agetaeltsV4V36agetaeltsV8V36Iainfix <V36V2Aainfix =c0V36Oainfix <c0V36FAainfix =V6V3Oainfix <V6V3Aainfix <V5V6Aainfix =V2V5Oainfix <V2V5Aainfix =c0V0Oainfix <c0V0Lamk arrayV0V7FIainfix <V3V0Aainfix <V2V3Aainfix =c0V2Oainfix <c0V2Iainfix <V2V3Iainfix <V3V0Aainfix =V2V3Oainfix <V2V3Aainfix =c0V2Oainfix <c0V2Aainfix =c0V0Oainfix <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
.
postcondi
tion"
sum=
"
1786633a1d7cbf41adc48f293fe5c7a8
"
expl=
"
2
.
asser
tion"
sum=
"
0d71702b2c6c7b200e29409f925bc8d7
"
proved=
"true"
expanded=
"true"
shape=
"
postcondi
tionainfix =agetV
8V9agetV8V10O
ainfix
<
agetV
8V9
agetV
8
V1
0I
ainfix <V1
0ainfix +V3c1
Aainfix =V
9
V1
0O
ainfix <
V9V10
Aainfix
=V2V9Oainfix <V2V9FIapermut_subV7V8V2ainfix +V3c1
Iainfix =agetV
8
V1
1
agetV
8
V1
2O
ainfix <
agetV8V11agetV8V12Iainfix <V12ainfix +V3c1Aainfix =
V1
1
V12
Oainfix <V11V12Aainfix =V5
V11
O
ainfix
<V5V11F
Aapermut_subV
7V8V5
ainfix +V3c1Aainfix =c0V0
Oainfix <c0V0
FIainfix <V3V0Aainfix =V
5
V3
O
ainfix <
V5V3Aainfix
=c0V
5O
ainfix <
c0V5Iapermut_subV6V7V2
ainfix +V
3
c1
I
ainfix =agetV
7
V1
3
agetV7V1
4O
ainfix <
agetV7V13agetV7V14Iainfix <V14ainfix +V4c1Aainfix =V13V14Oainfix <V13V14Aainfix =V2V13O
ainfix <V
2
V1
3FA
apermut_subV
6V7
V2ainfix +V
4
c1
Aainfix =c0V0Oainfix <c0V0FIainfix <V4V0Aainfix =V2V4O
ainfix <V
2V4
Aainfix
=c0V2O
ainfix <c0V2Iainfix
=V15agetV6V16Oainfix <V15
agetV
6
V1
6
Iainfix
=V16V3Oainfix <V16V3Aainfix =V5V16Oainfix <V5V16
FAainfix =agetV
6V17
V1
5
Iainfix <V
17V5
Aainfix <V
4V17FAainfix =agetV6V18V15O
ainfix <agetV
6V18
V1
5
Iainfix
=V18V4Oainfix <V18V4Aainfix =V2V18O
ainfix <V2V
18
FEAapermut_subV
1V6
V2ainfix +V3c1Aainfix =V
5
V3
O
ainfix <V5V
3
Aainfix <
V4V5Aainfix =V2V4Oainfix <V2V4Aainfix =c0V0Oainfix <c
0V
0
FIainfix <V3V0Aainfix <V2V3Aainfix
=c0V2Oainfix
<c0V2Iainfix <V2V3Iainfix <V3V0Aainfix
=V2V3Oainfix
<V2V3Aainfix =c0V2
O
ainfix <
c0V2Aainfix =c0V0Oainfix <c0V0
F"
>
shape=
"
asser
tionainfix
>
=agetV
11V13agetV11ainfix -V6c1I
ainfix
=
agetV
11V13
agetV
9
V1
4A
ainfix <
=
V1
4V3
Aainfix
<
=V
6
V1
4EI
ainfix <
=V13V3
Aainfix
<=V6V13F
Iainfix =agetV
11
V1
5
agetV
9
V1
5I
ainfix <
V15V6Aainfix <=V2V15FIapermut_sub
V1
0
V12
V2ainfix +V3c1Iasorted_sub
V11
V6
ainfix
+V3c1
Aapermut_subV
10V12V6
ainfix +V3c1Aainfix
<
=c0V0
Lamk arrayV0V11
FIainfix <V3V0Aainfix
<
=V
6
V3
A
ainfix <=c0V
6I
ainfix <
=agetV9V16agetV9
ainfix +V
5
c1
A
ainfix =agetV
9
V1
6
agetV7V1
7A
ainfix <
=V17V5Aainfix <=V2V17EIainfix <=V16V5Aainfix <=V2V16FIainfix =agetV9V18agetV7V18Iainfix <=V18V3A
ainfix <V
5
V1
8FI
apermut_subV
8V10
V2ainfix +V
3
c1
Iasorted_subV9V2ainfix +V5c1Aapermut_subV8V10V2ainfix +V5c1Aainfix <=c0V0Lamk arrayV0V9FI
ainfix <V
5V0
Aainfix
<=V2V5A
ainfix <
=
c0V2Iainfix
>=
agetV
7V20
V1
9
Iainfix
<=V20V3Aainfix <=V6V20
FAainfix =agetV
7V21
V1
9
Iainfix <V
21V6
Aainfix <V
5V21FA
ainfix <
=
agetV
7V22
V1
9
Iainfix
<=V22V5A
ainfix <
=
V2V
22
FEAapermut_subV
4V8
V2ainfix +V3c1Aainfix
<
=V
6
V3
A
ainfix <V5V
6
Aainfix <
=V2V5Aainfix <=c0V0Lamk arrayV
0V
7
FIainfix <V3V0Aainfix <V2V3Aainfix <
=
c0V2Iainfix <V2V3Iainfix <V3V0Aainfix <
=
V2V3Aainfix
<
=c0V2
A
ainfix <
=c0V0Lamk arrayV0V1
F"
>
<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 <"
id=
"257"
ip_theory=
"Int"
>
<ip_library
name=
"int"
/>
<ip_qualid
name=
"infix <"
/>
</ls_pos>
<ls_pos
name=
"infix >"
id=
"260"
ip_theory=
"Int"
>
<ip_library
name=
"int"
/>
<ip_qualid
name=
"infix >"
/>