aleV0V0F
aleV1V3IaleV2V3IaleV1V2F
aleV5V4OaleV4V5F
aleV6V6F
empty_shape
aleV6V8IaleV7V8IaleV6V7F
aleV7V6OaleV6V7F
asortedaconsV6V7qasortedV7AaleV6aV7V8Ia<V8alengthV7Aa<=c0V8FF
asorteda++V9V10qaleaV9V11aV10V12Ia<V12alengthV10Aa<=c0V12Aa<V11alengthV9Aa<=c0V11FAasortedV10AasortedV9F
asortedasnocV14V13qasortedV14AaleaV14V15V13Ia<V15alengthV14Aa<=c0V15FF
a=aseqaqaempty
asortedaseqaq1
asortedaseqaq2
asortedaseqaqAasortedaseqaq2Aasortedaseqaq1
loop invariant init
amemaxaseqaq
amemayaseqaq1
aleaxay
aleV16V17IamemV17aseqaq1IamemV16aseqaqF
amemayaseqaq2
aleV18V19IamemV19aseqaq2IamemV18aseqaqF
a=a+a+alengthaseqaqalengthaseqaq1alengthaseqaq2a+alengthaseqaq1alengthaseqaq2
a=a+a+aocc_allaxaseqaqaocc_allaxaseqaq1aocc_allaxaseqaq2a+aocc_allaxaseqaq1aocc_allaxaseqaq2
asortedaseqaq11
asortedaseqaq21
asortedaseqaq3
aleV16V17IamemV17aseqaq11IamemV16aseqaq3F
aleV18V19IamemV19aseqaq21IamemV18aseqaq3F
a=a+a+alengthaseqaq3alengthaseqaq11alengthaseqaq21a+alengthaseqaq1alengthaseqaq2
a=a+a+aocc_allV20aseqaq3aocc_allV20aseqaq11aocc_allV20aseqaq21a+aocc_allV20aseqaq1aocc_allV20aseqaq2F
Na=aseqaq21aemptyAa=aseqaq11aempty
a=aseqaq11aempty
Na=aseqaq21aempty
precondition
a=aseqaq22aaseqaq21c1
a=aseqaq4asnocaseqaq3aaseqaq21c0
a<a+alengthaseqaq11alengthaseqaq22a+alengthaseqaq11alengthaseqaq21Aa<=c0a+alengthaseqaq11alengthaseqaq21
loop variant decrease
asortedaseqaq4Aasortedaseqaq22Aasortedaseqaq11
loop invariant preservation
amemaxaseqaq4
amemayaseqaq11
aleV21V22IamemV22aseqaq11IamemV21aseqaq4F
amemayaseqaq22
aleV23V24IamemV24aseqaq22IamemV23aseqaq4F
a=a+a+alengthaseqaq4alengthaseqaq11alengthaseqaq22a+alengthaseqaq1alengthaseqaq2
a=a+a+aocc_allaxaseqaq4aocc_allaxaseqaq11aocc_allaxaseqaq22a+aocc_allaxaseqaq1aocc_allaxaseqaq2
Na=aseqaq11aempty
a=aseqaq21aempty
a=aseqaq12aaseqaq11c1
a=aseqaq4asnocaseqaq3aaseqaq11c0
a<a+alengthaseqaq12alengthaseqaq21a+alengthaseqaq11alengthaseqaq21Aa<=c0a+alengthaseqaq11alengthaseqaq21
asortedaseqaq4Aasortedaseqaq21Aasortedaseqaq12
amemayaseqaq12
aleV21V22IamemV22aseqaq12IamemV21aseqaq4F
amemayaseqaq21
aleV23V24IamemV24aseqaq21IamemV23aseqaq4F
a=a+a+alengthaseqaq4alengthaseqaq12alengthaseqaq21a+alengthaseqaq1alengthaseqaq2
a=a+a+aocc_allaxaseqaq4aocc_allaxaseqaq12aocc_allaxaseqaq21a+aocc_allaxaseqaq1aocc_allaxaseqaq2
aleaaseqaq11c0aaseqaq21c0
Naleaaseqaq11c0aaseqaq21c0
NNa=aseqaq11aempty
NNa=aseqaq21aempty
postcondition
a=alengthaseqaq3a+alengthaseqaq1alengthaseqaq2
a=aocc_allaxaseqaq3a+aocc_allaxaseqaq1aocc_allaxaseqaq2
ia=aocc_allV22aseqV19a+aocc_allV22aseqV16aocc_allV22aseqV17FAa=alengthaseqV19a+alengthaseqV16alengthaseqV17AasortedaseqV19iiia=a+a+aocc_allV25aseqV24aocc_allV25aseqV21aocc_allV25aseqV23a+aocc_allV25aseqV16aocc_allV25aseqV17FAa=a+a+alengthaseqV24alengthaseqV21alengthaseqV23a+alengthaseqV16alengthaseqV17AaleV26V27IamemV27aseqV23IamemV26aseqV24FAaleV28V29IamemV29aseqV21IamemV28aseqV24FAasortedaseqV24AasortedaseqV23AasortedaseqV21Aa<a+alengthaseqV21alengthaseqV23a+alengthaseqV21alengthaseqV20Aa<=c0a+alengthaseqV21alengthaseqV20Ia=aseqV24asnocaseqV19aaseqV20c0FIa=aseqV23aaseqV20c1FANa=aseqV20aemptya=a+a+aocc_allV32aseqV31aocc_allV32aseqV30aocc_allV32aseqV20a+aocc_allV32aseqV16aocc_allV32aseqV17FAa=a+a+alengthaseqV31alengthaseqV30alengthaseqV20a+alengthaseqV16alengthaseqV17AaleV33V34IamemV34aseqV20IamemV33aseqV31FAaleV35V36IamemV36aseqV30IamemV35aseqV31FAasortedaseqV31AasortedaseqV20AasortedaseqV30Aa<a+alengthaseqV30alengthaseqV20a+alengthaseqV21alengthaseqV20Aa<=c0a+alengthaseqV21alengthaseqV20Ia=aseqV31asnocaseqV
VC for merge
a=avaresultalengthaseqaq
a>avaresultavaone
a=aseqaq1aempty
a=aseqaq2aempty
a=a+a+aocc_allaxaseqaq1aocc_allaxaseqaq2aocc_allaxaseqaqaocc_allaxaseqaq
a=a+a+aocc_allV16aseqaq1aocc_allV16aseqaq2aocc_allV16aseqaqaocc_allV16aseqaqF
a=alengthaseqaqa+a+alengthaseqaq1alengthaseqaq2alengthaseqaq
a=alengthaseqaq1a+alengthaseqaq2c1Aa=alengthaseqaqc0Oa=alengthaseqaq1alengthaseqaq2
a=a+a+aocc_allV16aseqaq11aocc_allV16aseqaq21aocc_allV16aseqaq3aocc_allV16aseqaqF
a=alengthaseqaqa+a+alengthaseqaq11alengthaseqaq21alengthaseqaq3
a=alengthaseqaq11a+alengthaseqaq21c1Aa=alengthaseqaq3c0Oa=alengthaseqaq11alengthaseqaq21
Na=aseqaq3aempty
a=aseqaq4aaseqaq3c1
a=aseqaq12asnocaseqaq11aaseqaq3c0
Na=aseqaq4aempty
a=aseqaq5aaseqaq4c1
a=aseqaq22asnocaseqaq21aaseqaq4c0
a<alengthaseqaq5alengthaseqaq3Aa<=c0alengthaseqaq3
a=a+a+aocc_allaxaseqaq12aocc_allaxaseqaq22aocc_allaxaseqaq5aocc_allaxaseqaq
a=a+a+aocc_allV17aseqaq12aocc_allV17aseqaq22aocc_allV17aseqaq5aocc_allV17aseqaqF
a=alengthaseqaqa+a+alengthaseqaq12alengthaseqaq22alengthaseqaq5
a=alengthaseqaq12a+alengthaseqaq22c1Aa=alengthaseqaq5c0Oa=alengthaseqaq12alengthaseqaq22
NNa=aseqaq4aempty
a<alengthaseqaq4alengthaseqaq3Aa<=c0alengthaseqaq3
a=a+a+aocc_allaxaseqaq12aocc_allaxaseqaq21aocc_allaxaseqaq4aocc_allaxaseqaq
a=a+a+aocc_allV17aseqaq12aocc_allV17aseqaq21aocc_allV17aseqaq4aocc_allV17aseqaqF
a=alengthaseqaqa+a+alengthaseqaq12alengthaseqaq21alengthaseqaq4
a=alengthaseqaq12a+alengthaseqaq21c1Aa=alengthaseqaq4c0Oa=alengthaseqaq12alengthaseqaq21
NNa=aseqaq3aempty
a=aseqaq3aempty
assertion
a=a+aocc_allaxaseqaq11aocc_allaxaseqaq21aocc_allaxaseqaq
a=a+aocc_allV17aseqaq11aocc_allV17aseqaq21aocc_allV17aseqaqF
a<alengthaseqaq11alengthaseqaqAa<=c0alengthaseqaq
variant decrease
asortedaseqaq12
apermut_allaseqaq12aseqaq11
a<alengthaseqaq21alengthaseqaqAa<=c0alengthaseqaq
asortedaseqaq22
apermut_allaseqaq22aseqaq21
asortedaseqaq22Aasortedaseqaq12Aa=aseqaq3aempty
asortedaseqaq4
a=alengthaseqaq4a+alengthaseqaq12alengthaseqaq22
a=aocc_allV18aseqaq4a+aocc_allV18aseqaq12aocc_allV18aseqaq22F
apermut_allaseqaq4aseqaqAasortedaseqaq4
Na>avaresultavaone
a=aseqaqaconsV16aemptyEOa=aseqaqaempty
apermut_allaseqaqaseqaqAasortedaseqaq
iapermut_allaseqV16aseqV16AasortedaseqV16Aa=aseqV16aconsV18aemptyEOa=aseqV16aemptyiapermut_allaseqV26aseqV16AasortedaseqV26Ia=aocc_allV27aseqV26a+aocc_allV27aseqV24aocc_allV27aseqV25FAa=alengthaseqV26a+alengthaseqV24alengthaseqV25AasortedaseqV26FAasortedaseqV25AasortedaseqV24Aa=aseqV23aemptyIapermut_allaseqV25aseqV21AasortedaseqV25FAa<alengthaseqV21alengthaseqV16Aa<=c0alengthaseqV16Iapermut_allaseqV24aseqV22AasortedaseqV24FAa<alengthaseqV22alengthaseqV16Aa<=c0alengthaseqV16Aa=a+aocc_allV28aseqV22aocc_allV28aseqV21aocc_allV28aseqV16FAa=aseqV23aemptyia=alengthaseqV30a+alengthaseqV21c1Aa=alengthaseqV29c0Oa=alengthaseqV30alengthaseqV21Aa=alengthaseqV16a+a+alengthaseqV30alengthaseqV21alengthaseqV29Aa=a+a+aocc_allV31aseqV30aocc_allV31aseqV21aocc_allV31aseqV29aocc_allV31aseqV16FAa<alengthaseqV29alengthaseqV23Aa<=c0alengthaseqV23a=alengthaseqV30a+alengthaseqV33c1Aa=alengthaseqV32c0Oa=alengthaseqV30alengthaseqV33Aa=alengthaseqV16a+a+alengthaseqV30alengthaseqV33alengthaseqV32Aa=a+a+aocc_allV34aseqV30aocc_allV34aseqV33a
VC for mergesort

5efcf1636b64d3bc543212a0b42dbb00 4H3H2H1H0
20afbaba010ff51f145b9893719e096a 4H5H2H1H0
2827f9898044aa38116605ee72fbe4ff 4H6H2H1H0
4ef4dfba729566a49c2d4b5c2ebdc507 67H66H9H8H7H2H1H0
2defb24b6f9134668bc1081bd9e0f0c1 14H13H12H11H10H9H8H7H2H1H0
8f5cc833296744dc6d6b9f42a4d2b883 14H17H16H15H13H12H11H10H9H8H7H2H1H0
479adc17bf80757af6d76771b6caaba0 14H17H19H15H18H13H12H11H10H9H8H7H2H1H0
57c9a9aa34332f3c631e18a2317ecc08 14H21H20H18H13H12H11H10H9H8H7H2H1H0
8411c2f4bb19862bd203fb9333667ce0 14H22H21H20H18H13H12H11H10H9H8H7H2H1H0
dc602004105e6231aea7bc382dd29cf2 33H32H31H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
6fb3151932fb412585bbaf83754e8661 37H36H35H34H31H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
5ac5049e421cde55c809537d3bb0f1aa 39H38H35H34H31H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
dd6c36835de3e73ea59984ddf83559dd 39H17H41H40H38H35H34H31H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
4d807b77699f6fae0391e706d1919595 39H17H43H40H42H38H35H34H31H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
2f581bd29e29416648ffea5fd0c53070 39H45H44H42H38H35H34H31H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
098cf19576924f847fd9f7579e6d7ba7 39H46H45H44H42H38H35H34H31H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
3ccbdc9c4dfca56c934abce05541a6db 33H47H48H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
81be64dc45c08c39e3922dffa7e217cd 37H51H50H49H48H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
c58b8734701b0fa5343348f8f4ef494b 39H52H50H49H48H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
7c72a107bc46a2be94bcff7e86b38cdc 39H17H53H40H52H50H49H48H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
5a661ed4a4dc1981ed9bd680cebc28e8 39H17H55H40H54H52H50H49H48H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
96d7570c6b8986b0e68f5b6f9717977d 39H57H56H54H52H50H49H48H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
8cf20973f9f772ec47879bec2690d554 39H58H57H56H54H52H50H49H48H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
4e668a7e5003ad6faabb948be5ec8166 33H47H32H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
1f1bc6f9d35c6477b9b78fa7672d2572 33H32H32H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
8b980377572b1d8f24635c7c97c0fb12 33H47H59H32H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
19c033564a89d5594512b056108fbd03 37H51H50H49H59H32H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
f17c260f7802036b988e95cdc3ccab17 39H52H50H49H59H32H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
a855ab46179245f0c84296472c6c38b8 39H17H53H40H52H50H49H59H32H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
14ee506d835c28111640447e7bbf9c12 39H17H55H40H54H52H50H49H59H32H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
a3833e94044595cb2cb704966097e26a 39H57H56H54H52H50H49H59H32H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
d628685159183bb751f58da43c2b16e0 39H58H57H56H54H52H50H49H59H32H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
80daae5737c68a3599196b5ea1e8873e 33H32H60H32H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
d355505bf0012eab36add2660919bc8e 37H36H35H34H60H32H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
ae5cb24933c156d64bd4463ca22e080b 39H38H35H34H60H32H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
f0a9d2c9e4cf6ba81ff17e8885f6cf83 39H17H41H40H38H35H34H60H32H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
70ad49d7c899e308e368f499f76279ac 39H17H43H40H42H38H35H34H60H32H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
8adccb30955a7abdd77f2b58a8b47f62 39H45H44H42H38H35H34H60H32H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
dd488aaa6f405ac2ed8dd4b17ca1be10 39H46H45H44H42H38H35H34H60H32H47H30H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
6f2d39655b9fc530ae7dd485b9a4d7e6 63H25H62H61H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
ae6df353a445f67b6b5190d50dcd5f8a 63H64H25H62H61H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
d267a84556359225b05e75a1101f9650 63H65H64H25H62H61H29H28H27H26H25H24H23H12H11H10H9H8H7H2H1H0
7281e33bd37e30a14a153336cbbf7565 117H116H9H8H7H2H1H0
a649803d00127f908742d46dc19817aa 14H72H71H70H69H68H9H8H7H2H1H0
f18197cd41b44b01d933939b156663e9 14H74H73H71H70H69H68H9H8H7H2H1H0
37cc2433b5cd17185eec259cf241ca55 14H75H74H73H71H70H69H68H9H8H7H2H1H0
a79bb35baebb7528aa8ee0de14a19770 33H79H79H78H77H76H71H70H69H68H9H8H7H2H1H0
45b8e738031cc50d921b373ae0258432 33H82H82H81H80H79H78H77H76H71H70H69H68H9H8H7H2H1H0
530ac58ea2a6c82c7050643854ca1953 37H85H84H83H82H81H80H79H78H77H76H71H70H69H68H9H8H7H2H1H0
5305db8637c6726456e00a78c0e46011 39H86H84H83H82H81H80H79H78H77H76H71H70H69H68H9H8H7H2H1H0
956b68e344ea6df04b2959d948befd6d 39H88H87H84H83H82H81H80H79H78H77H76H71H70H69H68H9H8H7H2H1H0
389aaaa66cc14c915166ecdeaecd3d49 39H89H88H87H84H83H82H81H80H79H78H77H76H71H70H69H68H9H8H7H2H1H0
ccc9578aa1a0921dd3457c356841c656 37H91H90H81H80H79H78H77H76H71H70H69H68H9H8H7H2H1H0
6331e22ff23c417cfe3174766c10a782 39H92H90H81H80H79H78H77H76H71H70H69H68H9H8H7H2H1H0
ec4d596b927343f32b3532e711169537 39H94H93H90H81H80H79H78H77H76H71H70H69H68H9H8H7H2H1H0
8140a9ff458408858df0d7adf83a72ab 39H95H94H93H90H81H80H79H78H77H76H71H70H69H68H9H8H7H2H1H0
2287ccbdf8619fd1ab5a155a06510438 98H97H96H78H77H76H71H70H69H68H9H8H7H2H1H0
c5776cc2091563df350006b549d3714e 98H99H97H96H78H77H76H71H70H69H68H9H8H7H2H1H0
72f7e636a78bb9d18c2d88e5850f0484 102H101H100H97H96H78H77H76H71H70H69H68H9H8H7H2H1H0
e7c53359cd2c459da507afcf24ba82a0 102H105H104H103H100H97H96H78H77H76H71H70H69H68H9H8H7H2H1H0
f4dc488d0e1cbe21fabefbec3a242382 33H108H107H106H104H103H100H97H96H78H77H76H71H70H69H68H9H8H7H2H1H0
b5fe4312feb75698f404206d4eb099f1 63H112H111H110H109H107H106H104H103H100H97H96H78H77H76H71H70H69H68H9H8H7H2H1H0
82084d05173a6b73161389c232638b45 98H114H113H68H9H8H7H2H1H0
0d35914b2e9000bd5585130c49740ac6 63H115H114H113H68H9H8H7H2H1H0
