a>=asize_heapV0c0ICtaEa>=asize_treeV1c0aHVV0ACtaECfaEa=V3V2aHVV0aHVV0F
VC for size_nonneg
a>=asize_treeV0c0ICa>=asize_listV1c0aTwVV0ACCa=V3V2aTwVV0aTwVV0F
VC for size_tree_nonneg
a>=asize_listV0c0ICtaNila>=asize_listV2c0Aa>=asize_treeV1c0aConsVVV0ACtaNilCfaNila=V5V4aConswVV0Ia>=asize_treeV3c0ACfaNila=V6V3aConsVwV0aConsVVV0F
VC for size_list_nonneg
a>=asize_heapV0c0F
a>=asize_treeV1c0F
a>=asize_listV2c0F
a=V3aEqa=asize_heapV3c0ICtaEa>=asize_treeV4c0aHVV3F
VC for size_empty
a>=aocc_heapV0V1c0ICtaEa>=aocc_treeV0V2c0aHVV1ACtaECfaEa=V4V3aHVV1aHVV1F
VC for occ_nonneg
a>=aocc_treeV0V1c0ICa>=aocc_listV0V2c0aTwVV1ACCa=V4V3aTwVV1aTwVV1F
VC for occ_tree_nonneg
a>=aocc_listV0V1c0ICtaNila>=aocc_listV0V3c0Aa>=aocc_treeV0V2c0aConsVVV1ACtaNilCfaNila=V6V5aConswVV1Ia>=aocc_treeV0V4c0ACfaNila=V7V4aConsVwV1aConsVVV1F
VC for occ_list_nonneg
aleV0V0F
aleV1V3IaleV2V3IaleV1V2F
aleV5V4OaleV4V5F
ale_rootV6V8Iale_rootV7V8IaleV6V7F
empty_shape
Cale_rootsV9V11Iale_rootsV10V11IaleV9V10aNilale_rootsV9V11Iale_rootsV10V11IaleV9V10Iale_rootsV9V13Iale_rootsV10V13IaleV9V10aConsVVV11F
ale_rootsV9V11Iale_rootsV10V11IaleV9V10F
aheapaE
VC for heap
aheapahV12FahV12
aleV14V15IamemV15V13FIale_rootV14V13FICtaEaleV17V18Iamem_treeV18V16FIale_treeV17V16FaHVV13ACtaEaheap_treeV19ACfaEa=V20V19aHVV13aHVV13IaheapV13F
VC for heap_mem
aleV14V15Iamem_treeV15V13FIale_treeV14V13FICaleV17V18Iamem_listV18V16FIale_rootsV17V16FaTwVV13ACaheap_listV19ACa=V20V19aTwVV13aTwVV13Iaheap_treeV13F
VC for heap_mem_tree
aleV14V15Iamem_listV15V13FIale_rootsV14V13FICtaNilaleV18V19Iamem_listV19V17FIale_rootsV18V17FAaleV20V21Iamem_treeV21V16FIale_treeV20V16FaConsVVV13ACtaNilaheap_listV23ACfaNila=V24V23aConswVV13IaleV25V26Iamem_treeV26V22FIale_treeV25V22FAaheap_treeV22ACfaNila=V27V22aConsVwV13aConsVVV13Iaheap_listV13F
VC for heap_mem_list
aleV14V15IamemV15V13FIale_rootV14V13FIaheapV13F
a=aminimum_treeaTV16V17V16F
a=aminimumaHV18aminimum_treeV18F
a<c0asize_heapah1
aheapah1
a=ah1aE
f
unreachable point
CfaECa>=aocc_listV20V21c0aTVVV19aHVah1
ais_minimumaminimumah1ah1
postcondition
ais_minimumaminimumV19V19ICfaEa>=aocc_listV20V21c0aHaTVVV19ACfaEtaHaTVVV19IaheapV19Aa<c0asize_heapV19F
VC for root_is_minimum
ais_minimumaminimumV19V19IaheapV19Ia<c0asize_heapV19F
NamemV22ahV21FAa=asize_heapahV21c0Ia=ahV21V20FAaheapV20LaE
VC for empty
NamemV20ahaemptyFAa=asize_heapahaemptyc0
a=asize_heapahV21c0qa=V22aTrueICa=V22aTrueaEa=V22aFalsewahV21FF
VC for is_empty
a=ahah2aE
a=ahah1aE
aheapahah2
precondition
a=ahah1aHaw
aheapahah1
a=ahah2aHaTaxax1
a=ahah1aHaTax2ax3
aleax2ax
aheapaHaTax2aConsaTaxax1ax3
Naleax2ax
aheapaHaTaxaConsaTax2ax3ax1
a=aharesultahah2
a=asize_heapaharesulta+asize_heapahah1asize_heapahah2
a=aharesultahah1
a=aharesultaHaTax2aConsaTaxax1ax3
a=aharesultaHaTaxaConsaTax2ax3ax1
CCa=aharesultahah2aEa=aharesultahah1wahah1aECCa=aharesultahah2aECia=aharesultaHaTV22aConsaTV25V26V23a=aharesultaHaTV25aConsaTV22V23V26aleV25V22aTVVV24aHVahah1aTVVV21aHVahah2
a=aocc_heapaxaharesulta+aocc_heapaxahah1aocc_heapaxahah2
a=aocc_heapax2aharesulta+aocc_heapax2ahah1aocc_heapax2ahah2
a=aocc_heapax4aharesulta+aocc_heapax4ahah1aocc_heapax4ahah2
a=aocc_heapV24ahV23a+aocc_heapV24ahV21aocc_heapV24ahV22FAa=asize_heapahV23a+asize_heapahV21asize_heapahV22ICCa=ahV23ahV22aEa=ahV23ahV21wahV21aECCa=ahV23ahV22aECia=ahV23aHaTV26aConsaTV29V30V27a=ahV23aHaTV29aConsaTV26V27V30aleV29V26aTVVV28aHVahV21aTVVV25aHVahV22FACCaheapahV22aEaheapahV21wahV21aECCaheapahV22aECiaheapaHaTV32aConsaTV35V36V33aheapaHaTV35aConsaTV32V33V36aleV35V32aTVVV34aHVahV21aTVVV31aHVahV22F
VC for merge
a=aocc_heapV26ahV25aocc_heapV26ahV22INa=V21V26FAa=aocc_heapV21ahV25a+aocc_heapV21ahV22c1Aa=asize_heapahV25a+asize_heapahV22c1Ia=aocc_heapV27ahV25a+aocc_heapV27ahV24aocc_heapV27ahV22FAa=asize_heapahV25a+asize_heapahV24asize_heapahV22FIa=ahV24V23FAaheapV23LaHaTV21aNilF
VC for insert
a=V23aminimumahV21ICfaEa=V23V24aHaTVwV22FACfaEtaHaTVwV22LahV21Ia<c0asize_heapahV21F
VC for find_min
aheap_listal
a=alaNil
a=alaConsaxaNil
aheapaHax
a=alaConsaxaConsax1ax2
a=ahah1aHax
aheapaHax1
a=ahah2aHax1
a<alengthax2alengthalAa<=c0alengthal
variant decrease
aheap_listax2
a=aharesultaE
a=asize_heapaharesultasize_listal
a=aharesultaHax
a=asize_heapaharesultasize_listax2
a=aocc_heapV21aharesultaocc_listV21ax2F
a=asize_heapaharesult1a+asize_heapahah1asize_heapahah2
a=aocc_heapV22aharesult1a+aocc_heapV22ahah1aocc_heapV22ahah2F
a=asize_heapaharesult2a+asize_heapaharesult1asize_heapaharesult
a=aocc_heapV23aharesult2a+aocc_heapV23aharesult1aocc_heapV23aharesultF
a=asize_heapaharesult2asize_listal
Ca=aharesultaEaNilCa=aharesultaHV21aNila=aocc_heapV25aharesulta+aocc_heapV25aharesult1aocc_heapV25aharesult2FAa=asize_heapaharesulta+asize_heapaharesult1asize_heapaharesult2Aa=aocc_heapV26aharesult1a+aocc_heapV26ahah1aocc_heapV26ahah2FAa=asize_heapaharesult1a+asize_heapahah1asize_heapahah2Aa=aocc_heapV27aharesult2aocc_listV27V24FAa=asize_heapaharesult2asize_listV24Aa=ahah2aHV23Aa=ahah1aHV21aConsVVV22aConsVVal
a=aocc_heapaxaharesultaocc_listaxal
a=aocc_heapax1aharesultaocc_listax1al
a=aocc_heapax3aharesult2aocc_listax3al
a=aocc_heapV23ahV22aocc_listV23V21FAa=asize_heapahV22asize_listV21ICa=ahV22aEaNila=ahV22aHV24aConsVaNila=aocc_heapV32ahV22a+aocc_heapV32ahV31aocc_heapV32ahV30FAa=asize_heapahV22a+asize_heapahV31asize_heapahV30Aa=aocc_heapV33ahV31a+aocc_heapV33ahV28aocc_heapV33ahV29FAa=asize_heapahV31a+asize_heapahV28asize_heapahV29EAa=aocc_heapV34ahV30aocc_listV34V27FAa=asize_heapahV30asize_listV27EAa=ahV29aHV26EAa=ahV28aHV25EaConsVaConsVVV21FACaheapaEaNilaheapaHV35aConsVaNilaheap_listV38Aa<alengthV38alengthV21Aa<=c0alengthV21Ia=ahV42V41FAaheapV41LaHV37Ia=ahV40V39FAaheapV39LaHV36aConsVaConsVVV21Iaheap_listV21F
VC for merge_pairs
a<c0asize_heapahahh
a=ahahhaE
a=ahahhaHaTaxax1
aheap_listax1
a=asize_heapaharesultasize_listax1
a=aocc_heapV21aharesultaocc_listV21ax1F
a=aocc_heapaminimumahahhaharesulta-aocc_heapaminimumahahhahahhc1
CfaECa=aocc_heapV24aharesultaocc_listV24V23FAa=asize_heapaharesultasize_listV23aTVVV21aHVahahh
Na=ayaminimumahahh
a=aocc_heapayaharesultaocc_heapayahahh
a=aocc_heapV25aharesultaocc_heapV25ahahhINa=V25aminimumahahhF
a=asize_heapaharesulta-asize_heapahahhc1
a=asize_heapahV23a-asize_heapahV21c1Aa=aocc_heapV24ahV23aocc_heapV24ahV21INa=V24aminimumahV21FAa=aocc_heapaminimumahV21ahV23a-aocc_heapaminimumahV21ahV21c1ICfaEa=aocc_heapV26ahV23aocc_listV26V25FAa=asize_heapahV23asize_listV25aHaTwVV22FACfaEaheap_listV27aHaTwVV22LahV21Ia<c0asize_heapahV21F
VC for delete_min
ais_minimumaminimum_heapV6V6Ia<c0asizeV6F
a=aoccV8V7c0FAa=asizeV7c0Laempty
VC for empty'refn
a=asizeV7c0qa=asize_heapahV7c0F
VC for is_empty'refn
a=asizeV9a+asizeV7asizeV8Aa=aoccV10V9a+aoccV10V7aoccV10V8FIa=aocc_heapV11ahV9a+aocc_heapV11ahV7aocc_heapV11ahV8FAa=asize_heapahV9a+asize_heapahV7asize_heapahV8FF
VC for merge'refn
a=asizeV9a+asizeV8c1Aa=aoccV10V8aoccV10V9INa=V10V7FAa=aoccV7V9a+aoccV7V8c1Ia=aocc_heapV11ahV9aocc_heapV11ahV8INa=V7V11FAa=aocc_heapV7ahV9a+aocc_heapV7ahV8c1Aa=asize_heapahV9a+asize_heapahV8c1FF
VC for insert'refn
a=aminimumahV7aminimum_heapV7Aa<c0asize_heapahV7Ia>asizeV7c0F
VC for find_min'refn
a=asizeV8a-asizeV7c1Aa=aoccV9V8aoccV9V7INa=V9aminimum_heapV7FAa=aoccV10V8a-aoccV10V7c1Laminimum_heapV7Ia=asize_heapahV8a-asize_heapahV7c1Aa=aocc_heapV11ahV8aocc_heapV11ahV7INa=V11aminimumahV7FAa=aocc_heapaminimumahV7ahV8a-aocc_heapaminimumahV7ahV7c1FAa<c0asize_heapahV7Ia>asizeV7c0F
VC for delete_min'refn

2a339d5d45403861cf1c7c74d8b4f91f 1H0
2e22cba742b3033ff5655ac2109d4306 3H2
10397d92e9623d4eea194b1206679002 5H4
f94312f86235e72f5c5702556ac53072 10H9H8H7H6
7cc92b2df1c802865bd519e8ccc7d82e 12H11
6bdae99fce0d5b8ec82a7f57252c1c3c 14H13
a39f717a54e41c91ca6879c1e1e080d4 16H15
c155ca71a847f478db1203451a4249cd 21H20H19H18H17
70e11f21c79f96c879f4bc26b1a582e3 21H23H20H19H18H17
00fa85a2aa2fb5dc1a5f2e2378986379 21H22H20H19H18H17
912abe89d3431d95ae9c2e33fe580029 25H24H23H20H19H18H17
57d1caa117c196bc51b823ce349a527a 28H27H26H23H20H19H18H17
31dc8a11cae2f68817580191cae1e673 30H29H26H23H20H19H18H17
58daa1956cd0d625c6462548287b4e17 32H31H26H23H20H19H18H17
3c05c3f9afbeb09d3525d3fb9637ffdb 45H44H35H34H33H26H23H20H19H18H17
efab4fe1d24df0e0113b03f0ad98c0a8 40H39H38H37H36H35H34H33H26H23H20H19H18H17
0748e85c120458b1334278f8169cc567 43H42H41H37H36H35H34H33H26H23H20H19H18H17
ae89512985b1a37c421b79fb23ad7ed0 48H47H46H35H34H33H26H23H20H19H18H17
48c63be4dbd5b0a104da3319f7ffdc16 51H50H49H46H35H34H33H26H23H20H19H18H17
d0104d3028505ae35a234aa7e7f7ecb7 74H73H49H46H35H34H33H26H23H20H19H18H17
235148f1028cb3166db8ea84e574db91 55H54H53H52H49H46H35H34H33H26H23H20H19H18H17
8913993aa3d90a68b0d19b6cb75c7855 55H57H56H52H49H46H35H34H33H26H23H20H19H18H17
d700336a13709aa05f17dce1c04d62ce 55H54H53H58H49H46H35H34H33H26H23H20H19H18H17
c9ea47e11925ef4b43de18821efd1526 55H61H60H59H58H49H46H35H34H33H26H23H20H19H18H17
e2bd565e61a0aa768aaa8dad0043947f 55H63H62H59H58H49H46H35H34H33H26H23H20H19H18H17
251a715704ce000c0fd12658de900676 43H65H69H49H46H35H34H33H26H23H20H19H18H17
aed2af2ee346c5fd3c08b307cd783da0 43H65H64H53H52H49H46H35H34H33H26H23H20H19H18H17
a69330df119a7c86448a9d7e452661f0 43H65H66H56H52H49H46H35H34H33H26H23H20H19H18H17
340a2778144cb19883d83c5f2f61195a 43H65H64H53H58H49H46H35H34H33H26H23H20H19H18H17
1d5924ccbc89600dfbcd3f021745c18d 43H65H67H60H59H58H49H46H35H34H33H26H23H20H19H18H17
f776a41a20977a728d80d6d97c5f9884 43H65H68H62H59H58H49H46H35H34H33H26H23H20H19H18H17
8af76725e0323a86ffce49fd82e8a43d 43H70H65H69H49H46H35H34H33H26H23H20H19H18H17
003d16a1a02c0e045987de1c0ef26513 43H70H65H64H53H52H49H46H35H34H33H26H23H20H19H18H17
62f800c47f2576b00f6375b26ca9d8a7 43H70H65H66H56H52H49H46H35H34H33H26H23H20H19H18H17
5c6568336c3a6f2170f3ea16ba5fd182 43H71H65H64H53H58H49H46H35H34H33H26H23H20H19H18H17
46fcf75f163fec42f4b61650e2240616 43H72H65H67H60H59H58H49H46H35H34H33H26H23H20H19H18H17
4eb915c5c08115ff01bba1f1ba8b6e92 43H72H65H68H62H59H58H49H46H35H34H33H26H23H20H19H18H17
b70a3f4d1a865d58755ec84c1050bbf8 76H75H49H46H35H34H33H26H23H20H19H18H17
a165cda044e66857ab7594f3174dc6d0 78H77H49H46H35H34H33H26H23H20H19H18H17
a83468763b18950b368577cf4eec1ebb 105H104H49H46H35H34H33H26H23H20H19H18H17
cbd75978b1b182c817b1b2b9027551ed 55H24H80H79H49H46H35H34H33H26H23H20H19H18H17
b1bb3cbfbf2273079781233876a6551b 55H82H81H79H49H46H35H34H33H26H23H20H19H18H17
48a76e7320d4fb303270fac0060a9c8c 55H82H83H79H49H46H35H34H33H26H23H20H19H18H17
51a88c99beb96e3132abd0da87b26646 55H85H84H83H79H49H46H35H34H33H26H23H20H19H18H17
85e938f05cc18e2a1c14ed30ad7d37e1 88H87H86H84H83H79H49H46H35H34H33H26H23H20H19H18H17
e0ed3093fcd76643ffa851deb71c3a51 55H89H86H84H83H79H49H46H35H34H33H26H23H20H19H18H17
6f814aeeb95809a540aa66ecba7e965b 43H91H100H79H49H46H35H34H33H26H23H20H19H18H17
a02470c8d01c8107a402c680870b8b1d 43H91H90H80H79H49H46H35H34H33H26H23H20H19H18H17
09b8c5e8f07d680846954153f0d3706a 43H91H92H81H79H49H46H35H34H33H26H23H20H19H18H17
db8ee39dace3d8b44055aec1793a502d 43H99H98H97H96H95H94H93H86H84H83H79H49H46H35H34H33H26H23H20H19H18H17
9a2f1d34ddc99c0f7a80ad569b35a77b 43H101H91H100H79H49H46H35H34H33H26H23H20H19H18H17
ad9677ebeaacb098f346b6b515bc94ff 43H101H91H90H80H79H49H46H35H34H33H26H23H20H19H18H17
74fe922e0d786cfd60e9a80cbc09769f 43H102H91H92H81H79H49H46H35H34H33H26H23H20H19H18H17
145cd117f32e0450898373aa41cd3387 43H103H99H98H97H96H95H94H93H86H84H83H79H49H46H35H34H33H26H23H20H19H18H17
f6047bef3cc9a5a7c4c650081e674061 119H118H49H46H35H34H33H26H23H20H19H18H17
f48bf2e62366e4fea88e49130bf497a8 40H39H107H106H49H46H35H34H33H26H23H20H19H18H17
f0c51d3cc347b21628022c0313cf5782 55H109H108H106H49H46H35H34H33H26H23H20H19H18H17
d129bbb4111bbd93066a14ca341c7874 43H112H113H106H49H46H35H34H33H26H23H20H19H18H17
5a662aa0173e40aa246beb4c85e062c3 43H112H111H110H108H106H49H46H35H34H33H26H23H20H19H18H17
e0d5a3db384483dffda13bce0ff4905f 43H115H114H112H113H106H49H46H35H34H33H26H23H20H19H18H17
2d9c0392b25f8863e3b0afb4d3919b44 43H115H114H112H111H110H108H106H49H46H35H34H33H26H23H20H19H18H17
047f4fe74b2bddf928875f9e8518de07 43H117H116H112H113H106H49H46H35H34H33H26H23H20H19H18H17
0e35233fb6f33268afdc4580b6ee69fe 21H17
9be87da205221f1dd3b50b74b3da6b47 21H18H17
b445e64f5ffaa0c12cfff192ded40051 21H19H18H17
b2e994927bf19b8ca0fa2c899471e302 21H120H19H18H17
fc09c14f009a97417e9328ea187d1110 122H121H120H19H18H17
e66698b5d4693c5ea8bdf85733b108b0 124H123H120H19H18H17
7adbd5f40f20e17210216fd196dd4e33 126H125H120H19H18H17
40ebe916343c1d79f7b058989cf52419 128H127H120H19H18H17
0d5a2cab2a46fced388d8e97b2f71023 130H129H120H19H18H17
ab6f7f1a848453ee4c28a6f05ae33cad 132H131H120H19H18H17
