===========================================================
                                      .___ __  __   
          _________________  __ __  __| _/|__|/  |_ 
         / ___\_` __ \__  \ |  |  \/ __ | | \\_  __\
        / /_/  >  | \// __ \|  |  / /_/ | |  ||  |  
        \___  /|__|  (____  /____/\____ | |__||__|  
       /_____/            \/           \/           
              grep rough audit - static analysis tool
                  v2.8 written by @Wireghoul
=================================[justanotherhacker.com]===
boogie-2.4.1+dfsg/Source/Core/VCExp.cs-223-      }
boogie-2.4.1+dfsg/Source/Core/VCExp.cs:224:      Assembly asm = cce.NonNull(Assembly.LoadFrom(path));
boogie-2.4.1+dfsg/Source/Core/VCExp.cs-225-      string name = cce.NonNull(asm.GetName().Name);
##############################################
boogie-2.4.1+dfsg/Source/ModelViewer/Main.resx-160-        AAAAwQQABcEFAAXFBQAKwgoAFcAVAAWGSQBGlUYAUZNRAFiTWABKpkoATKdMAE25TQBXpFcAU7tTAFu1
boogie-2.4.1+dfsg/Source/ModelViewer/Main.resx:161:        WwBmk2YAapRqAGqeagB5mHkAVKFkAG6nbgBsu2wACBuAAAoAkwAKCZYAChSSAAsYlgAaEJ8ACCSAAAsm
boogie-2.4.1+dfsg/Source/ModelViewer/Main.resx-162-        nAAoO4gAODKVAAwHowALAKYACwCpAAwBqAAMBqgADACtAAsOqQAXDaMADACwAAwAtAAMDLEADQC5AA0A
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-115-axiom 0 < memLo && memLo <= memHi;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:116:function {:inline} memAddr(i:int) returns (bool) { memLo <= i && i < memHi }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-117-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-121-axiom 0 <= numFields;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:122:function {:inline} fieldAddr(i:int) returns (bool) { 0 <= i && i < numFields }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-123-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-125-axiom 0 <= numRoots;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:126:function {:inline} rootAddr(i:int) returns (bool) { 0 <= i && i < numRoots }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-127-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-138-{
boogie-2.4.1+dfsg/Test/civl/GC.bpl:139:  (forall x: int :: memAddr(x) <==> memAddrAbs(toAbs[x])) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:140:  (forall x: int, y: int :: toAbs[x] == toAbs[y] ==> x == y || (memAddr(x) && toAbs[x] == nil) || (memAddr(y) && toAbs[y] == nil)) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:141:  (forall x: idx :: rootAddr(x) ==> toAbs[root[x]] == rootAbs[x]) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:142:  (forall x: int, f: fld :: memAddr(x) && toAbs[x] != nil && fieldAddr(f) ==> toAbs[mem[x][f]] == memAbs[toAbs[x]][f]) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:143:  (forall x: int :: memAddr(x) && toAbs[x] != nil ==> allocSet[toAbs[x]]) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:144:  (forall x: idx :: rootAddr(x) && memAddr(root[x]) ==> toAbs[root[x]] != nil) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:145:  (forall x: int, f: fld :: memAddr(x) && toAbs[x] != nil && fieldAddr(f) && memAddr(mem[x][f]) ==> toAbs[mem[x][f]] != nil) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:146:  (forall x: int, f: fld :: memAddr(x) && Unalloc(Color[x]) ==> toAbs[x] == nil)
boogie-2.4.1+dfsg/Test/civl/GC.bpl-147-}
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-152-{
boogie-2.4.1+dfsg/Test/civl/GC.bpl:153:  (forall i:int :: {MST(i)} MST(i) ==> (0 <= i && i < MarkStackPtr) ==> (memAddr(MarkStack[i]) && Gray(Color[MarkStack[i]]))) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:154:  (nodePeeked != 0 ==> memAddr(nodePeeked) && Gray(Color[nodePeeked])) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:155:  (forall i:int :: (memAddr(i) && Gray(Color[i])) ==>  (exists j:int :: {MST(j)} MST(j) && 0 <= j && j < MarkStackPtr && MarkStack[j] == i) || nodePeeked == i) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl-156-  (forall i:int :: {MST(i)} MST(i) ==> (0 <= i && i < MarkStackPtr) ==> (forall j:int :: {MST(j)} MST(j) ==> (0 <= j && j < MarkStackPtr && i != j) ==> MarkStack[i] != MarkStack[j])) &&
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-168-  Iso(root, rootAbs, mem, memAbs, Color, toAbs, allocSet) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:169:  (forall x: int :: memAddr(x) ==> (toAbs[x] == nil <==> Unalloc(Color[x]))) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:170:  (forall x: int, f: fld :: memAddr(x) && Black(Color[x]) && fieldAddr(f) && memAddr(mem[x][f]) ==> Gray(Color[mem[x][f]]) || Black(Color[mem[x][f]]))
boogie-2.4.1+dfsg/Test/civl/GC.bpl-171-}
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-175-  Iso(root, rootAbs, mem, memAbs, Color, toAbs, allocSet) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:176:    (forall x: int :: memAddr(x) ==> (toAbs[x] == nil <==> Unalloc(Color[x]))) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:177:  (forall x: int :: memAddr(x) ==> !Gray(Color[x])) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:178:  (forall x: int, f: fld :: memAddr(x) && Black(Color[x]) && fieldAddr(f) && memAddr(mem[x][f]) ==> Black(Color[mem[x][f]]))
boogie-2.4.1+dfsg/Test/civl/GC.bpl-179-}
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-183-  Iso(root, rootAbs, mem, memAbs, Color, toAbs, allocSet) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:184:    (forall x: int :: memAddr(x) ==> (toAbs[x] != nil <==> Black(Color[x]))) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:185:  (forall x: int :: memAddr(x) ==> !Gray(Color[x])) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:186:  (forall x: int, f: fld :: memAddr(x) && Black(Color[x]) && fieldAddr(f) && memAddr(mem[x][f]) ==> Black(Color[mem[x][f]]))
boogie-2.4.1+dfsg/Test/civl/GC.bpl-187-}
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-192-requires {:layer 99} mutatorsInRootScanBarrier == MapConstBool(false);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:193:requires {:layer 100} (forall x: idx :: rootAddr(x) ==> rootAbs[x] == Int(0));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-194-ensures {:layer 99} mutatorsInRootScanBarrier == MapConstBool(false);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-201-    assert {:layer 99} mutatorsInRootScanBarrier == MapConstBool(false);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:202:    assert {:layer 100} (forall x: idx :: rootAddr(x) ==> rootAbs[x] == Int(0));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-203-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-221-    havoc mem, root, Color, mutatorPhase;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:222:    assume (forall x: int, f: fld :: memAddr(x) && fieldAddr(f) ==> mem[x][f] == x);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:223:    assume (forall x: idx :: rootAddr(x) ==> root[x] == 0);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:224:    assume (forall i:int :: memAddr(i) ==> Color[i] == UNALLOC());
boogie-2.4.1+dfsg/Test/civl/GC.bpl-225-    assume (forall i:int :: mutatorId(i) ==> mutatorPhase[i] == IDLE());
boogie-2.4.1+dfsg/Test/civl/GC.bpl:226:    toAbs := (lambda i:int :: if memAddr(i) then nil else Int(i));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-227-    collectorPhase := IDLE();
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-239-        invariant{:layer 96} memLo <= n && n <= memHi;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:240:        invariant{:layer 96} (forall i:int, f: fld :: memLo <= i && i < n && fieldAddr(f) ==> mem[i][f] == i);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-241-    {
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-244-            invariant{:layer 96} 0 <= m && m <= numFields;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:245:            invariant{:layer 96} (forall i:int, f: fld :: memLo <= i && i < n && fieldAddr(f) ==> mem[i][f] == i);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-246-            invariant{:layer 96} (forall f: fld :: 0 <= f && f < m ==> mem[n][f] == n);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-328-    var o: obj;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:329:    assert mutatorTidWhole(tid) && rootAddr(y) && tidOwns(tid, y);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-330-    assume (memAddrAbs(o) && !allocSet[o]);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-332-    rootAbs[y] := o;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:333:    memAbs[o] := (lambda z: int :: if (fieldAddr(z)) then o else memAbs[o][z]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-334-}
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-394-modifies memAbs;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:395:{ assert mutatorTidWhole(tid) && rootAddr(x) && tidOwns(tid, x) && fieldAddr(f) && rootAddr(y) && tidOwns(tid, y) && memAddrAbs(rootAbs[x]); memAbs[rootAbs[x]][f] := rootAbs[y]; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-396-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-411-    assert {:layer 100} Iso(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:412:    assert {:layer 100} memAddr(root[y]) && MarkPhase(mutatorPhase[i#Tid(tid)]) ==> Gray(Color[root[y]]) || Black(Color[root[y]]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-413-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-422-modifies rootAbs;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:423:{ assert mutatorTidWhole(tid) && rootAddr(x) && tidOwns(tid, x) && fieldAddr(f) && rootAddr(y) && tidOwns(tid, y) && memAddrAbs(rootAbs[x]); rootAbs[y] := memAbs[rootAbs[x]][f]; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-424-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-438-procedure {:atomic} {:layer 101} AtomicEq({:linear "tid"} tid:Tid, x: idx, y:idx) returns (isEqual:bool)
boogie-2.4.1+dfsg/Test/civl/GC.bpl:439:{ assert mutatorTidWhole(tid) && rootAddr(x) && tidOwns(tid, x) && rootAddr(y) && tidOwns(tid, y); isEqual := rootAbs[x] == rootAbs[y]; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-440-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-508-requires {:layer 100} Iso(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:509:requires {:layer 100} (forall x: int :: memAddr(x) ==> (toAbs[x] == nil <==> Unalloc(Color[x])));
boogie-2.4.1+dfsg/Test/civl/GC.bpl:510:requires {:layer 100} sweepPtr == memHi ==> (forall x: int :: memAddr(x) ==> !Black(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-511-requires {:layer 100}
boogie-2.4.1+dfsg/Test/civl/GC.bpl-512-         sweepPtr == memLo ==>
boogie-2.4.1+dfsg/Test/civl/GC.bpl:513:              (forall x: int :: memAddr(x) ==> !Gray(Color[x])) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:514:       (forall i: int :: rootAddr(i) && memAddr(root[i]) ==> Black(Color[root[i]])) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:515:           (forall x: int, f: fld :: memAddr(x) && Black(Color[x]) && fieldAddr(f) && memAddr(mem[x][f]) ==> Black(Color[mem[x][f]]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-516-ensures {:layer 98} MsWellFormed(MarkStack, MarkStackPtr, Color, 0);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-518-ensures {:layer 100} Iso(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:519:ensures {:layer 100} (forall x: int :: memAddr(x) ==> (toAbs[x] == nil <==> Unalloc(Color[x])));
boogie-2.4.1+dfsg/Test/civl/GC.bpl:520:ensures {:layer 100} sweepPtr == memHi ==> (forall x: int :: memAddr(x) ==> !Black(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-521-ensures {:layer 100}
boogie-2.4.1+dfsg/Test/civl/GC.bpl-522-         sweepPtr == memLo ==>
boogie-2.4.1+dfsg/Test/civl/GC.bpl:523:              (forall x: int :: memAddr(x) ==> !Gray(Color[x])) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:524:       (forall i: int :: rootAddr(i) && memAddr(root[i]) ==> Black(Color[root[i]])) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:525:           (forall x: int, f: fld :: memAddr(x) && Black(Color[x]) && fieldAddr(f) && memAddr(mem[x][f]) ==> Black(Color[mem[x][f]]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-526-ensures {:layer 97,99,100} old(collectorPhase) == collectorPhase;
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-534-    assert {:layer 100} Iso(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:535:    assert {:layer 100} (forall x: int :: memAddr(x) ==> (toAbs[x] == nil <==> Unalloc(Color[x])));
boogie-2.4.1+dfsg/Test/civl/GC.bpl:536:    assert {:layer 100} sweepPtr == memHi ==> (forall x: int :: memAddr(x) ==> !Black(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-537-    assert {:layer 100}
boogie-2.4.1+dfsg/Test/civl/GC.bpl-538-         sweepPtr == memLo ==>
boogie-2.4.1+dfsg/Test/civl/GC.bpl:539:              (forall x: int :: memAddr(x) ==> !Gray(Color[x])) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:540:       (forall i: int :: rootAddr(i) && memAddr(root[i]) ==> Black(Color[root[i]])) &&
boogie-2.4.1+dfsg/Test/civl/GC.bpl:541:           (forall x: int, f: fld :: memAddr(x) && Black(Color[x]) && fieldAddr(f) && memAddr(mem[x][f]) ==> Black(Color[mem[x][f]]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-542-    assert {:layer 97,99,100} old(collectorPhase) == collectorPhase;
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-551-requires {:layer 100} Iso(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:552:requires {:layer 100} (forall x: int :: memAddr(x) ==> (toAbs[x] == nil <==> Unalloc(Color[x])));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-553-requires {:layer 98,100} IdlePhase(collectorPhase) && PhaseConsistent(collectorPhase, mutatorPhase);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:554:requires {:layer 100} (forall x: int :: memAddr(x) ==> !Black(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-555-requires {:layer 100} sweepPtr == memHi;
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-564-    invariant {:layer 100} Iso(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:565:    invariant {:layer 100} (forall x: int :: memAddr(x) ==> (toAbs[x] == nil <==> Unalloc(Color[x])));
boogie-2.4.1+dfsg/Test/civl/GC.bpl:566:    invariant {:layer 100} (forall x: int :: memAddr(x) ==> !Black(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-567-    invariant {:layer 100} sweepPtr == memHi;
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-593-requires {:layer 100} Iso(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:594:requires {:layer 100} (forall x: int :: memAddr(x) ==> (toAbs[x] == nil <==> Unalloc(Color[x])));
boogie-2.4.1+dfsg/Test/civl/GC.bpl:595:requires {:layer 100} (forall x: int :: memAddr(x) ==> !Black(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-596-ensures {:layer 98} MsWellFormed(MarkStack, MarkStackPtr, Color, 0);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-600-ensures {:layer 100} Iso(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:601:ensures {:layer 100} (forall x: int :: memAddr(x) ==> (toAbs[x] == nil <==> Unalloc(Color[x])));
boogie-2.4.1+dfsg/Test/civl/GC.bpl:602:ensures {:layer 100} (forall x: int :: memAddr(x) ==> !Black(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-603-{
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-610-    assert {:layer 100} Iso(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:611:    assert {:layer 100} (forall x: int :: memAddr(x) ==> (toAbs[x] == nil <==> Unalloc(Color[x])));
boogie-2.4.1+dfsg/Test/civl/GC.bpl:612:    assert {:layer 100} (forall x: int :: memAddr(x) ==> !Black(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-613-}
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-625-ensures {:layer 100} MarkInv(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:626:ensures {:layer 100} (forall x: int :: memAddr(x) && !Unalloc(old(Color)[x]) ==> !Unalloc(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl:627:ensures {:layer 100} (forall x: int :: memAddr(x) && !Unalloc(old(Color)[x]) && !White(old(Color)[x]) ==> !White(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-628-{
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-635-    assert {:layer 100} MarkInv(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:636:    assert {:layer 100} (forall x: int :: memAddr(x) && !Unalloc(old(Color)[x]) ==> !Unalloc(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl:637:    assert {:layer 100} (forall x: int :: memAddr(x) && !Unalloc(old(Color)[x]) && !White(old(Color)[x]) ==> !White(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-638-}
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-645-requires {:layer 100} MarkInv(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:646:requires {:layer 100} (forall x: int :: memAddr(x) ==> !Gray(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl:647:requires {:layer 100} (forall i: int :: rootAddr(i) && memAddr(root[i]) ==> Black(Color[root[i]]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-648-ensures {:layer 98} MsWellFormed(MarkStack, MarkStackPtr, Color, 0);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-652-ensures {:layer 100} MarkInv(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:653:ensures {:layer 100} (forall x: int :: memAddr(x) ==> !Gray(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl:654:ensures {:layer 100} (forall i: int :: rootAddr(i) && memAddr(root[i]) ==> Black(Color[root[i]]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-655-{
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-662-    assert {:layer 100} MarkInv(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:663:    assert {:layer 100} (forall x: int :: memAddr(x) ==> !Gray(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl:664:    assert {:layer 100} (forall i: int :: rootAddr(i) && memAddr(root[i]) ==> Black(Color[root[i]]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-665-}
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-671-requires {:layer 100} Iso(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:672:requires {:layer 100} (forall x: int :: memAddr(x) ==> (toAbs[x] == nil <==> Unalloc(Color[x])));
boogie-2.4.1+dfsg/Test/civl/GC.bpl:673:requires {:layer 100} (forall x: int :: memAddr(x) ==> !Black(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-674-requires {:layer 100} MarkPhase(collectorPhase) && PhaseConsistent(collectorPhase, mutatorPhase) && sweepPtr == memHi;
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-679-ensures {:layer 100} MarkInv(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:680:ensures {:layer 100} (forall x: int :: memAddr(x) ==> !Gray(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl:681:ensures {:layer 100} (forall i: int :: rootAddr(i) && memAddr(root[i]) ==> Black(Color[root[i]]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-682-{
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-743-    invariant {:layer 100} 0 <= fldIter && fldIter <= numFields;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:744:    invariant {:layer 100} (forall x: int :: 0 <= x && x < fldIter && memAddr(mem[nodeProcessed][x]) ==> !Unalloc(Color[mem[nodeProcessed][x]]) && !White(Color[mem[nodeProcessed][x]]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-745-    {
boogie-2.4.1+dfsg/Test/civl/GC.bpl-746-      call child := ReadFieldCollector(tid, nodeProcessed, fldIter);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:747:      if (memAddr(child))
boogie-2.4.1+dfsg/Test/civl/GC.bpl-748-      {
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-759-      assert {:layer 100} MarkInv(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:760:      assert {:layer 100} (forall x: int :: 0 <= x && x < fldIter && memAddr(mem[nodeProcessed][x]) ==> !Unalloc(Color[mem[nodeProcessed][x]]) && !White(Color[mem[nodeProcessed][x]]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-761-    }
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-772-    havoc Color;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:773:    assume (forall u: int :: if memAddr(u) && White(old(Color)[u]) && (exists k: int :: rootAddr(k) && root[k] == u) then Color[u] == GRAY() else Color[u] == old(Color)[u]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:774:    canStop := (forall v: int :: memAddr(v) ==> !Gray(Color[v]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-775-}
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-807-    invariant {:layer 99} 0 <= i && i <= numRoots;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:808:    invariant {:layer 99} Color == (lambda u: int :: if memAddr(u) && White(snapColor[u]) && (exists k: int :: 0 <= k && k < i && root[k] == u) then GRAY() else snapColor[u]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-809-    invariant {:layer 98} MsWellFormed(MarkStack, MarkStackPtr, Color, 0);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-812-        call o := ReadRootInRootScanBarrier(tid, i);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:813:        if (memAddr(o))
boogie-2.4.1+dfsg/Test/civl/GC.bpl-814-        {
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-835-requires {:layer 100} isInit ==> SweepInvInit(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:836:requires {:layer 100} (forall i: int :: rootAddr(i) && memAddr(root[i]) ==> Black(Color[root[i]]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl:837:requires {:layer 100} (forall x: int, f: fld :: memLo <= x && x < localSweepPtr && (Unalloc(Color[x]) || White(Color[x])) && fieldAddr(f) ==> mem[x][f] == x);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-838-requires {:layer 100} (forall f: fld :: 0 <= f && f < fldIter ==> mem[localSweepPtr][f] == localSweepPtr);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-844-ensures {:layer 100} isInit ==> SweepInvInit(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:845:ensures {:layer 100} (forall i: int :: rootAddr(i) && memAddr(root[i]) ==> Black(Color[root[i]]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-846-ensures {:layer 100} sweepPtr == memLo;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:847:ensures {:layer 100} (forall x: int :: memAddr(x) && !Unalloc(old(Color)[x]) ==> old(Color)[x] == Color[x]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:848:ensures {:layer 100} (forall x: int, f: fld :: memLo <= x && x < localSweepPtr && (Unalloc(Color[x]) || White(Color[x])) && fieldAddr(f) ==> mem[x][f] == x);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-849-ensures {:layer 100} (forall f: fld :: 0 <= f && f < fldIter ==> mem[localSweepPtr][f] == localSweepPtr);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-859-    assert {:layer 100} isInit ==> SweepInvInit(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:860:    assert {:layer 100} (forall i: int :: rootAddr(i) && memAddr(root[i]) ==> Black(Color[root[i]]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl:861:    assert {:layer 100} (forall x: int :: memAddr(x) && !Unalloc(old(Color)[x]) ==> old(Color)[x] == Color[x]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:862:    assert {:layer 100} (forall x: int, f: fld :: memLo <= x && x < localSweepPtr && (Unalloc(Color[x]) || White(Color[x])) && fieldAddr(f) ==> mem[x][f] == x);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-863-    assert {:layer 100} (forall f: fld :: 0 <= f && f < fldIter ==> mem[localSweepPtr][f] == localSweepPtr);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-873-requires {:layer 100} SweepInv(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:874:requires {:layer 100} (forall x: int :: memAddr(x) ==> !Black(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-875-ensures {:layer 98} MsWellFormed(MarkStack, MarkStackPtr, Color, 0);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-878-ensures {:layer 100} SweepInv(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:879:ensures {:layer 100} (forall x: int :: memAddr(x) ==> !Black(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-880-ensures {:layer 100} sweepPtr == memHi;
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-887-    assert {:layer 100} SweepInv(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:888:    assert {:layer 100} (forall x: int :: memAddr(x) ==> !Black(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-889-    assert {:layer 100} sweepPtr == memHi;
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-897-requires {:layer 100} sweepPtr == memLo;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:898:requires {:layer 100} (forall i: int :: rootAddr(i) && memAddr(root[i]) ==> Black(Color[root[i]]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-899-requires {:layer 100} SweepInv(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-902-ensures {:layer 100} SweepInv(root, rootAbs, mem, memAbs, Color, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:903:ensures {:layer 100} (forall x: int :: memAddr(x) ==> !Black(Color[x]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-904-ensures {:layer 100} sweepPtr == memHi;
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-920-  invariant {:layer 100} localSweepPtr == sweepPtr && memLo <= sweepPtr && sweepPtr <= memHi;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:921:  invariant {:layer 100} (forall i: int :: rootAddr(i) && memAddr(root[i]) ==> Black(snapColor[root[i]]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-922-  invariant {:layer 100} SweepInvInit(root, rootAbs, mem, memAbs, snapColor, toAbs, allocSet);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:923:  invariant {:layer 100} (forall i:int:: memAddr(i) ==> if sweepPtr <= i then Color[i] == snapColor[i] else if Black(snapColor[i]) then White(Color[i]) else Unalloc(Color[i]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-924-  {
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-933-{
boogie-2.4.1+dfsg/Test/civl/GC.bpl:934:    assert mutatorTidWhole(tid) && rootAddr(x) && tidOwns(tid, x) && fieldAddr(f) && rootAddr(y) && tidOwns(tid, y) && memAddr(root[x]) && toAbs[root[x]] != nil && memAddrAbs(rootAbs[x]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-935-    memAbs[rootAbs[x]][f] := rootAbs[y];
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-957-{
boogie-2.4.1+dfsg/Test/civl/GC.bpl:958:    assert mutatorTidWhole(tid) && rootAddr(x) && tidOwns(tid, x) && fieldAddr(f) && rootAddr(y) && tidOwns(tid, y) && memAddr(root[x]) && toAbs[root[x]] != nil && memAddrAbs(rootAbs[x]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-959-    rootAbs[y] := memAbs[rootAbs[x]][f];
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-976-procedure {:atomic} {:layer 100} AtomicEqRaw({:linear "tid"} tid:Tid, x: idx, y:idx) returns (isEqual:bool)
boogie-2.4.1+dfsg/Test/civl/GC.bpl:977:{ assert mutatorTidWhole(tid) && rootAddr(x) && tidOwns(tid, x) && rootAddr(y) && tidOwns(tid, y); isEqual := root[x] == root[y]; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-978-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-993-{
boogie-2.4.1+dfsg/Test/civl/GC.bpl:994:     assert mutatorTidWhole(tid) && rootAddr(y) && tidOwns(tid, y);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:995:     assert (forall x: int, f: fld :: memAddr(x) && Unalloc(Color[x]) ==> toAbs[x] == nil);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:996:     assume(memAddr(ptr) && Unalloc(Color[ptr]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-997-     assume(memAddrAbs(absPtr) && !allocSet[absPtr] && absPtr != nil);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1001-     toAbs[ptr] := absPtr;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1002:     memAbs[absPtr] := (lambda z: int :: if (fieldAddr(z)) then absPtr else memAbs[absPtr][z]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1003-     Color[ptr] := if sweepPtr <= ptr then BLACK() else WHITE();
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1004:     mem[ptr] := (lambda z: int :: if (fieldAddr(z)) then ptr else mem[ptr][z]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1005-}
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1021-    assert mutatorTidWhole(tid);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1022:    assert (forall x: int, f: fld :: memAddr(x) && Unalloc(Color[x]) ==> toAbs[x] == nil);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1023:    assume (memAddr(ptr) && Unalloc(Color[ptr]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1024-    Color[ptr] := if sweepPtr <= ptr then BLACK() else WHITE();
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1025-    toAbs[ptr] := absPtr;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1026:    mem[ptr] := (lambda z: int :: if (fieldAddr(z)) then ptr else mem[ptr][z]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1027-}
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1037-    invariant {:layer 98} !spaceFound;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1038:    invariant {:layer 98} (forall x: int, f: fld :: memAddr(x) && Unalloc(Color[x]) ==> toAbs[x] == nil);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1039-    {
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1043-        invariant {:layer 98} memLo <= iter && iter <= memHi;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1044:        invariant {:layer 98} memAddr(iter) && Unalloc(Color[iter]) ==> toAbs[iter] == nil;
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1045-        {
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1070-    var val:int;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1071:    assert mutatorTidWhole(tid) && rootAddr(y) && tidOwns(tid, y);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1072-    val := root[y];
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1073:    if (MarkPhase(mutatorPhase[i#Tid(tid)]) && memAddr(val) && White(Color[val])) {
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1074-        Color[val] := GRAY();
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1086-    call rootVal := ReadRoot(tid, y);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1087:    if (memAddr(rootVal))
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1088-    {
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1101-{
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1102:    assert mutatorTidWhole(tid) && memAddr(memLocal) && MarkPhase(mutatorPhase[i#Tid(tid)]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1103-    if (White(Color[memLocal])) {
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1139-        assert tid == GcTid && rootScanOn && mutatorsInRootScanBarrier == Mutators;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1140:        noGray := (forall i: int :: memAddr(i) ==> !Gray(Color[i]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1141-}
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1162-{
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1163:    assert tid == GcTid && rootScanOn && mutatorsInRootScanBarrier == Mutators && memAddr(memLocal);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1164-    if (White(Color[memLocal])) {
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1189-    assert tid == GcTid;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1190:    assert MarkPhase(collectorPhase) && PhaseConsistent(collectorPhase, mutatorPhase) && sweepPtr == memLo && memAddr(child);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1191-    if (White(Color[child])) {
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1196-procedure {:yields} {:layer 98} {:refines "AtomicSET_InsertIntoSetIfWhite"} SET_InsertIntoSetIfWhite({:linear "tid"} tid:Tid, parent: int, child:int)
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1197:requires {:layer 98} tid == GcTid && memAddr(parent) && memAddr(child) && MsWellFormed(MarkStack, MarkStackPtr, Color, parent);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1198-ensures {:layer 98} MsWellFormed(MarkStack, MarkStackPtr, Color, parent);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1201-    yield;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1202:    assert {:layer 98} tid == GcTid && memAddr(parent) && memAddr(child);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1203-    assert {:layer 98} MsWellFormed(MarkStack, MarkStackPtr, Color, parent);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1207-    yield;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1208:    assert {:layer 98} tid == GcTid && memAddr(parent) && memAddr(child);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1209-    assert {:layer 98} MsWellFormed(MarkStack, MarkStackPtr, Color, parent);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1217-    if (*) {
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1218:        assume (memAddr(val) && !Unalloc(Color[val]));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1219-        isEmpty := false;
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1250-    assert tid == GcTid;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1251:    assert memAddr(scannedLocal);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1252-    Color[scannedLocal] := BLACK();
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1266-{
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1267:    assert memAddr(val) && tid == GcTid;
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1268-    if (White(Color[val])) {
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1296-{
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1297:    assert memAddr(val) && mutatorTidWhole(tid) && MarkPhase(mutatorPhase[i#Tid(tid)]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1298-    if (White(Color[val])) {
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1392-    assert tid == GcTid;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1393:    assert memAddr(sweepPtr);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1394-    Color[sweepPtr] := if White(Color[sweepPtr]) then UNALLOC() else if Black(Color[sweepPtr]) then WHITE() else Color[sweepPtr];
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1567-{
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1568:    assert mutatorTidWhole(tid) && memAddr(ptr) && (Unalloc(Color[ptr]) ==> toAbs[ptr] == nil);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1569-    if (*) {
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1572-        toAbs[ptr] := absPtr;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1573:        mem[ptr] := (lambda z: int :: if (fieldAddr(z)) then ptr else mem[ptr][z]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1574-        spaceFound := true;
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1629-procedure {:atomic} {:layer 97,100} AtomicIsWhiteByCollector({:linear "tid"} tid:Tid, i: int) returns (isWhite: bool)
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1630:{ assert tid == GcTid && memAddr(i); isWhite := White(Color[i]); }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1631-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1644-modifies toAbs;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1645:{ assert tid == GcTid; toAbs := (lambda x: int :: if memAddr(x) && White(Color[x]) then nil else toAbs[x]); }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1646-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1661-modifies toAbs;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1662:{ assert tid == GcTid && tidHasLock(tid, lock); toAbs := (lambda x: int :: if memAddr(x) && White(Color[x]) then nil else toAbs[x]); }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1663-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1672-modifies mem;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1673:{ assert gcAndMutatorTids(tid, mutatorTids) && memAddr(x) && fieldAddr(f); mem[x][f] := x; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1674-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1682-procedure {:atomic} {:layer 96,100} AtomicReadFieldCollector({:linear "tid"} tid:Tid, x:int, f: fld) returns (y: int)
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1683:{ assert tid == GcTid && memAddr(x) && fieldAddr(f) && toAbs[x] != nil; y := mem[x][f]; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1684-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1692-procedure {:atomic} {:layer 96,99} AtomicReadFieldGeneral({:linear "tid"} tid:Tid, x: int, f: fld) returns (y: int)
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1693:{ assert mutatorTidWhole(tid) && memAddr(x) && fieldAddr(f) && toAbs[x] != nil; y := mem[x][f]; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1694-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1703-modifies mem;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1704:{ assert mutatorTidWhole(tid) && memAddr(x) && fieldAddr(f) && toAbs[x] != nil; mem[x][f] := y; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1705-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1714-modifies mem;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1715:{ assert mutatorTidWhole(tid) && tidHasLock(tid, lock) && memAddr(ptr) && fieldAddr(fld) && toAbs[ptr] == nil; mem[ptr][fld] := ptr; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1716-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1996-modifies root;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:1997:{ assert gcAndMutatorTids(tid, mutatorTids) && rootAddr(x); root[x] := 0; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-1998-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2006-procedure {:left} {:layer 96,99} AtomicReadRootInRootScanBarrier({:linear "tid"} tid:Tid, x: idx) returns (val: int)
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2007:{ assert tid == GcTid && rootAddr(x) && rootScanOn && mutatorsInRootScanBarrier == Mutators; val := root[x]; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2008-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2017-modifies root;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2018:{ assert mutatorTidWhole(tid) && rootAddr(i) && tidOwns(tid, i); root[i] := val; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2019-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2027-procedure {:both} {:layer 96,99} AtomicReadRoot({:linear "tid"} tid: Tid, i: idx) returns (val: int)
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2028:{ assert mutatorTidWhole(tid) && rootAddr(i) && tidOwns(tid, i); val := root[i]; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2029-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2038-modifies Color;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2039:{ assert gcAndMutatorTids(tid, mutatorTids) && memAddr(x); Color[x] := UNALLOC(); }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2040-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2048-procedure {:both} {:layer 96} AtomicReadColorByCollector({:linear "tid"} tid:Tid, i: int) returns (val: int)
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2049:{ assert tid == GcTid && tidHasLock(tid, lock) && memAddr(i); val := Color[i]; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2050-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2058-procedure {:atomic} {:layer 96} AtomicReadColorByMutator1({:linear "tid"} tid:Tid, i: int) returns (val: int)
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2059:{ assert mutatorTidWhole(tid) && memAddr(i); }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2060-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2068-procedure {:both} {:layer 96} AtomicReadColorByMutator2({:linear "tid"} tid:Tid, i: int) returns (val: int)
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2069:{ assert mutatorTidWhole(tid) && tidHasLock(tid, lock) && memAddr(i); val := Color[i]; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2070-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2079-{
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2080:    assert mutatorTidWhole(tid) && memAddr(i) && MarkPhase(mutatorPhase[i#Tid(tid)]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2081-    assume White(Color[i]) ==> White(val);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2092-modifies Color;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2093:{ assert tidHasLock(tid, lock) && memAddr(i) && PhaseConsistent(collectorPhase, mutatorPhase) && !MarkPhase(collectorPhase); Color[i] := val; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2094-
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2104-{
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2105:    assert tidHasLock(tid, lock) && memAddr(i);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2106-    assert (MarkPhase(collectorPhase) || !PhaseConsistent(collectorPhase, mutatorPhase) ==> !White(val));
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2119-{
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2120:    assert tidHasLock(tid, lock) && memAddr(i);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2121-    assert White(val) ==> Unalloc(Color[i]);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2137-  assert gcAndMutatorTids(tid, mutatorTids);
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2138:  toAbs := (lambda i:int :: if memAddr(i) then nil else Int(i));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2139-}
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2213-procedure {:atomic} {:layer 1,95} AtomicPrimitiveReadField(x: int, f: fld) returns (y: int)
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2214:{ assert memAddr(x) && fieldAddr(f); y := mem[x][f]; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2215-procedure {:yields} {:layer 0} {:refines "AtomicPrimitiveReadField"} PrimitiveReadField(x: int, f: fld) returns (y: int);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2218-modifies mem;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2219:{ assert memAddr(x) && fieldAddr(f); mem[x][f] := y; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2220-procedure {:yields} {:layer 0} {:refines "AtomicPrimitiveWriteField"} PrimitiveWriteField(x: int, f: fld, y: int);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2306-modifies root;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2307:{ assert rootAddr(i); root[i] := val; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2308-procedure {:yields} {:layer 0} {:refines "AtomicPrimitiveWriteRoot"} PrimitiveWriteRoot(i: idx, val: int);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2310-procedure {:atomic} {:layer 1,95} AtomicPrimitiveReadRoot(i: idx) returns (val: int)
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2311:{ assert rootAddr(i); val := root[i]; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2312-procedure {:yields} {:layer 0} {:refines "AtomicPrimitiveReadRoot"} PrimitiveReadRoot(i: idx) returns (val: int);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2314-procedure {:atomic} {:layer 1,95} AtomicPrimitiveReadColor(i: int) returns (val: int)
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2315:{ assert memAddr(i); val := Color[i]; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2316-procedure {:yields} {:layer 0} {:refines "AtomicPrimitiveReadColor"} PrimitiveReadColor(i: int) returns (val: int);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2319-modifies Color;
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2320:{ assert memAddr(i); Color[i] := val; }
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2321-procedure {:yields} {:layer 0} {:refines "AtomicPrimitiveSetColor"} PrimitiveSetColor(i: int, val: int);
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2354-{
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2355:    memAbs[absPtr] := (lambda z: int :: if (fieldAddr(z)) then absPtr else memAbs[absPtr][z]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2356-}
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2366-{
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2367:    toAbs := (lambda x: int :: if memAddr(x) && White(Color[x]) then nil else toAbs[x]);
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2368-}
##############################################
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2378-{
boogie-2.4.1+dfsg/Test/civl/GC.bpl:2379:    toAbs := (lambda i:int :: if memAddr(i) then nil else Int(i));
boogie-2.4.1+dfsg/Test/civl/GC.bpl-2380-}
##############################################
boogie-2.4.1+dfsg/Test/civl/alloc-mem.bpl-84-  call Yield();
boogie-2.4.1+dfsg/Test/civl/alloc-mem.bpl:85:  call i := PickAddr();
boogie-2.4.1+dfsg/Test/civl/alloc-mem.bpl-86-  call l := AllocLinear(i);
##############################################
boogie-2.4.1+dfsg/Test/civl/alloc-mem.bpl-103-  call FreeLinear(l, i);
boogie-2.4.1+dfsg/Test/civl/alloc-mem.bpl:104:  call ReturnAddr(i);
boogie-2.4.1+dfsg/Test/civl/alloc-mem.bpl-105-  call Yield();
##############################################
boogie-2.4.1+dfsg/Test/civl/alloc-mem.bpl-190-
boogie-2.4.1+dfsg/Test/civl/alloc-mem.bpl:191:procedure {:atomic} {:layer 1} atomic_PickAddr () returns (i:int)
boogie-2.4.1+dfsg/Test/civl/alloc-mem.bpl-192-modifies unallocated;
##############################################
boogie-2.4.1+dfsg/Test/civl/alloc-mem.bpl-197-
boogie-2.4.1+dfsg/Test/civl/alloc-mem.bpl:198:procedure {:atomic} {:layer 1} atomic_ReturnAddr (i:int)
boogie-2.4.1+dfsg/Test/civl/alloc-mem.bpl-199-modifies unallocated;
##############################################
boogie-2.4.1+dfsg/Test/civl/alloc-mem.bpl-203-procedure {:yields} {:layer 0} {:refines "atomic_WriteLow"} WriteLow (i:int, o:int);
boogie-2.4.1+dfsg/Test/civl/alloc-mem.bpl:204:procedure {:yields} {:layer 0} {:refines "atomic_PickAddr"} PickAddr () returns (i:int);
boogie-2.4.1+dfsg/Test/civl/alloc-mem.bpl:205:procedure {:yields} {:layer 0} {:refines "atomic_ReturnAddr"} ReturnAddr (i:int);
##############################################
boogie-2.4.1+dfsg/Test/civl/linear_out_bug.bpl-9-
boogie-2.4.1+dfsg/Test/civl/linear_out_bug.bpl:10:procedure {:atomic} {:layer 1,2} AddAddr({:linear_in "addr"} i: int)
boogie-2.4.1+dfsg/Test/civl/linear_out_bug.bpl-11-modifies Addrs;
##############################################
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-3-axiom 0 < memLo && memLo <= memHi;
boogie-2.4.1+dfsg/Test/civl/reserve.bpl:4:function memAddr(i:int) returns (bool) { memLo <= i && i < memHi }
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-5-
##############################################
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-7-axiom 0 < numMutators;
boogie-2.4.1+dfsg/Test/civl/reserve.bpl:8:function {:inline} mutatorAddr(i: int) returns (bool) { 1 <= i && i <= numMutators }
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-9-
##############################################
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-49-    0 <= freeSpace &&
boogie-2.4.1+dfsg/Test/civl/reserve.bpl:50:    (forall u: int, v: int :: memAddr(u) && memAddr(v) && u <= v ==> Subset(AllocatingAtOrAfter[v], AllocatingAtOrAfter[u])) &&
boogie-2.4.1+dfsg/Test/civl/reserve.bpl:51:    (forall u: int :: memAddr(u) || NumFreeAtOrAfter[u] == 0) &&
boogie-2.4.1+dfsg/Test/civl/reserve.bpl:52:    (forall u: int :: {memAddr(u)} memAddr(u) ==> NumFreeAtOrAfter[u] == (NumFreeAtOrAfter[u+1] + (if Free[u] then 1 else 0)))
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-53-}
##############################################
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-63-ensures {:atomic} |{
boogie-2.4.1+dfsg/Test/civl/reserve.bpl:64:    A: assert memAddr(ptr);
boogie-2.4.1+dfsg/Test/civl/reserve.bpl:65:       assert Free[ptr] || memAddr(ptr + 1);
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-66-       assert (forall u: int :: AllocatingAtOrAfter[u][tid] <==> memLo <= u && u <= ptr);
##############################################
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-79-ensures {:atomic} |{ var ptr: int;
boogie-2.4.1+dfsg/Test/civl/reserve.bpl:80:    A: assume memAddr(ptr) && !Free[ptr];
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-81-       freeSpace := freeSpace + 1;
##############################################
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-86-procedure {:yields} {:layer 1} YieldAlloc({:cnst "tid"} tid:int, i: int)
boogie-2.4.1+dfsg/Test/civl/reserve.bpl:87:requires {:layer 1} mutatorAddr(tid);
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-88-requires {:expand} {:layer 1} Invariant(NumFreeAtOrAfter, AllocatingAtOrAfter, Free, freeSpace);
##############################################
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-93-    yield;
boogie-2.4.1+dfsg/Test/civl/reserve.bpl:94:    assert {:layer 1} mutatorAddr(tid);
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-95-    assert {:layer 1} Invariant(NumFreeAtOrAfter, AllocatingAtOrAfter, Free, freeSpace);
##############################################
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-99-procedure {:yields} {:layer 1} Malloc({:cnst "tid"} tid: X)
boogie-2.4.1+dfsg/Test/civl/reserve.bpl:100:requires {:layer 1} mutatorAddr(tid);
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-101-requires {:layer 1} Invariant(NumFreeAtOrAfter, AllocatingAtOrAfter, Free, freeSpace);
##############################################
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-110-
boogie-2.4.1+dfsg/Test/civl/reserve.bpl:111:    assert {:layer 1} memAddr(memLo) ==> (forall v: int :: memAddr(v) && memLo <= v ==> Subset(AllocatingAtOrAfter[v], AllocatingAtOrAfter[memLo]));
boogie-2.4.1+dfsg/Test/civl/reserve.bpl:112:    assert {:layer 1} memAddr(memLo) ==> (forall v: int :: memAddr(v) && v <= memLo ==> Subset(AllocatingAtOrAfter[memLo], AllocatingAtOrAfter[v]));
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-113-
##############################################
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-119-    while (i < memHi)
boogie-2.4.1+dfsg/Test/civl/reserve.bpl:120:    invariant {:layer 1} memAddr(i);
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-121-    invariant {:layer 1} Invariant(NumFreeAtOrAfter, AllocatingAtOrAfter, Free, freeSpace);
##############################################
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-123-    {
boogie-2.4.1+dfsg/Test/civl/reserve.bpl:124:        assert {:layer 1} memAddr(i+1) ==> (forall v: int :: memAddr(v) && i+1 <= v ==> Subset(AllocatingAtOrAfter[v], AllocatingAtOrAfter[i+1]));
boogie-2.4.1+dfsg/Test/civl/reserve.bpl:125:        assert {:layer 1} memAddr(i+1) ==> (forall v: int :: memAddr(v) && v <= i+1 ==> Subset(AllocatingAtOrAfter[i+1], AllocatingAtOrAfter[v]));
boogie-2.4.1+dfsg/Test/civl/reserve.bpl-126-
##############################################
boogie-2.4.1+dfsg/Test/test21/MapAxiomsConsistency.bpl-60-
boogie-2.4.1+dfsg/Test/test21/MapAxiomsConsistency.bpl:61:procedure Node.ReverseInPlace(this: ref where this != null && $Heap[this, alloc]) returns (reverse: ref where reverse == null || $Heap[reverse, alloc]);
boogie-2.4.1+dfsg/Test/test21/MapAxiomsConsistency.bpl-62-  // user-defined preconditions
##############################################
boogie-2.4.1+dfsg/Test/test21/MapAxiomsConsistency.bpl-73-
boogie-2.4.1+dfsg/Test/test21/MapAxiomsConsistency.bpl:74:procedure CheckWellformed$$Node.Valid(this: ref where this != null && $Heap[this, alloc]);
boogie-2.4.1+dfsg/Test/test21/MapAxiomsConsistency.bpl-75-
##############################################
boogie-2.4.1+dfsg/Test/test21/MapAxiomsConsistency.bpl-81-{
boogie-2.4.1+dfsg/Test/test21/MapAxiomsConsistency.bpl:82:  var current: ref where current == null || $Heap[current, alloc], $PreLoopHeap0: HeapType, nx: ref where nx == null || $Heap[nx, alloc];
boogie-2.4.1+dfsg/Test/test21/MapAxiomsConsistency.bpl-83-