a=aoccV4V0V2a+V3c1aoccV4V1V2a+V3c1Aa=aoccV4V0V2a+V3c1aoccV4V1V2a+V3c1ItONa=V4a@V0V3Oa=V4a@V0V3Aa=aocca@V0V3V1V2a+V3c1a+c1aocca@V0V3V1a+V2c1a+V3c1Aa=aocca@V0V3V0V2a+V3c1a+c1aocca@V0V3V0V2V3Ia>V2a+V5c1Aa=aoccV4V0V2a+V3c1aoccV4V1V2a+V3c1Aa=aoccV4V0V2a+V3c1aoccV4V1V2a+V3c1ItONa=V4a@V0V3Oa=V4a@V0V3Aa=aocca@V0V3V1V2a+V3c1a+c1aocca@V0V3V1a+V2c1a+V3c1Aa=aocca@V0V3V0V2a+V3c1a+c1aocca@V0V3V0V2V3Ia=aoccV4V0V2a+V5c1aoccV4V1a+V2c1a+a+V5c1c1Aa=aoccV4V0V2a+V6c1aoccV4V1a+V2c1a+a+V6c1c1Ia=aoccV4V0V2V6aoccV4V1a+V2c1a+V6c1Aa<=V6V5Aa<=V2V6FAa=aoccV4V0V2V2aoccV4V1a+V2c1a+V2c1Ia<=V2a+V5c1La-V3c1Ia=a@V1V2a@V0V3Aa=a@V1V7a@V0a-V7c1Ia<=V7V3Aa<V2V7FAa<=V2V3Aa<=c0V2F
VC for occ_shift
a=aoccV4V0V2a+V3c1aoccV4V1V2a+V3c1Ia=a@V1V2a@V0V3Ia=a@V1V5a@V0a-V5c1Ia<=V5V3Aa<V2V5FIa<=V2V3Aa<=c0V2F
a<=c1a+a-alengthaac1c1
a<=c0ai
a<=aiaj
a<ajc1
a<=aaaaiaaaaj
loop invariant init
a<=aaaV6aaaV7Ia<V7c1Aa<=V6V7Aa<=c0V6F
apermut_subaaaac0alengthaa
a=alengthaa1alengthaa
a<=c1ak
a<=aka-alengthaac1
a<=aaa1V6aaa1V7Ia<V7akAa<=V6V7Aa<=c0V6F
apermut_subaaaa1c0alengthaa1
a<akalengthaa1Aa<=c0ak
index in array bounds
a<=akakAa<=c0akAa<=c0c0
a<aic0
a<=aaa1aiav
a<=aaa1V8avIa<V8c0Aa<=c0V8F
a<=akai
a<aiak
a<avaaa1ai
a<=c0aleft
a<=aleftaright
a<=arightak
a<=aaa1V8avIa<V8aleftAa<=c0V8F
a<avaaa1V9Ia<V9akAa<=arightV9F
a<aleftaright
Na=c2c0
precondition
a<amidalengthaa1Aa<=c0amid
a<avaaa1amid
a=aright1amid
a<a-aright1alefta-arightaleftAa<=c0a-arightaleft
loop variant decrease
a<=aright1akAa<=aleftaright1Aa<=c0aleft
loop invariant preservation
a<aialeft
a<=aaa1V10avIa<V10aleftAa<=c0V10F
a<=aright1ai
Na<avaaa1amid
a=aleft1a+amidc1
a<a-arightaleft1a-arightaleftAa<=c0a-arightaleft
a<=arightakAa<=aleft1arightAa<=c0aleft1
a<aialeft1
a<=aaa1V10avIa<V10aleft1Aa<=c0V10F
a<=arightai
Na<aleftaright
a<=a+alefta-akaleftalengthaa1Aa<=c0a-akaleftAa<=c0aleft
a<=a+a+aleftc1a-akaleftalengthaa1Aa<=c0a+aleftc1
a=alengthaa2alengthaa1
a=aaa2V10aaa1V10Ia<V10alengthaa2Aa<=a+a+aleftc1a-akaleftV10Oa<V10a+aleftc1Aa<=c0V10F
a=aaa2V11aaa1a-a+aleftV11a+aleftc1Ia<V11a+a+aleftc1a-akaleftAa<=a+aleftc1V11F
a<aleftalengthaa2Aa<=c0aleft
a=alengthaa3alengthaa2
a=aeltsaa3asetaeltsaa2aleftav
a=aa3aaa2aleftav
amap_eq_subaeltsaa1aeltsaa3c0aleft
assertion
apermutaa1aa3alefta+akc1
amap_eq_subaeltsaa1aeltsaa3a+akc1alengthaa1
amap_eq_subaeltsaa1aeltsaa3a+akc1alengthaa1Aapermutaa1aa3alefta+akc1Aamap_eq_subaeltsaa1aeltsaa3c0aleft
apermut_subaa1aa3alefta+akc1
apermut_subaa1aa3c0alengthaa3
a<aja+akc1
a<=aaa3aiaaa3aj
a<=aaa3V12aaa3V13Ia<V13a+akc1Aa<=V12V13Aa<=c0V12F
apermut_subaaaa3c0alengthaa3
a<=aaa1V6aaa1V7Ia<V7a+a-alengthaac1c1Aa<=V6V7Aa<=c0V6F
a<ajalengthaa1
a<=aaa1aiaaa1aj
postcondition
a<=aaa1V8aaa1V9Ia<V9alengthaa1Aa<=V8V9Aa<=c0V8F
a>c1a+a-alengthaac1c1
apermut_subaaaac0alengthaaAa<=aaaV6aaaV7Ia<V7alengthaaAa<=V6V7Aa<=c0V6F
out of loop bounds
apermut_subV6V6c0alengthV6Aa<=aV6V8aV6V9Ia<V9alengthV6Aa<=V8V9Aa<=c0V8FIa>c1a+V7c1Aapermut_subV6V10c0alengthV10Aa<=aV10V11aV10V12Ia<V12alengthV10Aa<=V11V12Aa<=c0V11FIapermut_subV6V10c0alengthV10Aa<=aV10V13aV10V14Ia<V14a+V7c1Aa<=V13V14Aa<=c0V13FAiapermut_subV6V22c0alengthV22Aa<=aV22V23aV22V24Ia<V24a+V15c1Aa<=V23V24Aa<=c0V23FAapermut_subV10V22c0alengthV22Aapermut_subV10V22V18a+V15c1Ia=V22aV21V18V16Aa=aeltsV22asetaeltsV21V18V16Ia=alengthV22alengthV21FAa<V18alengthV21Aa<=c0V18Ia=aV21V25aV10a-a+V18V25V20Ia<V25a+V20V19Aa<=V20V25FAa=aV21V26aV10V26Ia<V26alengthV21Aa<=a+V20V19V26Oa<V26V20Aa<=c0V26FIa=alengthV21alengthV10FAa<=a+V20V19alengthV10Aa<=c0V20Aa<=a+V18V19alengthV10Aa<=c0V19Aa<=c0V18La+V18c1La-V15V18ia<V16aV10V29Ia<V29V15Aa<=V17V29FAa<=aV10V30V16Ia<V30V28Aa<=c0V30FAa<=V17V15Aa<=V28V17Aa<=c0V28Aa<a-V17V28a-V17V18Aa<=c0a-V17V18Ia=V28a+V27c1Fa<V16aV10V32Ia<V32V15Aa<=V31V32FAa<=aV10V33V16Ia<V33V18Aa<=c0V33FAa<=V31V15Aa<=V18V31Aa<=c0V18Aa<a-V31V18a-V17V18Aa<=c0a-V17V18Ia=V31V27Fa<V16aV10V27Aa<V27alengthV10Aa<=c0V27
VC for binary_sort

fb1658fd831637cb87c980f7b4be9a9c 1H0
528fff88ceb7a5a3c0b1198ad60328ae 80H79H2
133a871b4b4f0f0f08310a484f8e2e70 8H7H6H5H4H3H2
1831df1d7241a0b85b41211acbdd4fc5 8H10H9H3H2
5bc9bdfa138c6148f64634deaf75a4dd 17H16H15H14H13H12H11H3H2
623825ade8aefbbb5210855edf2aee3c 8H18H15H14H13H12H11H3H2
090d19cd3c0f25ff8f33ae4bf7a9bc97 8H20H19H4H18H15H14H13H12H11H3H2
9339f1bddd214766ab622cfde7ded389 8H24H23H22H21H18H15H14H13H12H11H3H2
a69a90b13bf54e08827214a7139d2baf 32H31H30H29H28H27H26H25H15H14H13H12H11H3H2
9abc7056e384ae2ea452509fb8f92449 17H33H30H29H28H27H26H25H15H14H13H12H11H3H2
4ee7cea2dcfe499af5080d0855f869c1 37H36H35H34H30H29H28H27H26H25H15H14H13H12H11H3H2
7389bbcd5ef57d818e66128843d59e30 39H38H35H34H30H29H28H27H26H25H15H14H13H12H11H3H2
c2d43eff6b133f062be2086d282c5fad 39H20H40H4H38H35H34H30H29H28H27H26H25H15H14H13H12H11H3H2
65b6966ddec0395440235a29899ca0c5 39H24H23H42H41H38H35H34H30H29H28H27H26H25H15H14H13H12H11H3H2
9b92788ce6ef96c7c1a9309f10e4a087 37H45H44H43H30H29H28H27H26H25H15H14H13H12H11H3H2
85a7a1487fe018b0f171f66ccabd7073 39H46H44H43H30H29H28H27H26H25H15H14H13H12H11H3H2
5b27bce1aa42a690f0867f7310ce7638 39H20H47H4H46H44H43H30H29H28H27H26H25H15H14H13H12H11H3H2
2028231cee2d76d1e48187cf2d1b6d70 39H24H23H49H48H46H44H43H30H29H28H27H26H25H15H14H13H12H11H3H2
dd3267b20175967ed7dde62c3a7b006b 32H51H50H29H28H27H26H25H15H14H13H12H11H3H2
bcd4b87e13e6024e66accb50e983636b 32H52H51H50H29H28H27H26H25H15H14H13H12H11H3H2
c3549b988f4bdbd3a15166a835a26b9b 17H56H55H54H53H50H29H28H27H26H25H15H14H13H12H11H3H2
46166e0d6ffc940e413e06b8b6f00cd7 61H65H59H58H57H55H54H53H50H29H28H27H26H25H15H14H13H12H11H3H2
5e5adfe1e5e263f2f9b7ed590fdc6501 61H64H59H58H57H55H54H53H50H29H28H27H26H25H15H14H13H12H11H3H2
e5af7aac7aba8cbe8c5429284da450b9 61H60H59H58H57H55H54H53H50H29H28H27H26H25H15H14H13H12H11H3H2
b7d9f183e55f9e29a583359395858266 61H62H59H58H57H55H54H53H50H29H28H27H26H25H15H14H13H12H11H3H2
c0c80ac42ba359349ebb5265f36cd9bb 61H63H59H58H57H55H54H53H50H29H28H27H26H25H15H14H13H12H11H3H2
bb8fd3384305a4195a21dc831718341b 61H66H65H59H58H57H55H54H53H50H29H28H27H26H25H15H14H13H12H11H3H2
6806b32960942b9e78b773ed25c81048 39H68H67H5H4H66H65H59H58H57H55H54H53H50H29H28H27H26H25H15H14H13H12H11H3H2
4ec49eac7de5615f5b595e1e320bf796 39H70H69H66H65H59H58H57H55H54H53H50H29H28H27H26H25H15H14H13H12H11H3H2
e0ddf9fb06d4a5542c078dc1b0eca4e8 74H73H72H5H4H15H71H11H3H2
d8f043a4c6a8d26346f78f49e37bc6a9 74H15H75H15H71H11H3H2
f52f6f10fb81c350304bac28a551fb2e 78H77H76H2
