a<=V1V0Aa<=c0V1Aa>=V0c0E
VC for queue
a<=acreditsV0asizeV0Aa<=c0acreditsV0Aa>=asizeV0c0FacreditsV0asizeV0
a>=anc0
a=asizeaoc0
a=acreditsaoc0
a<=c0a+a-anc1c1
a=acreditsaoc0Aa=asizeaoacreditsao
loop invariant init
a=aclocka+aclockc0
a<=c0ak
a<=aka-anc1
a=asizeaqacreditsaq
a=acreditsaqak
a=aclocka+aclock1ak
a=aclock2a+aclockc1
a=asizeaq1a+asizeaqc1
a=acreditsaq1a+acreditsaqc1
a=acreditsaq1a+akc1Aa=asizeaq1acreditsaq1
loop invariant preservation
a=aclock2a+aclock1a+akc1
a=acreditsaqa+a-anc1c1
a=aclocka+aclock1a+a-anc1c1
a=asizeaqa-anc0
a=aclocka+a+aclock1acreditsaqc0
a=asizeaq1a-anak
a=aclock2a+a+aclock1acreditsaq1ak
a>asizeaq1c0
precondition
a=asizeara-asizeaq1c1
a<=acreditsaracreditsaq1
a=aclock3a-a+a+aclock2c1acreditsaracreditsaq1
a=aq2ar
a=asizeaq2a-ana+akc1
a=aclock3a+a+aclock1acreditsaq2a+akc1
a=asizeaq1a-ana+a-anc1c1
a=aclock2a+a+aclock1acreditsaq1a+a-anc1c1
a<=aclock2a+aclock1a*c2an
postcondition
a>c0a+a-anc1c1
a<=aclocka+aclock1a*c2an
a<=aclocka+aclocka*c2anIa>c0a+a-anc1c1Aa<=V2a+aclocka*c2anIa=V2a+a+aclockacreditsV1a+a-anc1c1Aa=asizeV1a-ana+a-anc1c1Aa=V4a+a+aclockacreditsV6a+V3c1Aa=asizeV6a-ana+V3c1Ia=V6V5FIa=V4a-a+a+V2c1acreditsV5acreditsV1Aa<=acreditsV5acreditsV1Aa=asizeV5a-asizeV1c1FFAa>asizeV1c0Ia=V2a+a+aclockacreditsV1V3Aa=asizeV1a-anV3Aa<=V3a-anc1Aa<=c0V3FFAa=aclocka+a+aclockacreditsaoc0Aa=asizeaoa-anc0Ia<=c0a+a-anc1c1
out of loop bounds
a<=V1a+V1a*c2V2Ia>c0a+V5c1Aa<=V7a+V1a*c2V2Ia=V7a+a+V1acreditsV6a+V5c1Aa=asizeV6a-V2a+V5c1Aa=V9a+a+V1acreditsV11a+V8c1Aa=asizeV11a-V2a+V8c1Ia=V11V10FIa=V9a-a+a+V7c1acreditsV10acreditsV6Aa<=acreditsV10acreditsV6Aa=asizeV10a-asizeV6c1FFAa>asizeV6c0Ia=V7a+a+V1acreditsV6V8Aa=asizeV6a-V2V8Aa<=V8V5Aa<=c0V8FFAa=V1a+a+V1acreditsV3c0Aa=asizeV3a-V2c0Ia<=c0a+V5c1La-V2c1Ia>c0a+V4c1Aa<=V13a+V1a*c2V2Ia>c0a+V14c1Aa<=V16a+V1a*c2V2Ia=V16a+a+V1acreditsV15a+V14c1Aa=asizeV15a-V2a+V14c1Aa=V18a+a+V1acreditsV20a+V17c1Aa=asizeV20a-V2a+V17c1Ia=V20V19FIa=V18a-a+a+V16c1acreditsV19acreditsV15Aa<=acreditsV19acreditsV15Aa=asizeV19a-asizeV15c1FFAa>asizeV15c0Ia=V16a+a+V1acreditsV15V17Aa=asizeV15a-V2V17Aa<=V17V14Aa<=c0V17FFAa=V13a+a+V1acreditsV12c0Aa=asizeV12a-V2c0Ia<=c0a+V14c1La-V2c1Ia=V13a+V1a+V4c1Aa=acreditsV12a+V4c1Aa=asizeV12acreditsV12Aa=V22a+V1a+V21c1Aa=acreditsV24a+V21c1Aa=asizeV24acreditsV24Ia=V24V23FIa=acreditsV23a+acreditsV12c1Aa=V22a+V13c1Aa=asizeV23a+asizeV12c1FFIa=V13a+V1V21Aa=acreditsV12V21Aa=asizeV12acreditsV12Aa<=V21V4Aa<=c0V
VC for client

436ca9d86786922b4cfeca8651194833 1H0
294c95a589ec274e40fed62eea9fcd8e 44H43H2
32247c19aab7197048008f77159c4030 8H7H6H5H4H3H2
ddb582f5bcaef3be73857ff000aa896e 8H9H7H6H5H4H3H2
ba119f53f36231a79a8961833f1d18c9 19H18H17H16H15H14H13H12H11H10H6H5H4H3H2
6b0dbaf100bbf83facb496f49159c6c3 19H20H18H17H16H15H14H13H12H11H10H6H5H4H3H2
3b14a7694f966aedaf94d98d1566579e 8H23H6H22H21H12H6H5H4H3H2
7f2726b3adbb4793f21bf72b81b4ea24 8H24H23H6H22H21H12H6H5H4H3H2
3f60d24f25d76227ddade3cc596dde0a 28H27H26H25H11H10H6H22H21H12H6H5H4H3H2
e0f0d3df69ff02fefd1bd5c8ed5e82f3 19H33H32H31H30H29H26H25H11H10H6H22H21H12H6H5H4H3H2
b7deedb61d22a6fa3a7ef19e2a5a8e3f 19H34H33H32H31H30H29H26H25H11H10H6H22H21H12H6H5H4H3H2
2f9e383a2f39ef1ffdd82612b87d65b1 38H37H36H35H6H22H21H12H6H5H4H3H2
6da6a181d30be3c718bc524e9173ba9a 38H40H39H22H21H12H6H5H4H3H2
2437fe17df013bcdb9c45c66a758b08e 42H41H39H5H4H3H2
