a<=c0alo
a<=aloahi
a<=ahialengthaa
Na=ahialo
Na=c2c0
precondition
a<a-amidaloa-ahialoAa<=c0a-ahialo
variant decrease
a<=amidalengthaaAa<=aloamidAa<=c0alo
a<V0apowerc2V1Aa<=apowerc2a-V1c1V0LaheightaleftIa>V0c0Aa=ainorderaleftato_listaaaloamidAa=asizealeftV0La-amidalo
a<a-ahia+amidc1a-ahialoAa<=c0a-ahialo
a<=ahialengthaaAa<=a+amidc1ahiAa<=c0a+amidc1
a<V2apowerc2V3Aa<=apowerc2a-V3c1V2LaheightarightIa>V2c0Aa=ainorderarightato_listaaa+amidc1ahiAa=asizearightV2La-ahia+amidc1
a<amidalengthaaAa<=c0amid
index in array bounds
a=aresultaEmptyIa=ahialo
a<V1apowerc2V2Aa<=apowerc2a-V2c1V1LaheightaleftIa>V1c0Aa=ainorderaleftato_listaaaloV0Aa=asizealeftV1La-V0aloLa+aloadiva-ahialoc2INa=ahialo
a<V5apowerc2V6Aa<=apowerc2a-V6c1V5LaheightarightIa>V5c0Aa=ainorderarightato_listaaV4ahiAa=asizearightV5La-ahiV4La+V3c1La+aloadiva-ahialoc2INa=ahialo
a=aresultaNodealeftaaaV7arightLa+V7c1La+aloadiva-ahialoc2INa=ahialo
a=asizearesultan
VC for tree_of_array_aux
a=asizealeftV1La-V0aloLa+aloadiva-ahialoc2INa=ahialo
a=ainorderaleftato_listaaaloV2La-V2aloLa+aloadiva-ahialoc2INa=ahialo
a<=apowerc2a-V6c1V5LaheightaleftIa>V5c0La-V4aloLa+aloadiva-ahialoc2INa=ahialo
a<V8apowerc2V9LaheightaleftIa>V8c0La-V7aloLa+aloadiva-ahialoc2INa=ahialo
a=asizearightV12La-ahiV11La+V10c1La+aloadiva-ahialoc2INa=ahialo
a=ainorderarightato_listaaV14ahiLa-ahiV14La+V13c1La+aloadiva-ahialoc2INa=ahialo
a<=apowerc2a-V19c1V18LaheightarightIa>V18c0La-ahiV17La+V16c1La+aloadiva-ahialoc2INa=ahialo
a<V22apowerc2V23LaheightarightIa>V22c0La-ahiV21La+V20c1La+aloadiva-ahialoc2INa=ahialo
a=aresultaNodealeftaaaV24arightLa+V24c1La+aloadiva-ahialoc2INa=ahialo
a=ainorderaresultato_listaaaloahiIa=asizearesultan
a=ahialo
a<=apowerc2a-V9c1anLaheightaresultIa>anc0Ia=ainorderaresultato_listaaaloahiIa=asizearesultan
true case
a=ahia+aloc1
a<=apowerc2a-V26c1anLaheightaresultIa>anc0Ia=ainorderaresultato_listaaaloahiIa=asizearesultan
false case (true case)
Na=ahia+aloc1
false case
a<anapowerc2V9LaheightaresultIa>anc0Ia=ainorderaresultato_listaaaloahiIa=asizearesultan
a=aleftaEmpty
asserted formula
a=arightaEmpty
a<anapowerc2V26LaheightaresultIa>anc0Ia=ainorderaresultato_listaaaloahiIa=asizearesultan
ia=aresultaNodealeftaaaV0arightAa<V2apowerc2V3Aa<=apowerc2a-V3c1V2LaheightarightIa>V2c0Aa=ainorderarightato_listaaV1ahiAa=asizearightV2La-ahiV1La+V0c1Aa<V4apowerc2V5Aa<=apowerc2a-V5c1V4LaheightaleftIa>V4c0Aa=ainorderaleftato_listaaaloV0Aa=asizealeftV4La-V0aloLa+aloadiva-ahialoc2a=aresultaEmptya=ahialo
a<anapowerc2V6Aa<=apowerc2a-V6c1anLaheightaresultIa>anc0Aa=ainorderaresultato_listaaaloahiAa=asizearesultan
postcondition
a<V4apowerc2V5Aa<=apowerc2a-V5c1V4LaheightV3Ia>V4c0Aa=ainorderV3ato_listV0V1V2Aa=asizeV3V4La-V2V1Iia=V3aNodeV7aV0V6V9Aa<V10apowerc2V11Aa<=apowerc2a-V11c1V10LaheightV9Ia>V10c0Aa=ainorderV9ato_listV0V8V2Aa=asizeV9V10La-V2V8ELa+V6c1Aa<V12apowerc2V13Aa<=apowerc2a-V13c1V12LaheightV7Ia>V12c0Aa=ainorderV7ato_listV0V1V6Aa=asizeV7V12La-V6V1ELa+V1adiva-V2V1c2a=V3aEmptya=V2V1FAa<V14alengthV0Aa<=c0V14Ia<V18apowerc2V19Aa<=apowerc2a-V19c1V18LaheightV17Ia>V18c0Aa=ainorderV17ato_listV0V16V2Aa=asizeV17V18La-V2V16FAa<=V2alengthV0Aa<=V16V2Aa<=c0V16Aa<a-V2V16a-V2V1Aa<=c0a-V2V1La+V14c1Ia<V20apowerc2V21Aa<=apowerc2a-V21c1V20LaheightV15Ia>V20c0Aa=ainorderV15ato_listV0V1V14Aa=asizeV15V20La-V14V1FAa<=V14alengthV0Aa<=V1V14Aa<=c0V1Aa<a-V14V1a-V2V1Aa<=c0a-V2V1La+V1adiva-V2V1c2ANa=c2c0INa=V2V1Ia<=V2alengthV0Aa<=V1V2Aa<=c0V1F
a<asizeV2apowerc2V3Aa<=apowerc2a-V3c1asizeV2LaheightV2Ia>asizeV2c0Aa=ainorderV2ato_listV0c0alengthV0Ia<V4apowerc2V5Aa<=apowerc2a-V5c1V4LaheightV2Ia>V4c0Aa=ainorderV2ato_listV0c0V1Aa=asizeV2V4La-V1c0FAa<=V1alengthV0Aa<=c0V1Aa<=c0c0LalengthV0F
VC for tree_of_array

411486bb09920e78bc9bc93b466f6116 20H47
0000feede463793f1eece7b4218f1049 5H4H3H2H1H0
a4be602508db9a5a6b3e9b02c6689f65 7H6H3H2H1H0
ef6cae0eb26eedbe23391c8644c89e89 5H8H3H2H1H0
b5a1ac52adbac5a8f7fdb8e1abe7d40f 7H10H9H3H2H1H0
8f96e671930bd6bfed5181dd492f9b0c 5H11H9H3H2H1H0
07bf02ee44209c885d0d681ed5c4bf4f 14H13H12H9H3H2H1H0
075df54b91cff3c3a5b2a5793b4d9961 46H45H44H2H1H0
440b117f08d9fbfd473d5f305c3aa1af 20H19H18H17H16H15H2H1H0
d7de0c3c9960fc990396455c06fa74ed 20H30H18H17H16H15H2H1H0
8a4a0fac7ec0ec7ed60131b337faf6a3 20H30H29H28H27H26H25H24H23H22H21H15H2H1H0
d118d217e6e96a96a5be269447ca888f 20H32H18H17H16H15H2H1H0
688fdcf1e1a8193871a539fcffc886ef 33H32H31H18H17H16H15H2H1H0
05381c3ebfa199c4e79213254a9c4dd4 38H32H3H18H17H16H15H2H1H0
beb53d9ba988609871dd4b457bf3db69 36H32H34H3H18H17H16H15H2H1H0
5369566e833ad96ec5ac155d23b77243 36H35H34H3H29H28H27H26H25H24H23H22H21H15H2H1H0
99bfa29e6870ca3274792a7e7edc63d4 38H32H37H3H18H17H16H15H2H1H0
705032c177ca0922dafa42aca3c88b9f 38H35H37H3H29H28H27H26H25H24H23H22H21H15H2H1H0
3ec0ac193e714d5d759dcc1019b9bf62 20H39H18H17H16H15H2H1H0
57d59a0fc9ac98df47d040d4729f4487 33H39H31H18H17H16H15H2H1H0
00554f51d2866122e157058e2d9235ad 38H39H3H18H17H16H15H2H1H0
3024466462e989e54913b8fc25960c0f 36H39H34H3H18H17H16H15H2H1H0
cedc9e11ce5950e8ba642df18ce6c6e9 41H40H34H3H18H17H16H15H2H1H0
895612bdc70381f6fbfbfc9e58d07e51 36H39H40H34H3H18H17H16H15H2H1H0
6d23bbb927b1f208cb00ff902e9303b6 41H42H40H34H3H18H17H16H15H2H1H0
d2cae41c771a1ad751af5026d16689e4 36H39H42H40H34H3H18H17H16H15H2H1H0
07c4faccb3a99466529b64c39ec0249f 38H39H37H3H18H17H16H15H2H1H0
631b16c42156d59f38b406263c869cc8 38H43H37H3H29H28H27H26H25H24H23H22H21H15H2H1H0
0c29a2a2877853b9f1ee9fecc5961be4 49H48
