@@ -94,8 +94,8 @@ method colourings1(a: Array)
9494 invariant 0 <= i && i <= |slot(a,n-1).val|
9595 invariant acc(slot(a,n).val)
9696 invariant |slot(a,n).val| == i
97- invariant forall j:Int :: 0 <= j && j < |slot(a,n-1).val| ==>
98- valid(slot(a,n-1 ).val[j],n- 1,true)
97+ invariant forall j:Int, n1: Int :: { slot(a,n1).val[j] } n1 == n - 1 && 0 <= j && j < |slot(a,n-1).val| ==>
98+ valid(slot(a,n1 ).val[j],n - 1,true)
9999 invariant forall j : Int :: {slot(a,n).val[j]} 0 <= j && j < i ==> valid(slot(a,n).val[j],n,true)
100100 {
101101 var oldSoln : Seq[Int] := slot(a,n-1).val[i]
@@ -165,8 +165,8 @@ method colourings2(a: Array)
165165 invariant 0 <= i && i <= |slot(a,n-1).val|
166166 invariant acc(slot(a,n).val)
167167 invariant |slot(a,n).val| == i
168- invariant forall j:Int :: 0 <= j && j < |slot(a,n-1).val| ==>
169- valid(slot(a,n-1 ).val[j],n-1,true)
168+ invariant forall j:Int, n1: Int :: { slot(a,n1).val[j] } n1 == n - 1 && 0 <= j && j < |slot(a,n-1).val| ==>
169+ valid(slot(a,n1 ).val[j],n-1,true)
170170 invariant forall j : Int :: {slot(a,n).val[j]} 0 <= j && j < i ==> valid(slot(a,n).val[j],n,true)
171171 {
172172 var oldSoln : Seq[Int] := slot(a,n-1).val[i]
@@ -234,8 +234,8 @@ method colourings(a: Array)
234234 invariant 0 <= i && i <= |slot(a,n-1).val|
235235 invariant acc(slot(a,n).val)
236236 invariant |slot(a,n).val| == i
237- invariant forall j:Int :: 0 <= j && j < |slot(a,n-1).val| ==>
238- valid(slot(a,n-1 ).val[j],n-1,true)
237+ invariant forall j:Int, n1: Int :: { slot(a,n1).val[j] } n1 == n - 1 && 0 <= j && j < |slot(a,n-1).val| ==>
238+ valid(slot(a,n1 ).val[j],n-1,true)
239239 invariant forall j : Int :: {slot(a,n).val[j]} 0 <= j && j < i ==> valid(slot(a,n).val[j],n,true)
240240 {
241241 var oldSoln : Seq[Int] := slot(a,n-1).val[i]
0 commit comments