a<=c0alengthV0Aa<=c0c0Aa<=c0c0Ia=alengthV0c1Aa=aV0V1adummy_charIa<V1c1Aa<=c0V1FFAa>=c1c0
VC for buffer
a<=arV0alengthadataV0Aa<=alV0arV0Aa<=c0alV0FarV0alV0adataV0
a=ab_dataadataabAa=ab_lalabAa=ab_rarab
Na=alabc0
a<a-alabc1alengthadataabAa<=c0a-alabc1
index in array bounds
a<a-arabc1alengthadataabAa<=c0a-arabc1
a=alengthaadataaba-arabc1aadataaba-alabc1alengthadataab
a=aeltsaadataaba-arabc1aadataaba-alabc1asetaeltsadataaba-arabc1aadataaba-alabc1
a<=a-arabc1alengthaadataaba-arabc1aadataaba-alabc1Aa<=a-alabc1a-arabc1Aa<=c0a-alabc1
type invariant
a=aadataaba-arabc1aadataaba-alabc1adataab1Aa=a-alabc1alab1Aa=a-arabc1arab1
ia=acursor_posab1a-acursor_posabc1a=ab1aba=alabc0
postcondition
asame_contentsab1ab
NNa=alabc0
ia=acursor_posaba-acursor_posabc1ta=alabc0
asame_contentsabab
iasame_contentsV1V1Aia=acursor_posV1a-acursor_posV1c1ta=alV1c0ItAtasame_contentsV12V1Aia=acursor_posV12a-acursor_posV1c1a=V12V1a=alV1c0Ia=V15adataV12Aa=V14alV12Aa=V13arV12Aa<=V13alengthV15Aa<=V14V13Aa<=c0V14Ia=V15aV10V8V11Aa=aeltsV15asetaeltsV10V8V11Ia=V13V8Aa=V14V9Aa=alengthV15alengthV10Ia=alengthV15alengthV10FAa<V8alengthV10Aa<=c0V8LaV10V9Aa<V9alengthV10Aa<=c0V9Ia=V8a-V5c1Aa=V9V6Aa=V10V7FIa=V5arV1Aa=V6a-alV1c1Aa=V7adataV1FNa=alV1c0Ia=V4adataV1Aa=V3alV1Aa=V2arV1F
VC for left
Na=arabalengthadataab
a<arabalengthadataabAa<=c0arab
a<alabalengthadataabAa<=c0alab
a=alengthaadataabalabaadataabarabalengthadataab
a=aeltsaadataabalabaadataabarabasetaeltsadataabalabaadataabarab
a<=a+arabc1alengthaadataabalabaadataabarabAa<=a+alabc1a+arabc1Aa<=c0a+alabc1
a=aadataabalabaadataabarabadataab1Aa=a+alabc1alab1Aa=a+arabc1arab1
ia=acursor_posab1a+acursor_posabc1a=ab1aba=arabalengthadataab
NNa=arabalengthadataab
ia=acursor_posaba+acursor_posabc1ta=arabalengthadataab
iasame_contentsV1V1Aia=acursor_posV1a+acursor_posV1c1ta=arV1alengthadataV1ItAtasame_contentsV16V1Aia=acursor_posV16a+acursor_posV1c1a=V16V1a=arV1alengthadataV1Ia=V19adataV16Aa=V18alV16Aa=V17arV16Aa<=V17alengthV19Aa<=V18V17Aa<=c0V18Ia=V17a+V13c1Aa=V18V14Aa=V19V15FIa=V13V10Aa=V14a+V11c1Aa=V15V12FIa=V12aV9V8V7Aa=aeltsV12asetaeltsV9V8V7Ia=V10arV1Aa=V11alV1Aa=alengthV12alengthadataV1Ia=alengthV12alengthV9FAa<V8alengthV9Aa<=c0V8LadataV1LalV1LaV6V5Aa<V5alengthV6Aa<=c0V5LadataV1LarV1Na=arV1alengthadataV1Ia=V4adataV1Aa=V3alV1Aa=V2arV1F
VC for right
a>=a+alengthadataabakc0
array creation size
a=aandataV1adummy_charIa<V1a+alengthadataabakAa<=c0V1F
a=alengthandataa+alengthadataabak
a<=a+c0alabalengthadataabAa<=c0alabAa<=c0c0
precondition
a<=a+c0alabalengthandataAa<=c0c0
a=alengthandata1alengthandata
a=aandata1V2aandataV2Ia<V2alengthandata1Aa<=a+c0alabV2Oa<V2c0Aa<=c0V2F
a=aandata1V3aadataaba-a+c0V3c0Ia<V3a+c0alabAa<=c0V3F
a<=a+araba-alengthadataabarabalengthadataabAa<=c0a-alengthadataabarabAa<=c0arab
a<=a+a+arabaka-alengthadataabarabalengthandata1Aa<=c0a+arabak
a=alengthandata2alengthandata1
a=aandata2V4aandata1V4Ia<V4alengthandata2Aa<=a+a+arabaka-alengthadataabarabV4Oa<V4a+arabakAa<=c0V4F
a=aandata2V5aadataaba-a+arabV5a+arabakIa<V5a+a+arabaka-alengthadataabarabAa<=a+arabakV5F
a<=a+arabakalengthandata2Aa<=alaba+arabakAa<=c0alab
a=andata2adataab1Aa=alabalab1Aa=a+arabakarab1
a=alab1alab
a=arab1a+arabak
asame_contentsV18V1Aa=arV18a+arV1akAa=alV18alV1Ia=V21adataV18Aa=V20alV18Aa=V19arV18Aa<=V19alengthV21Aa<=V20V19Aa<=c0V20Ia=V19V15Aa=V20V16Aa=V21V14FIa=V15a+arV1akAa=V16alV1Aa=V17adataV1FIa=aV14V22aV13a-a+V12V22V11Ia<V22a+V11V10Aa<=V11V22FAa=aV14V23aV9V23Ia<V23alengthV14Aa<=a+V11V10V23Oa<V23V11Aa<=c0V23FIa=alengthV14alengthV9FAa<=a+V11V10alengthV9Aa<=c0V11Aa<=a+V12V10alengthV13Aa<=c0V10Aa<=c0V12LadataV1LarV1La+arV1akLa-alengthadataV1arV1Ia=aV9V24aV8a-a+c0V24c0Ia<V24a+c0V7Aa<=c0V24FAa=aV9V25aV6V25Ia<V25alengthV9Aa<=a+c0V7V25Oa<V25c0Aa<=c0V25FIa=alengthV9alengthV6FAa<=a+c0V7alengthV6Aa<=c0c0Aa<=a+c0V7alengthV8Aa<=c0V7Aa<=c0c0LadataV1LalV1Ia=alengthV6V5Aa=aV6V26adummy_charIa<V26V5Aa<=c0V26FFAa>=V5c0La+alengthadataV1akIa=V4adataV1Aa=V3alV1Aa=V2arV1F
VC for grow
a=alabarab
a=ab_data1adataab1Aa=alabalab1Aa=ab_r1arab1
a<alab1alengthadataab1Aa<=c0alab1
a=alengthaadataab1alab1axalengthadataab1
a=aeltsaadataab1alab1axasetaeltsadataab1alab1ax
a<=arab1alengthaadataab1alab1axAa<=a+alab1c1arab1Aa<=c0a+alab1c1
a=aadataab1alab1axadataab2Aa=a+alab1c1alab2Aa=arab1arab2
a=acursor_posab2a+acursor_posabc1
acontents_insertedab2abaxalab
Na=alabarab
a=alengthaadataabalabaxalengthadataab
a=aeltsaadataabalabaxasetaeltsadataabalabax
a<=arabalengthaadataabalabaxAa<=a+alabc1arabAa<=c0a+alabc1
a=aadataabalabaxadataab1Aa=a+alabc1alab1Aa=arabarab1
a=acursor_posab1a+acursor_posabc1
acontents_insertedab1abaxalab
iacontents_insertedV11V1V5alV1Aa=acursor_posV11a+acursor_posV1c1Ia=V14adataV11Aa=V13alV11Aa=V12arV11Aa<=V12alengthV14Aa<=V13V12Aa<=c0V13Ia=V12V8Aa=V13a+V9c1Aa=V14V10FIa=V10aV7V6V5Aa=aeltsV10asetaeltsV7V6V5Ia=V8arV1Aa=V9alV1Aa=alengthV10alengthadataV1Ia=alengthV10alengthV7FAa<V6alengthV7Aa<=c0V6LadataV1LalV1acontents_insertedV24V1V5alV1Aa=acursor_posV24a+acursor_posV1c1Ia=V27adataV24Aa=V26alV24Aa=V25arV24Aa<=V25alengthV27Aa<=V26V25Aa<=c0V26Ia=V25V21Aa=V26a+V22c1Aa=V27V23FIa=V23aV20V19V5Aa=aeltsV23asetaeltsV20V19V5Ia=V21arV15Aa=V22alV15Aa=alengthV23alengthadataV15Ia=alengthV23alengthV20FAa<V19alengthV20Aa<=c0V19LadataV15LalV15Iasame_contentsV15V1Aa=arV15a+arV1akAa=alV15alV1Ia=V18adataV15Aa=V17alV15Aa=V16arV15Ia=V17alV1FItAta=alV1arV1Ia=V4adataV1Aa=V3alV1Aa=V2arV1FF
VC for insert
a<=arabalengthadataabAa<=a-alabc1arabAa<=c0a-alabc1
a=adataabadataab1Aa=a-alabc1alab1Aa=arabarab1
iacontents_deletedab1aba-alabc1Aa=acursor_posab1a-acursor_posabc1a=ab1aba=acursor_posabc0
iacontents_deletedababa-alabc1Aa=acursor_posaba-acursor_posabc1ta=acursor_posabc0
iiacontents_deletedV1V1a-alV1c1Aa=acursor_posV1a-acursor_posV1c1ta=acursor_posV1c0ItAtiacontents_deletedV5V1a-alV1c1Aa=acursor_posV5a-acursor_posV1c1a=V5V1a=acursor_posV1c0Ia=V8adataV5Aa=V7alV5Aa=V6arV5Aa<=V6alengthV8Aa<=V7V6Aa<=c0V7Ia=V6arV1Aa=V7a-alV1c1Aa=V8adataV1FNa=alV1c0Ia=V4adataV1Aa=V3alV1Aa=V2arV1F
VC for delete

0d80c9baa2c85af5222f242e0c6d3dde 1H0
92f35b95f43c444671c0759ec0c8cf5f 20H19H2
9920547f6a7e3761cae81d65b6974623 6H5H4H3H2
3ccdd2a024a14ca8d645ac7a57f0dfbc 6H7H4H3H2
761e6d197143b699264dc19bf0be5673 11H10H9H8H8H4H3H2
552906443518f5ab468c5d7d5e14f67f 14H13H12H9H8H8H4H3H2
50a58048f4ca3d62e95030a7883be47e 14H15H13H12H9H8H8H4H3H2
ebe9f9d883a582f0239342ff8298ebaa 14H17H16H3H2
79600860c1167edf73a4329183b31163 14H18H17H16H3H2
2473d1f68a982b2306ce4f2ed6aa6aab 32H31H2
0554f72f9380626713aaa99043530d65 6H22H21H3H2
e449dc9fbdd7ff090f348a441e610a39 6H23H21H3H2
b8204ad9c7db7df4ff58ce5c5a9a9e1a 11H26H25H24H24H21H3H2
6e6afe47e36bb50843352c3db95971aa 14H28H27H25H24H24H21H3H2
18f735f3974360d427da7778a4d8e08e 14H15H28H27H25H24H24H21H3H2
34dbbc3846d60f8dabd2c1d8f4985655 14H30H29H3H2
8cebfe836d62fd638c7194048099e5a2 14H18H30H29H3H2
2e43bdf2335dd84862ca1a31ec592054 53H52H2
ee2748d7d37381cc53795d44b334fe39 34H33H3H2
7022545c2bad0dc45467babf3922bd7b 38H37H36H35H3H2
60fe85097000e78cb7516f40126a4b07 38H39H37H36H35H3H2
ea28358079744ed769a7c954624baf3d 38H43H42H41H40H36H35H3H2
96b144061de812cbd1e5fd4988e0bb5c 38H44H43H42H41H40H36H35H3H2
50996eab0abedf1d08cf7623565a539e 11H48H47H46H45H42H41H40H36H35H3H2
c42557c73ede6c9270aec92afc1df5f3 14H50H49H47H46H45H42H41H40H36H35H3H2
248cec3c153c226247c60041835bfb58 14H51H50H49H47H46H45H42H41H40H36H35H3H2
f51a350b8b8436d8a730c81eccb72cc5 14H15H51H50H49H47H46H45H42H41H40H36H35H3H2
491aa9df4d374407a20cd01f420cf8b7 71H70H2
8c5dd496aa25b1ab5c6f8e2676b78a09 6H56H15H51H50H55H54H3H2
fda97082e46f5678be7c343e3cfff26d 11H59H58H57H57H15H51H50H55H54H3H2
a1e3c9d56587c6964d47f4461f80fa55 14H61H60H58H57H57H15H51H50H55H54H3H2
a0f164ca14ea83778a30b773394abd41 14H62H61H60H58H57H57H15H51H50H55H54H3H2
af3b9efcaa5775142b10562ebb0ff0fb 6H23H63H3H2
c90dc037ccd622e2a39e7d56b6852bcd 11H66H65H64H64H63H3H2
5e0ed6ee203e9cc4ec55b7519a90a2f2 14H68H67H65H64H64H63H3H2
b01323878bd5a7d61f8e238e974993aa 14H69H68H67H65H64H64H63H3H2
7c1756ada40e76c399d5c2b7abc961d8 77H76H2
85f040682cf02fbdcf192cf65c74bfda 11H72H4H3H2
a7015ecbe0299d86e2c6d8565a7ac6e1 14H74H73H4H3H2
07b46d0606c9589c53c998c50451f3eb 14H75H16H3H2
