7 void sort(int a
[], int n
)
8 //@ requires length(a) == n >= 1;
9 //@ ensures forall i,j. 0 <= i <= j < n -> a[i] <= a[j];
11 for (int m
= 1; m
< n
; m
++) {
12 //@ invariant 1 <= m <= n;
13 //@ invariant forall i,j. 0 <= i <= j < m -> a[i] <= a[j];
17 for (k
= m
; k
> 0 && a
[k
-1] > x
; k
--) {
18 //@ invariant 0 <= k <= m;
19 //@ invariant forall i,j. 0 <= i <= j < k -> a[i] <= a[j];
20 //@ invariant forall i,j. 0 <= i < k < j <= m -> a[i] <= a[j];
21 //@ invariant forall i,j. k < i <= j <= m -> a[i] <= a[j];
22 //@ invariant forall j. k < j <= m -> x < a[j];
33 for (int i
= 0; i
< n
; i
++) {
34 //@ invariant 0 <= i <= n; //@ variant n - i;
40 for (int i
= 0; i
< n
; i
++)
41 //@ invariant 0 <= i <= n; //@ variant n - i;