a<aint63'intatagV0amax_int63Aa<=c0aint63'intatagV0INa=V0adummyF
a=V1V2Ia=atagV1atagV2F
Namemadummyaempty
VC for t
NamemadummyaeltsV3FaeltsV3
amemV4aeltsV5qa=amem1V4V5aTrueINa=V4adummyF
a<aint63'intamax_tagsV6amax_int63Aa<=c-1aint63'intamax_tagsV6Aa<=aint63'intatagV7aint63'intamax_tagsV6IamemV7aeltsV6FF
a==ainterV8V9aemptyIa==aunionV8V9V10Aa==aunionV8V9V10LaemptyLaemptyLaempty
VC for iterator
amemaaeltsV4V6V5INa=aaeltsV4V6adummyIa<V6alengthaeltsV4Aa<=c0V6FIa=aint63'intatagaaeltsV4V7V7INa=aaeltsV4V7adummyIa<V7alengthaeltsV4Aa<=c0V7FAa=aint63'intatagaaeltsV4V8V8INa=aaeltsV4V8adummyIa<V8alengthaeltsV4Aa<=c0V8FINa=aaeltsV4aint63'intatagV9adummyIamemV9V5FANa=aaeltsV4aint63'intatagV10adummyIamemV10V5FIa<aint63'intatagV11alengthaeltsV4IamemV11V5FAa<aint63'intatagV12alengthaeltsV4IamemV12V5FINamemadummyV5ANamemadummyV5LaemptyIa=alength1V4c0Aa=aaeltsV4V13V3Ia<V13c0Aa<=c0V13FFAa>=c0c0F
VC for iteration_state
amemaaeltsavalueV3V4aelts'V3INa=aaeltsavalueV3V4adummyIa<V4alengthaeltsavalueV3Aa<=c0V4FAa=aint63'intatagaaeltsavalueV3V5V5INa=aaeltsavalueV3V5adummyIa<V5alengthaeltsavalueV3Aa<=c0V5FANa=aaeltsavalueV3aint63'intatagV6adummyIamemV6aelts'V3FAa<aint63'intatagV7alengthaeltsavalueV3IamemV7aelts'V3FANamemadummyaelts'V3FavalueV3aelts'V3
a=V8aelts'V9E
a=aelts1V8aelts'aiteratedV8FaiteratedV8aelts1V8
a=aelts1V15aemptyItAtItAtIa=aiteratedV15V11Aa=aelts1V15V14Aa=V19aelts1V15Aa=V18aiteratedV15Aa=V17aelts'V18Aa=V16avalueV18FAa=V14aelts'V11ItAtLaemptyIa=avalueV11V9Aa=aelts'V11V10Aa=V13aelts'V11Aa=V12avalueV11FAamemaaeltsV9V20V10INa=aaeltsV9V20adummyIa<V20alengthaeltsV9Aa<=c0V20FAa=aint63'intatagaaeltsV9V21V21INa=aaeltsV9V21adummyIa<V21alengthaeltsV9Aa<=c0V21FANa=aaeltsV9aint63'intatagV22adummyIamemV22V10FAa<aint63'intatagV23alengthaeltsV9IamemV23V10FANamemadummyV10LaemptyIa=alength1V9c8Aa=aaeltsV9V24adummyIa<V24c8Aa<=c0V24FFAa>=c8c0
VC for create
amemV9aelts1V10qa=V16aTrueIia=V16aFalsea=V16iaTrueaFalsea=V22aTrueAa=V21V18Ia=V22aTrueAa=V22aTrueIa=aint63'intV21aint63'intV18EAa<aint63'intV21amax_int63Aa<=c0aint63'intV21INa=V20adummyLatagV20LaaeltsavalueaiteratedV10aint63'intV19Aa<aint63'intV19amax_int63Aa<=c0aint63'intV19INa=V9adummyLatagV9Aa<aint63'intV18amax_int63Aa<=c0aint63'intV18INa=V17adummyLatagV17Ladummya<aint63'intV15aint63'intalength1avalueaiteratedV10FAa<aint63'intV25aint63'intalength1avalueaiteratedV10Aa<=c0aint63'intV25Ia<aint63'intV25amax_int63Aa<=c0aint63'intV25INa=V9adummyLatagV9Ia<aint63'intV24amax_int63Aa<=c0aint63'intV24INa=V23adummyLatagV23LadummyIa<aint63'intV15aint63'intalength1avalueaiteratedV10Ia<aint63'intV15amax_int63Aa<=c0aint63'intV15INa=V9adummyLatagV9INa=V9adummyAa=V14aelts1V10Aa=V13aiteratedV10Aa=V12aelts'V13Aa=V11avalueV13F
VC for mem
amemV9aelts1V10qa=amem1V9V10aTrueINa=V9adummyF
a<aint63'intV17amax_int63Aa<=c-1aint63'intV17Aa<=aint63'intatagV18aint63'intV17IamemV18aelts1V11FIa=aint63'intV17a-aint63'intV16c1FAain_boundsa-aint63'intV16c1Lalength1avalueaiteratedV11Ia=V15aelts1V11Aa=V14aiteratedV11Aa=V13aelts'V14Aa=V12avalueV14F
VC for max_tags
a<aint63'intamax_tagsV11amax_int63Aa<=c-1aint63'intamax_tagsV11Aa<=aint63'intatagV12aint63'intamax_tagsV11IamemV12aelts1V11FF
a=ah_elts'aelts'ah_iteratedAa=ah_valueavalueah_iterated
a=ah_eltsaelts1ahAa=ah_iteratedaiteratedah
Na=akadummy
a<aint63'intatagakamax_int63Aa<=c0aint63'intatagakINa=akadummy
ain_boundsa+aint63'intatagakc1
integer overflow
a=aint63'intalena+aint63'intatagakc1
a>aint63'intalenaint63'intan
Na=c2c0
division by zero
ain_boundsadivaint63'intamax_intc2
a=aint63'intaoadivaint63'intamax_intc2
ain_boundsa*c2aint63'intiaoana<=ato_intanato_intao
a=aint63'intao1a*c2aint63'intiaoana<=ato_intanato_intao
a>=aint63'intanlenc0
array creation size
a=aaeltsaaV13adummyIa<V13aint63'intanlenAa<=c0V13F
a=alength1aaanlen
a<=c0aint63'intanAa<=c0c0
precondition
a<=a+c0aint63'intanaint63'intalength1avalueaiteratedah
a<=a+c0aint63'intanaint63'intalength1aaAa<=c0c0
a=alength1aa1alength1aa
a=aaeltsaa1V14aaeltsaaV14Ia<V14aint63'intalength1aa1Aa<=a+c0aint63'intanV14Oa<V14c0Aa<=c0V14F
a=aaeltsaa1V15aaeltsavalueaiteratedaha-a+c0V15c0Ia<V15a+c0aint63'intanAa<=c0V15F
Namemadummyaelts'aiteratedah
type invariant
amemavaelts'aiteratedah
a<aint63'intatagavalengthaeltsaa1
a<aint63'intatagV16alengthaeltsaa1IamemV16aelts'aiteratedahF
Na=aaeltsaa1aint63'intatagavadummy
Na=aaeltsaa1aint63'intatagV17adummyIamemV17aelts'aiteratedahF
a<=c0ai
a<aialengthaeltsaa1
Na=aaeltsaa1aiadummy
a=aint63'intatagaaeltsaa1aiai
a=aint63'intatagaaeltsaa1V18V18INa=aaeltsaa1V18adummyIa<V18alengthaeltsaa1Aa<=c0V18F
amemaaeltsaa1aiaelts'aiteratedah
a=aelts'aiteratedahaelts'ah_iterated1Aa=aa1avalueah_iterated1
a=aelts1ahaelts'ah_iterated1
a=aelts1ahaelts1ah1Aa=ah_iterated1aiteratedah1
a<aint63'intatagakaint63'intalength1avalueaiteratedah1
postcondition
Na>aint63'intalenaint63'intan
a<aint63'intatagakaint63'intalength1avalueaiteratedah
ia<aint63'intatagV18aint63'intalength1avalueaiteratedV13ItAtItAta<aint63'intatagV18aint63'intalength1avalueaiteratedV30Ia=V34aelts1V30Aa=V33aiteratedV30Aa=V34aelts'V33Ia=V32aelts'V33Aa=V31avalueV33AamemaaeltsV31V35V32INa=aaeltsV31V35adummyIa<V35alengthaeltsV31Aa<=c0V35FAa=aint63'intatagaaeltsV31V36V36INa=aaeltsV31V36adummyIa<V36alengthaeltsV31Aa<=c0V36FANa=aaeltsV31aint63'intatagV37adummyIamemV37V32FAa<aint63'intatagV38alengthaeltsV31IamemV38V32FANamemadummyV32Ia=V31V29Aa=V32aelts'aiteratedV13Aa=V34aelts1V13FIa=aaeltsV29V39aaeltsV28a-a+c0V39c0Ia<V39a+c0aint63'intV21Aa<=c0V39FAa=aaeltsV29V40aaeltsV27V40Ia<V40aint63'intalength1V29Aa<=a+c0aint63'intV21V40Oa<V40c0Aa<=c0V40FIa=alength1V29alength1V27FAa<=a+c0aint63'intV21aint63'intalength1V27Aa<=c0c0Aa<=a+c0aint63'intV21aint63'intalength1V28Aa<=c0aint63'intV21Aa<=c0c0LavalueaiteratedV13Ia=alength1V27V26Aa=aaeltsV27V41adummyIa<V41aint63'intV26Aa<=c0V41FFAa>=aint63'intV26c0LiV25V20a>=ato_intV20ato_intV25Ia=aint63'intV25a*c2aint63'intV24FAain_boundsa*c2aint63'intV24Li
VC for resize
a=aelts'aiteratedahaelts'ah_iterated1Aa=ah_value1avalueah_iterated1
a<aint63'intatagakaint63'intalength1avalueaiteratedah1Aa<=c0aint63'intatagak
index in array bounds
a=alength1ah_value2alength1avalueaiteratedah1
a=aeltsah_value2aaeltsavalueaiteratedah1aint63'intatagakak
f
Namemadummyaaddakaelts'aiteratedah1
amemavaaddakaelts'aiteratedah1
a<aint63'intatagavalengthaeltsah_value2
a<aint63'intatagV13alengthaeltsah_value2IamemV13aaddakaelts'aiteratedah1F
Na=aaeltsah_value2aint63'intatagavadummy
Na=aaeltsah_value2aint63'intatagV14adummyIamemV14aaddakaelts'aiteratedah1F
a<aialengthaeltsah_value2
Na=aaeltsah_value2aiadummy
a=aint63'intatagaaeltsah_value2aiai
a=aint63'intatagaaeltsah_value2V15V15INa=aaeltsah_value2V15adummyIa<V15alengthaeltsah_value2Aa<=c0V15F
amemaaeltsah_value2aiaaddakaelts'aiteratedah1
a=alength1avalueah_iterated2alength1avalueaiteratedah1
a=aeltsavalueah_iterated2aaeltsavalueaiteratedah1aint63'intatagakak
a=ao_elts'aelts'ah_iterated2Aa=ao_valueavalueah_iterated2
a=aelts'ah_iterated2aaddakaelts'aiteratedah1
a=aaddakaelts1ah1aelts'ah_iterated2
a=aaddakaelts1ah1aelts1ah2Aa=ah_iterated2aiteratedah2
a=aelts1ah2aaddakaelts1ah
a=aaddakaelts'aiteratedah1aelts'ah_iterated2Aa=ah_value2avalueah_iterated2
ia=aelts1V32aaddV18aelts1V13Ia=V36aelts1V32Aa=V35aiteratedV32Aa=V36aelts'V35Ia=V34aelts'V35Aa=V33avalueV35AamemaaeltsV33V37V34INa=aaeltsV33V37adummyIa<V37alengthaeltsV33Aa<=c0V37FAa=aint63'intatagaaeltsV33V38V38INa=aaeltsV33V38adummyIa<V38alengthaeltsV33Aa<=c0V38FANa=aaeltsV33aint63'intatagV39adummyIamemV39V34FAa<aint63'intatagV40alengthaeltsV33IamemV40V34FANamemadummyV34a=aelts1V44aaddV18aelts1V13Ia=V48aelts1V44Aa=V47aiteratedV44Aa=V48aelts'V47ItAtIa=V46aelts'V47Aa=V45avalueV47Aa=V47V41Aa=V48V36FIa=avalueV41V33Aa=aelts'V41V34Aa=V43aelts'V41Aa=V42avalueV41FAamemaaeltsV33V49V34INa=aaeltsV33V49adummyIa<V49alengthaeltsV33Aa<=c0V49FAa=aint63'intatagaaeltsV33V50V50INa=aaeltsV33V50adummyIa<V50alengthaeltsV33Aa<=c0V50FANa=aaeltsV33aint63'intatagV51adummyIamemV51V34FAa<aint63'intatagV52alengthaeltsV33IamemV52V34FANamemadummyV34fIa=aeltsV33aaeltsV28aint63'intV31V18Ia=alength1V33alength1V28Aa=V34V29Aa=V36V30Ia=alength1V33alength1V28FAa<aint63'intV31aint63'intalength1V28Aa<=c0aint63'intV31Ia<aint63'intV31amax_int63Aa<=c
VC for add
a<aint63'intatagakaint63'intalength1avalueaiteratedahAa<=c0aint63'intatagak
a=alength1ah_value1alength1avalueaiteratedah
a=aeltsah_value1aaeltsavalueaiteratedahaint63'intatagakadummy
Namemadummyaremoveakaelts'aiteratedah
amemavaremoveakaelts'aiteratedah
a<aint63'intatagavalengthaeltsah_value1
a<aint63'intatagV13alengthaeltsah_value1IamemV13aremoveakaelts'aiteratedahF
Na=aaeltsah_value1aint63'intatagavadummy
Na=aaeltsah_value1aint63'intatagV14adummyIamemV14aremoveakaelts'aiteratedahF
a<aialengthaeltsah_value1
Na=aaeltsah_value1aiadummy
a=aint63'intatagaaeltsah_value1aiai
a=aint63'intatagaaeltsah_value1V15V15INa=aaeltsah_value1V15adummyIa<V15alengthaeltsah_value1Aa<=c0V15F
amemaaeltsah_value1aiaremoveakaelts'aiteratedah
a=alength1avalueah_iterated1alength1avalueaiteratedah
a=aeltsavalueah_iterated1aaeltsavalueaiteratedahaint63'intatagakadummy
a=ao_elts'aelts'ah_iterated1Aa=ao_valueavalueah_iterated1
a=aelts'ah_iterated1aremoveakaelts'aiteratedah
a=aremoveakaelts1ahaelts'ah_iterated1
a=aremoveakaelts1ahaelts1ah1Aa=ah_iterated1aiteratedah1
a=aelts1ah1aremoveakaelts1ah1
a=aremoveakaelts'aiteratedahaelts'ah_iterated1Aa=ah_value1avalueah_iterated1
Na<aint63'intatagakaint63'intalength1avalueaiteratedah
a<aint63'intatagavalengthaeltsavalueaiteratedah
a<aint63'intatagV13alengthaeltsavalueaiteratedahIamemV13aelts'aiteratedahF
Na=aaeltsavalueaiteratedahaint63'intatagavadummy
Na=aaeltsavalueaiteratedahaint63'intatagV14adummyIamemV14aelts'aiteratedahF
a<aialengthaeltsavalueaiteratedah
Na=aaeltsavalueaiteratedahaiadummy
a=aint63'intatagaaeltsavalueaiteratedahaiai
a=aint63'intatagaaeltsavalueaiteratedahV15V15INa=aaeltsavalueaiteratedahV15adummyIa<V15alengthaeltsavalueaiteratedahAa<=c0V15F
amemaaeltsavalueaiteratedahaiaelts'aiteratedah
a=aelts'ah_iterated1aelts'aiteratedah
a=avalueah_iterated1avalueaiteratedah
a=aelts1aharemoveakaelts1ah
iia=aelts1V14aremoveV13aelts1V14ItAtItAta=aelts1V25aremoveV13aelts1V25Ia=V29aelts1V25Aa=V28aiteratedV25Aa=V29aelts'V28ItAtIa=V27aelts'V28Aa=V26avalueV28Aa=V28V22Aa=V29aelts1V14FIa=avalueV22V20Aa=aelts'V22V21Aa=V24aelts'V22Aa=V23avalueV22FAamemaaeltsV20V30V21INa=aaeltsV20V30adummyIa<V30alengthaeltsV20Aa<=c0V30FAa=aint63'intatagaaeltsV20V31V31INa=aaeltsV20V31adummyIa<V31alengthaeltsV20Aa<=c0V31FANa=aaeltsV20aint63'intatagV32adummyIamemV32V21FAa<aint63'intatagV33alengthaeltsV20IamemV33V21FANamemadummyV21Laelts'aiteratedV14LavalueaiteratedV14fia=aelts1V42aremoveV13aelts1V42Ia=V46aelts1V42Aa=V45aiteratedV42Aa=V46aelts'V45Ia=V44aelts'V45Aa=V43avalueV45AamemaaeltsV43V47V44INa=aaeltsV43V47adummyIa<V47alengthaeltsV43Aa<=c0V47FAa=aint63'intatagaaeltsV43V48V48INa=aaeltsV43V48adummyIa<V48alengthaeltsV43Aa<=c0V48FANa=aaeltsV43aint63'intatagV49adummyIamemV49V44FAa<aint63'intatagV50alengthaeltsV43IamemV50V44FANamemadummyV44a=aelts1V54aremoveV13aelts1V54Ia=V58aelts1V54Aa=V57aiteratedV54Aa=V58aelts'V57ItAtIa=V56aelts'V57Aa=V55
VC for remove
amemV22V20qa<aint63'intatagV22alengthaeltsavalueV16Aa<=c0aint63'intatagV22IamemV22V21FIamemV23V19qa<aint63'intatagV23c0Aa<=c0aint63'intatagV23IamemV23V21FAamemV24V19qa<aint63'intatagV24c0Aa<=c0aint63'intatagV24IamemV24V21FINa=aaeltsavalueV16c0adummyIa<c0alengthaeltsavalueV16ANa=aaeltsavalueV16c0adummyIa<c0alengthaeltsavalueV16Ia<=c0alengthaeltsavalueV16Aa<=c0c0Aa<=c0alengthaeltsavalueV16Aa<=c0c0Ia=V21aelts'V16Aa=V21aelts'V16Ia==V21aunionV19V20Aa==V21aunionV19V20LaemptyLaemptyLaemptyIa=avalueV16V14Aa=aelts'V16V15Aa=V18aelts'V16Aa=V17avalueV16FAamemaaeltsV14V25V15INa=aaeltsV14V25adummyIa<V25alengthaeltsV14Aa<=c0V25FAa=aint63'intatagaaeltsV14V26V26INa=aaeltsV14V26adummyIa<V26alengthaeltsV14Aa<=c0V26FANa=aaeltsV14aint63'intatagV27adummyIamemV27V15FAa<aint63'intatagV28alengthaeltsV14IamemV28V15FANamemadummyV15LaemptyIa=alength1V14c0Aa=aaeltsV14V29V13Ia<V29c0Aa<=c0V29FFAa>=c0c0F
amemV14atodoV13qa<aint63'intatagV14alengthaeltsavalueaiteratingV13Aa<=aint63'intaoffsetV13aint63'intatagV14IamemV14aallV13FAamemV15aseenV13qa<aint63'intatagV15aint63'intaoffsetV13Aa<=c0aint63'intatagV15IamemV15aallV13FANa=aaeltsavalueaiteratingV13aint63'intaoffsetV13adummyIa<aint63'intaoffsetV13alengthaeltsavalueaiteratingV13Aa<=aint63'intaoffsetV13alengthaeltsavalueaiteratingV13Aa<=c0aint63'intaoffsetV13Aa=aallV13aelts'aiteratingV13Aa==aallV13aunionaseenV13atodoV13FaoffsetV13aallV13atodoV13aseenV13aiteratingV13
a<=c0aint63'intalength1avalueaiteratedahAa<=c0c0
loop invariant init
a<=c0aj
a<ajc0
a=aaeltsavalueaiteratedahajadummy
a<=c0aint63'intai
a<=aint63'intaiaint63'intalength1avalueaiteratedah
a=aaeltsavalueaiteratedahV16adummyIa<V16aint63'intaiAa<=c0V16F
a<aint63'intaiaint63'intalength1avalueaiteratedah
a<aint63'intatagadummyamax_int63Aa<=c0aint63'intatagadummyINa=adummyadummy
a<aint63'intaiaint63'intalength1avalueaiteratedahAa<=c0aint63'intai
ia=aTrueaFalsea=V20V18Ia=aTrueaTrueAa=aTrueaTrueIa=aint63'intV20aint63'intV18Aa<aint63'intV20amax_int63Aa<=c0aint63'intV20INa=V19adummyLatagV19Laaeltsavalueaiteratedahaint63'intaiAa<aint63'intV18amax_int63Aa<=c0aint63'intV18INa=V17adummyLatagV17Ladummya<aint63'intaiaint63'intalength1avalueaiteratedah
ain_boundsa+aint63'intaic1
a=aint63'intai1a+aint63'intaic1
a<a-aint63'intalength1avalueaiteratedahaint63'intai1a-aint63'intalength1avalueaiteratedahaint63'intaiAa<=c0a-aint63'intalength1avalueaiteratedahaint63'intai
loop variant decrease
a<=aint63'intai1aint63'intalength1avalueaiteratedahAa<=c0aint63'intai1
loop invariant preservation
a<ajaint63'intai1
ia=aoaFalsea=V20V18Ia=aoaTrueAa=aoaTrueIa=aint63'intV20aint63'intV18Aa<aint63'intV20amax_int63Aa<=c0aint63'intV20INa=V19adummyLatagV19Laaeltsavalueaiteratedahaint63'intaiAa<aint63'intV18amax_int63Aa<=c0aint63'intV18INa=V17adummyLatagV17Ladummya<aint63'intaiaint63'intalength1avalueaiteratedah
Na=aoaTrue
a==aelts1ahaunionaemptyaelts1ah
a=aelts1ahaelts'aiteratedah
a<=aint63'intaialengthaeltsavalueaiteratedahAa<=c0aint63'intai
a<aint63'intaialengthaeltsavalueaiteratedah
Na=aaeltsavalueaiteratedahaint63'intaiadummy
Na=aaeltsavalueaiteratedahaint63'intaiadummyIa<aint63'intaialengthaeltsavalueaiteratedah
amemavaelts1ah
amemavaemptyqa<aint63'intatagavaint63'intaiAa<=c0aint63'intatagav
a<=aint63'intaialengthaeltsavalueaiteratedah
amemV21aemptyqa<aint63'intatagV21aint63'intaiAa<=c0aint63'intatagV21IamemV21aelts1ahF
a<=aint63'intaiaint63'intatagav
a<aint63'intV18amax_int63Aa<=c0aint63'intV18INa=V17adummyLatagV17Ladummy
a<aint63'intV22amax_int63Aa<=c0aint63'intV22INa=V21adummyLatagV21Laaeltsavalueaiteratedahaint63'intaiLatagV19Ladummy
a=aoaTrueIa=aint63'intV26aint63'intV24LatagV25Laaeltsavalueaiteratedahaint63'intaiLatagV23Ladummy
a=V30V28Ia=aoaTrueLatagV29Laaeltsavalueaiteratedahaint63'intaiLatagV27Ladummy
amemV31aemptyqa<aint63'intatagV31aint63'intaiAa<=c0aint63'intatagV31IamemV31aelts1ahF
Na<aint63'intaiaint63'intalength1avalueaiteratedah
Na=aFalseaTrue
amemV17aemptyqa<aint63'intatagV17aint63'intaiAa<=c0aint63'intatagV17IamemV17aelts1ahF
amemavaelts1ahqa<aint63'intatagavalengthaeltsavalueaiteratedahAa<=aint63'intaiaint63'intatagav
a=aresult_elts'aelts'aresult_iteratingAa=aresult_valueavaluearesult_iterating
a=aresult_iteratingaiteratingaresultAa=aresult_seenaseenaresultAa=aresult_todoatodoaresultAa=aresult_allaallaresultAa=aresult_offsetaoffsetaresult
a=aiteratingaresultaiteratedah
a=aseenaresultaempty
a=atodoaresultaelts1ah
a=aallaresultaelts1ah
a=aoffsetaresultai
ia=aallV27aelts1V16Aa=atodoV27aelts1V16Aa=aseenV27aemptyItAtItAtIa=aoffsetV27V21Aa=aallV27V23Aa=atodoV27V24Aa=aseenV27V25Aa=aiteratingV27V26Aa=V34aiteratingV27Aa=V31aseenV27Aa=V30atodoV27Aa=V29aallV27Aa=V28aoffsetV27Aa=V33aelts'V34Aa=V32avalueV34FAamemV35V24qa<aint63'intatagV35alengthaeltsavalueV26Aa<=aint63'intV21aint63'intatagV35IamemV35V23FAamemV36V25qa<aint63'intatagV36aint63'intV21Aa<=c0aint63'intatagV36IamemV36V23FANa=aaeltsavalueV26aint63'intV21adummyIa<aint63'intV21alengthaeltsavalueV26Aa<=aint63'intV21alengthaeltsavalueV26Aa<=c0aint63'intV21Aa=V23aelts'V26Aa==V23aunionV25V24ItAtLaiteratedV16LaemptyLaelts1V16Laelts1V16a=aaeltsavalueaiteratedV16V39adummyIa<V39aint63'intV38Aa<=c0V39FAa<=aint63'intV38aint63'intalength1avalueaiteratedV16Aa<=c0aint63'intV38Aa<a-aint63'intalength1avalueaiteratedV16aint63'intV38a-aint63'intalength1avalueaiteratedV16aint63'intV21Aa<=c0a-aint63'intalength1avalueaiteratedV16aint63'intV21Ia=V38V37FIa=aint63'intV37a+aint63'intV21c1FAain_boundsa+aint63'intV21c1a=V22aTrueIia=V22aFalse
ais_emptyatodoV16qa=V26aTrueIiamemaaeltsavalueaiteratingV16aint63'intaoffsetV16atodoV16AamemaaeltsavalueaiteratingV16aint63'intaoffsetV16aallV16ANa=aaeltsavalueaiteratingV16aint63'intaoffsetV16adummyAa<aint63'intaoffsetV16aint63'intalength1avalueaiteratingV16amemV27aallV16IamemV27atodoV16Fa=V26aTrueAiamemaaeltsavalueaiteratingV16aint63'intaoffsetV16atodoV16IamemaaeltsavalueaiteratingV16aint63'intaoffsetV16aallV16AamemaaeltsavalueaiteratingV16aint63'intaoffsetV16aallV16INa=aaeltsavalueaiteratingV16aint63'intaoffsetV16adummyANa=aaeltsavalueaiteratingV16aint63'intaoffsetV16adummyIa<aint63'intaoffsetV16aint63'intalength1avalueaiteratingV16Aa<aint63'intaoffsetV16aint63'intalength1avalueaiteratingV16amemV28aallV16IamemV28atodoV16Fa=V26aTrueIa=V25V24Ia=V26aTrueAa=V26aTrueIa=aint63'intV25aint63'intV24FLaoffsetV16Lalength1avalueaiteratingV16Ia=V23aiteratingV16Aa=V20aseenV16Aa=V19atodoV16Aa=V18aallV16Aa=V17aoffsetV16Aa=V22aelts'V23Aa=V21avalueV23F
VC for is_empty
a=ai_elts'aelts'ai_iteratingAa=ai_valueavalueai_iterating
a=ai_iteratingaiteratingaiAa=ai_seenaseenaiAa=ai_todoatodoaiAa=ai_allaallaiAa=ai_offsetaoffsetai
Nais_emptyatodoai
a<aint63'intaoffsetaiaint63'intalength1avalueaiteratingai
assertion
a<aint63'intaoffsetaiaint63'intalength1avalueaiteratingaiAa<=c0aint63'intaoffsetai
ain_boundsa+aint63'intaoffsetaic1
a=aint63'intai_offset1a+aint63'intaoffsetaic1
a<=aint63'intai_offset1aint63'intalength1avalueaiteratingaiAa<aint63'intaoffsetaiaint63'intai_offset1
a<aint63'intaoffsetaiaj
a<ajaint63'intai_offset1
a=aaeltsavalueaiteratingaiajadummy
a<aint63'intaoffsetaiaint63'intai_offset2
a<=aint63'intai_offset2aint63'intalength1avalueaiteratingai
a=aaeltsavalueaiteratingaiV16adummyIa<V16aint63'intai_offset2Aa<aint63'intaoffsetaiV16F
a<aint63'intai_offset2aint63'intalength1avalueaiteratingai
a<aint63'intai_offset2aint63'intalength1avalueaiteratingaiAa<=c0aint63'intai_offset2
ia=aTrueaFalsea=V20V18Ia=aTrueaTrueAa=aTrueaTrueIa=aint63'intV20aint63'intV18Aa<aint63'intV20amax_int63Aa<=c0aint63'intV20INa=V19adummyLatagV19Laaeltsavalueaiteratingaiaint63'intai_offset2Aa<aint63'intV18amax_int63Aa<=c0aint63'intV18INa=V17adummyLatagV17Ladummya<aint63'intai_offset2aint63'intalength1avalueaiteratingai
ain_boundsa+aint63'intai_offset2c1
a=aint63'intai_offset3a+aint63'intai_offset2c1
a<a-aint63'intalength1avalueaiteratingaiaint63'intai_offset3a-aint63'intalength1avalueaiteratingaiaint63'intai_offset2Aa<=c0a-aint63'intalength1avalueaiteratingaiaint63'intai_offset2
a<=aint63'intai_offset3aint63'intalength1avalueaiteratingaiAa<aint63'intaoffsetaiaint63'intai_offset3
a<ajaint63'intai_offset3
ia=aoaFalsea=V20V18Ia=aoaTrueAa=aoaTrueIa=aint63'intV20aint63'intV18Aa<aint63'intV20amax_int63Aa<=c0aint63'intV20INa=V19adummyLatagV19Laaeltsavalueaiteratingaiaint63'intai_offset2Aa<aint63'intV18amax_int63Aa<=c0aint63'intV18INa=V17adummyLatagV17Ladummya<aint63'intai_offset2aint63'intalength1avalueaiteratingai
a<ajaint63'intai_offset2
a=aaeltsavalueaiteratingaiV21adummyIa<V21aint63'intai_offset2Aa<aint63'intaoffsetaiV21F
a==aallaiaunionaaddakaseenaiaremoveakatodoai
a=aallaiaelts'aiteratingai
a<=aint63'intai_offset2alengthaeltsavalueaiteratingaiAa<=c0aint63'intai_offset2
a<aint63'intai_offset2alengthaeltsavalueaiteratingai
Na=aaeltsavalueaiteratingaiaint63'intai_offset2adummy
Na=aaeltsavalueaiteratingaiaint63'intai_offset2adummyIa<aint63'intai_offset2alengthaeltsavalueaiteratingai
amemavaallai
amemavaaddakaseenaiqa<aint63'intatagavaint63'intai_offset2Aa<=c0aint63'intatagav
amemV22aaddakaseenaiqa<aint63'intatagV22aint63'intai_offset2Aa<=c0aint63'intatagV22IamemV22aallaiF
amemavaremoveakatodoaiqa<aint63'intatagavalengthaeltsavalueaiteratingaiAa<=aint63'intai_offset2aint63'intatagav
a=aiteratingaiaiteratingai1Aa=aaddakaseenaiaseenai1Aa=aremoveakatodoaiatodoai1Aa=aallaiaallai1Aa=ai_offset2aoffsetai1
amemakatodoai
a=atodoai1aremoveakatodoai
a=aseenai1aaddakaseenai
ia=aseenV49aaddV26aseenV16Aa=atodoV49aremoveV26atodoV16AamemV26atodoV16Ia=V56aiteratingV49Aa=V53aseenV49Aa=V52atodoV49Aa=V51aallV49Aa=V50aoffsetV49AamemV58V52qa<aint63'intatagV58alengthaeltsavalueV56Aa<=aint63'intV50aint63'intatagV58IamemV58V51FAamemV59V53qa<aint63'intatagV59aint63'intV50Aa<=c0aint63'intatagV59IamemV59V51FANa=aaeltsavalueV56aint63'intV50adummyIa<aint63'intV50alengthaeltsavalueV56Aa<=aint63'intV50alengthaeltsavalueV56Aa<=c0aint63'intV50Aa=V51aelts'V56Aa==V51aunionV53V52ItAtAa=aaeltsavalueV56V60adummyIa<V60aint63'intV50Aa<aint63'intaoffsetV16V60Fa=aaeltsavalueV68V69adummyIa<V69aint63'intV62Aa<aint63'intaoffsetV16V69FAa<=aint63'intV62aint63'intalength1avalueV68Aa<aint63'intaoffsetV16aint63'intV62Aa<a-aint63'intalength1avalueV68aint63'intV62a-aint63'intalength1avalueV56aint63'intV50Aa<=c0a-aint63'intalength1avalueV56aint63'intV50Ia=V62V61Aa=V63V51Aa=V64V52Aa=V65V53Aa=V67aelts'V68Aa=V66avalueV68Aa=V68V56FIa=aint63'intV61a+aint63'intV50c1FAain_boundsa+aint63'intV50c1a=V57aTrueIia=V57aFalsea=V73V71I
VC for next

3eb480b423b87d55f271a35cef1a9065 3H2H1H0
dd4f76338f2d2a6586dafa389fcc37d0 8H7H6H5H4H1H0
3c3565a6dc38b20b14a61258699405c4 10H9H1H0
691628febbe783c26ae2bada9940a221 3H12H11H1H0
5bb9f2b72ad1a103f1c0d6524d3f085a 15H14H13H11H1H0
fdb6c3dd4c0412d4d0a6736c791a85df 17H16H13H11H1H0
e596742f34c6c780ef829c9687059f9f 20H19H18H13H11H1H0
2d552a0b4d1651de760f05b754abe6f5 68H67H21H18H13H11H1H0
24cb7feed9e607248bd7a0d75e343bc6 27H26H25H24H23H22H21H18H13H11H1H0
0519854b1a9a56423690576e668b0510 31H30H29H28H25H24H23H22H21H18H13H11H1H0
dc1cdebc960e2962c737895f97f7798a 27H32H30H29H28H25H24H23H22H21H18H13H11H1H0
af01f8114ba98be69688b93e562b8719 27H34H33H29H28H25H24H23H22H21H18H13H11H1H0
740a6a4aaa5fed9d0fcaac1ec1a6c014 37H36H35H33H29H28H25H24H23H22H21H18H13H11H1H0
d8f5d547b020d1d1e10d263a1812b0e8 41H40H39H38H35H33H29H28H25H24H23H22H21H18H13H11H1H0
93b85ca395b75db69ba77e1e793c2f07 41H42H40H39H38H35H33H29H28H25H24H23H22H21H18H13H11H1H0
0b2029faf7ab219480a10a857aa331f8 41H43H42H40H39H38H35H33H29H28H25H24H23H22H21H18H13H11H1H0
d599b6bf66356b8b7d3e6f82ef7c485b 48H47H46H45H44H39H38H35H33H29H28H25H24H23H22H21H18H13H11H1H0
3dedd25980ba5cb622075a21665f8200 48H50H49H47H46H45H44H39H38H35H33H29H28H25H24H23H22H21H18H13H11H1H0
32ff69be9f29261deb67a48f4b7226bc 48H52H49H51H47H46H45H44H39H38H35H33H29H28H25H24H23H22H21H18H13H11H1H0
132c54c1987a4ce184fd61acb695768e 48H57H56H55H54H53H51H47H46H45H44H39H38H35H33H29H28H25H24H23H22H21H18H13H11H1H0
797c01ba5d2eea4cc7ddd6c9d451bab3 48H59H56H55H54H58H53H51H47H46H45H44H39H38H35H33H29H28H25H24H23H22H21H18H13H11H1H0
d27b7172f8521183bf3f02d834aa2d7b 48H61H60H46H45H44H39H38H35H33H29H28H25H24H23H22H21H18H13H11H1H0
0208eed20f2ecca1ebb4d9fa8ee11e51 64H63H62H60H46H45H44H39H38H35H33H29H28H25H24H23H22H21H18H13H11H1H0
bb678c9f5b0f2e81d7d2a60f02d4809c 64H66H65H28H25H24H23H22H21H18H13H11H1H0
b57edcc6c2e418d9aef61c8b331e3dc7 95H94H21H18H13H11H1H0
683dfc06275c33c70208e07d3c23e9d5 41H24H24H23H22H21H18H13H11H1H0
435dfe03754b987e67fd7e341f40972c 71H70H25H63H62H69H24H23H22H21H18H13H11H1H0
36cb1540326a4fc4e3b4321a3cb58fff 41H75H74H73H72H72H25H63H62H69H24H23H22H21H18H13H11H1H0
4d53bb265668352b0d9880afaa741a64 41H77H76H75H74H73H72H72H25H63H62H69H24H23H22H21H18H13H11H1H0
f5a588e0efe4c7d71df4f54d33df8dd0 41H79H76H78H75H74H73H72H72H25H63H62H69H24H23H22H21H18H13H11H1H0
5790b2d8284c71c05a52a67f26901641 41H83H82H81H54H80H78H75H74H73H72H72H25H63H62H69H24H23H22H21H18H13H11H1H0
9a2abcc29ca26b6c73851afc8445e08d 41H85H82H81H54H84H80H78H75H74H73H72H72H25H63H62H69H24H23H22H21H18H13H11H1H0
3db229d0f216e7221b95e7d0fbce13a2 48H90H89H88H87H86H86H74H25H63H62H69H24H23H22H21H18H13H11H1H0
90b16ad30d7136da08e3f19a61b81833 64H92H91H89H88H87H86H86H74H25H63H62H69H24H23H22H21H18H13H11H1H0
53c33f3a9007b724537bca2215886a2f 48H75H73H72H72H25H63H62H69H24H23H22H21H18H13H11H1H0
2b829c97846c9bdd49e9d6b0c6f23c45 48H77H76H75H73H72H72H25H63H62H69H24H23H22H21H18H13H11H1H0
3ce3bb7660905f0b54a1d519058e5605 48H79H76H78H75H73H72H72H25H63H62H69H24H23H22H21H18H13H11H1H0
a4e2eb353113de9a480dc6e39898389c 48H83H82H81H54H80H78H75H73H72H72H25H63H62H69H24H23H22H21H18H13H11H1H0
4f29f78ede7110c1532c552d0940c883 48H85H82H81H54H84H80H78H75H73H72H72H25H63H62H69H24H23H22H21H18H13H11H1H0
a4b9c33464a883837fc6c36383bdd40d 48H90H93H73H72H72H25H63H62H69H24H23H22H21H18H13H11H1H0
acb3e3c359ef46e42eee652e572f7315 64H92H91H93H73H72H72H25H63H62H69H24H23H22H21H18H13H11H1H0
b0c901b21b8cb428ff29ac88e495854b 132H131H21H18H13H11H1H0
e26e2327bb0275eac4825c082be67132 71H96H25H66H25H24H23H22H21H18H13H11H1H0
9201cb5cf651b3372a32e34891f02d8d 41H99H74H98H97H97H25H66H25H24H23H22H21H18H13H11H1H0
f4a68ea2efd624e7c8ecdfef9e84ea11 41H101H100H99H74H98H97H97H25H66H25H24H23H22H21H18H13H11H1H0
6a55cec306f0e4e1e82786017b5689cd 41H103H100H102H99H74H98H97H97H25H66H25H24H23H22H21H18H13H11H1H0
f4860d040fddcac2006393e3526fc2cb 41H107H106H105H54H104H102H99H74H98H97H97H25H66H25H24H23H22H21H18H13H11H1H0
299e4eda967c3296ec2b01fdc4bec353 41H109H106H105H54H108H104H102H99H74H98H97H97H25H66H25H24H23H22H21H18H13H11H1H0
62af409355442af4e8fdfd9dde353e06 48H114H113H112H111H110H110H74H25H66H25H24H23H22H21H18H13H11H1H0
eac82cbb1ba4dd278882a3cee5080491 64H116H115H113H112H111H110H110H74H25H66H25H24H23H22H21H18H13H11H1H0
a9a3744f257180e93ce60a1a56cd68d7 48H99H98H97H97H25H66H25H24H23H22H21H18H13H11H1H0
bcd6c7024e532b2d1b26f1ee86eeee00 48H101H100H99H98H97H97H25H66H25H24H23H22H21H18H13H11H1H0
23f54a6fe588af9f79b05c29e9c6add6 48H103H100H102H99H98H97H97H25H66H25H24H23H22H21H18H13H11H1H0
e7280167adb499b7fa442be1f064f19f 48H107H106H105H54H104H102H99H98H97H97H25H66H25H24H23H22H21H18H13H11H1H0
11c9c9288bec94452c8e11044691fabe 48H109H106H105H54H108H104H102H99H98H97H97H25H66H25H24H23H22H21H18H13H11H1H0
5c42f8cea8ece10a939165b22418e619 48H114H117H98H97H97H25H66H25H24H23H22H21H18H13H11H1H0
f8dabed25887e9e4bda0423f0a8b9e42 64H116H115H117H98H97H97H25H66H25H24H23H22H21H18H13H11H1H0
eee55722a7ae079903cc0a507e4b7f63 41H47H74H118H25H24H23H22H21H18H13H11H1H0
9727463d25947153ad3e04b5a2d18c44 41H119H49H47H74H118H25H24H23H22H21H18H13H11H1H0
2cb29a7bf576fad3124cf89f61bb41d5 41H121H49H120H47H74H118H25H24H23H22H21H18H13H11H1H0
f799f359d0452715a3e5c426f965cec3 41H125H124H123H54H122H120H47H74H118H25H24H23H22H21H18H13H11H1H0
fdaba4762b961f965f02817f2dc19130 41H127H124H123H54H126H122H120H47H74H118H25H24H23H22H21H18H13H11H1H0
3606b688771db9145a81658b941448fa 48H61H129H128H112H74H118H25H24H23H22H21H18H13H11H1H0
f359c6458ea279c1fadf28362463e0a3 64H116H62H129H128H112H74H118H25H24H23H22H21H18H13H11H1H0
b1e5826c549e1087488480a73ec1382a 64H130H118H25H24H23H22H21H18H13H11H1H0
3dd088cd972075f5a0276ffe7e29ea29 8H133H21H18H13H11H1H0
80d8b83eb5990c79ad891f5791314213 15H183H134H21H18H13H11H1H0
e3773547c07583c77f0d7467e069a0fb 136H135H23H22H134H21H18H13H11H1H0
a65dd7622ad63447cd89dfedecfefdce 136H139H138H137H135H23H22H134H21H18H13H11H1H0
1215e39746c448508db4056bee754d9d 71H145H144H143H142H141H140H23H22H134H21H18H13H11H1H0
d22f6ee7c5e2c62d1f0cee9035f5cd77 27H147H146H142H141H140H23H22H134H21H18H13H11H1H0
1ae754486500a25b317afc08ff762821 150H149H148H146H142H141H140H23H22H134H21H18H13H11H1H0
98bca57aa04e35c91cb3272910be3130 152H151H148H146H142H141H140H23H22H134H21H18H13H11H1H0
95ca0c4f4e62bafce441f99a9098a953 152H139H153H137H151H148H146H142H141H140H23H22H134H21H18H13H11H1H0
be27985539c28363ab633888a8e73840 41H156H155H154H142H141H140H23H22H134H21H18H13H11H1H0
e9282199bd5316574b8bf591d204a1e7 41H157H156H155H154H142H141H140H23H22H134H21H18H13H11H1H0
55879dd3ad810acabc1105a028a08a0f 41H158H157H156H155H154H142H141H140H23H22H134H21H18H13H11H1H0
1b9f349f8becff5367fe66a43efa51f5 41H160H159H158H157H156H155H154H142H141H140H23H22H134H21H18H13H11H1H0
06290beda3c8d53b1bc67ee4434b092b 41H163H162H161H158H157H156H155H154H142H141H140H23H22H134H21H18H13H11H1H0
1119748ce48451f77efe4efa6931a059 41H175H162H165H161H158H157H156H155H154H142H141H140H23H22H134H21H18H13H11H1H0
1510be37b165e54850c2f19709d25053 41H162H119H166H162H165H161H164H140H157H156H155H154H142H141H140H134H21H18H13H11H1H0
29edce2c6d3426b9e79a622a1d6a0d92 41H166H162H162H165H161H164H140H157H156H155H154H142H141H140H134H21H18H13H11H1H0
ec932064bc3221fa73fe82e9a3b7c305 41H166H162H162H171H161H164H140H157H156H155H170H169H168H167H143H142H141H140H134H21H18H13H11H1H0
68ff1fb3d7ef5ae5305340a590be7e76 41H166H162H162H174H161H164H140H157H156H173H172H142H141H140H134H21H18H13H11H1H0
85522fc70704b8ffe9edafa4c5cd0f13 41H119H162H162H165H161H164H140H157H156H155H154H142H141H140H134H21H18H13H11H1H0
b500e0deda05f630be3ceece865c798f 64H179H182H181H180H179H178H177H176H155H154H142H141H140H23H22H134H21H18H13H11H1H0
b1ea6a9b2aeda43ca3c92ed3643aa9ab 64H180H179H182H181H180H179H178H177H176H155H154H142H141H140H23H22H134H21H18H13H11H1H0
ce6382d7452f8bcc7113562ee850dd50 64H181H180H179H182H181H180H179H178H177H176H155H154H142H141H140H23H22H134H21H18H13H11H1H0
a1459e9a6aff73812f376d32d8f4068e 185H184H134H21H18H13H11H1H0
14c06c5953034d5f2d0cb59f7f2267f4 227H226H134H21H18H13H11H1H0
43acc7e2dfc7386d02bede1579930782 190H189H188H187H186H134H21H18H13H11H1H0
37f97a58b529ab5b69cb040a449fa4a6 71H191H189H188H187H186H134H21H18H13H11H1H0
2bce3fd603d6999aa8fb97f2beede6f1 27H192H189H188H187H186H134H21H18H13H11H1H0
aadb67665a55bc204498e8253ec221fd 136H194H193H189H188H187H186H134H21H18H13H11H1H0
cb5e606d4b6bb2991e00c787b068226f 136H197H196H195H194H193H189H188H187H186H134H21H18H13H11H1H0
3aaee52df411619c3c86d43b03c38447 71H202H144H201H200H199H198H193H189H188H187H186H134H21H18H13H11H1H0
91c4b8d270505e77e80af4fb5f2647dd 27H204H203H200H199H198H193H189H188H187H186H134H21H18H13H11H1H0
a71cbbaed64c5593a02f487452d732b8 150H206H205H203H200H199H198H193H189H188H187H186H134H21H18H13H11H1H0
cd8dea3427719bbcdf4b9f6529ffbc4f 152H207H205H203H200H199H198H193H189H188H187H186H134H21H18H13H11H1H0
fe53a1874b7c4b949bc41755ff4353b0 152H197H208H195H207H205H203H200H199H198H193H189H188H187H186H134H21H18H13H11H1H0
0c9a668fb4637e577795d8b3823bb469 190H197H210H195H155H209H200H199H198H193H189H188H187H186H134H21H18H13H11H1H0
122ab62a03dcf9a7fc9b42401cf238c1 48H212H211H155H209H200H199H198H193H189H188H187H186H134H21H18H13H11H1H0
7cab4634a5a4c1e3e5cdfb4347252c22 48H213H212H211H155H209H200H199H198H193H189H188H187H186H134H21H18H13H11H1H0
6b0a0c3c82b34740358ffbe8a1441aa8 48H214H213H212H211H155H209H200H199H198H193H189H188H187H186H134H21H18H13H11H1H0
5cda28e9178d8de2a2018455d400aa01 48H216H215H214H213H212H211H155H209H200H199H198H193H189H188H187H186H134H21H18H13H11H1H0
11431434e5116e1f9ffd80dc153561b6 48H219H218H217H214H213H212H211H155H209H200H199H198H193H189H188H187H186H134H21H18H13H11H1H0
6f3d59530696b3f38865de3c7b822193 48H221H218H220H217H214H213H212H211H155H209H200H199H198H193H189H188H187H186H134H21H18H13H11H1H0
d04bb61b9790dbb87fc97696eaaccd29 64H223H222H211H155H209H200H199H198H193H189H188H187H186H134H21H18H13H11H1H0
8ac43bc103198da8d21ad773e7836feb 64H224H223H222H211H155H209H200H199H198H193H189H188H187H186H134H21H18H13H11H1H0
7e4a7d84aacf054594c6e2b7f0d24bb2 64H225H224H223H222H211H155H209H200H199H198H193H189H188H187H186H134H21H18H13H11H1H0
