a<=c0an
a<=analengthal
Na=anc0
Na=c2c0
precondition
a<an1anAa<=c0an
variant decrease
a<=an1alengthalAa<=c0an1
a<an1apowerc2V0Aa<=apowerc2a-V0c1an1LaheightaleftIa>an1c0Aa=asizealeftan1Aa=a++ainorderaleftal1al
a=al1aNil
f
unreachable point
a=al1aConsaxax1
a<a-an2an1anAa<=c0an
a<=a-an2an1alengthax1Aa<=c0a-an2an1
iCfaNila=al'al'1Aa=ataNodeat1V2at2Aa<V4apowerc2V5Aa<=apowerc2a-V5c1V4Laheightat2Ia>V4c0Aa=asizeat2V4Aa=a++ainorderat2al'1V3La-V0V1aConsVVaConsaxax1Aa<V1apowerc2V6Aa<=apowerc2a-V6c1V1Laheightat1Ia>V1c0Aa=asizeat1V1Aa=a++ainorderat1aConsaxax1alLadivV0c2La-anc1a=al'alAa=ataEmptya=anc0
a<anapowerc2V7Aa<=apowerc2a-V7c1anLaheightatIa>anc0Aa=asizeatanAa=a++ainorderatal'al
postcondition
iCfaNila=al'al'1Aa=ataNodeat1V2at2Aa<V4apowerc2V5Aa<=apowerc2a-V5c1V4Laheightat2Ia>V4c0Aa=asizeat2V4Aa=a++ainorderat2al'1V3La-V0V1aConsVVaNilAa<V1apowerc2V6Aa<=apowerc2a-V6c1V1Laheightat1Ia>V1c0Aa=asizeat1V1Aa=a++ainorderat1aNilalLadivV0c2La-anc1a=al'alAa=ataEmptya=anc0
iCfaNila=al'al'1Aa=ataNodeat1V2at2Aa<V4apowerc2V5Aa<=apowerc2a-V5c1V4Laheightat2Ia>V4c0Aa=asizeat2V4Aa=a++ainorderat2al'1V3La-V0V1aConsVVal'2Aa<V1apowerc2V6Aa<=apowerc2a-V6c1V1Laheightat1Ia>V1c0Aa=asizeat1V1Aa=a++ainorderat1al'2alLadivV0c2La-anc1a=al'alAa=ataEmptya=anc0
a<V0apowerc2V4Aa<=apowerc2a-V4c1V0LaheightV2Ia>V0c0Aa=asizeV2V0Aa=a++ainorderV2V3V1IiCfaNila=V3V13Aa=V2aNodeV7V9V12Aa<V11apowerc2V14Aa<=apowerc2a-V14c1V11LaheightV12Ia>V11c0Aa=asizeV12V11Aa=a++ainorderV12V13V10ELa-V5V6aConsVVV8Aa<V6apowerc2V15Aa<=apowerc2a-V15c1V6LaheightV7Ia>V6c0Aa=asizeV7V6Aa=a++ainorderV7V8V1ELadivV5c2La-V0c1a=V3V1Aa=V2aEmptya=V0c0FACfaNila<=V22alengthV21Aa<=c0V22Aa<V22V0Aa<=c0V0La-V16V17aConsVVV19Ia<V17apowerc2V23Aa<=apowerc2a-V23c1V17LaheightV18Ia>V17c0Aa=asizeV18V17Aa=a++ainorderV18V19V1FAa<=V17alengthV1Aa<=c0V17Aa<V17V0Aa<=c0V0LadivV16c2ANa=c2c0La-V0c1INa=V0c0Ia<=V0alengthV1Aa<=c0V0F
VC for tree_of_list_aux
a<asizeV4apowerc2V5Aa<=apowerc2a-V5c1asizeV4LaheightV4Ia>asizeV4c0Aa=ainorderV4V0Ia=V4V2Aa=V3aNilFAa=V3aNilIa<V1apowerc2V6Aa<=apowerc2a-V6c1V1LaheightV2Ia>V1c0Aa=asizeV2V1Aa=a++ainorderV2V3V0FAa<=V1alengthV0Aa<=c0V1LalengthV0F
VC for tree_of_list

3ca603c040439886fefe3335c90ed387 21H20
444f8fbc439daec6b93dd91170625332 4H3H2H1H0
7f763ba1ac334fe22327d92e6a818d16 6H5H2H1H0
da5dfec77d1ad7ae8f51f6c20e45d9ff 4H7H2H1H0
34a0318bbfec8745ed351ce0cc57b005 11H10H9H8H2H1H0
363bb45e2042d33bb4d40a9bd2419bfe 6H13H12H8H2H1H0
8687e279b6ec8d894f2e1012437f4159 4H14H12H8H2H1H0
4d68513f32662e091830dfcf2a1e7acb 17H16H19H1H0
d6a3f23d1e1b3784512965a164cc7058 17H16H15H1H0
7f6839ef07b9ef337a8a1389d29ef7f2 17H16H18H1H0
e6e774045b9a6fa4ec05f8eeeb85f251 23H22
