a>asizec1
a=anthabvzeroV0aFalseIa<V0asizeAa<=c0V0F
a=anthabvoneV1aTrueIa<V1asizeAa<=c0V1F
a=V2V3IaeqV2V3F
a=anthabw_andV4V5V6aandbanthV4V6anthV5V6Ia<V6asizeAa<=c0V6F
a=anthabw_orV7V8V9aorbanthV7V9anthV8V9Ia<V9asizeAa<=c0V9F
a=anthabw_xorV10V11V12axorbanthV10V12anthV11V12Ia<V12asizeAa<=c0V12F
a=anthabw_xorV13V14V15anotbanthV14V15Ia=anthV13V15aTrueAa<V15asizeAa<=c0V15F
empty_shape
a=anthabw_xorV16V17V18anthV17V18Ia=anthV16V18aFalseAa<V18asizeAa<=c0V18F
a=anthabw_xorV19V20V21anotbanthV19V21Ia=anthV20V21aTrueAa<V21asizeAa<=c0V21F
a=anthabw_xorV22V23V24anthV22V24Ia=anthV23V24aFalseAa<V24asizeAa<=c0V24F
a=anthabw_notV25V26anotbanthV25V26Ia<V26asizeAa<=c0V26F
a=anthalsrV27V29V28anthV27a+V28V29Ia<a+V28V29asizeAa<V29asizeAa<=c0V29Aa<V28asizeAa<=c0V28F
a=anthalsrV30V32V31aFalseIa>=a+V31V32asizeAa<V32asizeAa<=c0V32Aa<V31asizeAa<=c0V31F
a=anthaasrV33V35V34anthV33a+V34V35Ia<a+V34V35asizeIa<=c0V35Ia<V34asizeAa<=c0V34F
a=anthaasrV36V38V37anthV36a-asizec1Ia>=a+V37V38asizeIa<=c0V38Ia<V37asizeAa<=c0V37F
a=anthalslV39V41V40anthV39a-V40V41Ia<=c0a-V40V41Ia<=c0V41Ia<V40asizeAa<=c0V40F
a=anthalslV42V44V43aFalseIa>c0a-V43V44Ia<=c0V44Ia<V43asizeAa<=c0V43F
a=ato_nat_subV45V46V47ato_nat_subV45a-V46c1V47Ia=anthV45V46aFalseIa<V46asizeAa<=V47V46Aa<=c0V47F
a=ato_nat_subV48V49V50a+apow2a-V49V50ato_nat_subV48a-V49c1V50Ia=anthV48V49aTrueIa<V49asizeAa<=V50V49Aa<=c0V50F
a=ato_nat_subV51V52V53c0Ia>V53V52F
a>asizeaj
a>=ajai
a>=aic0
a=anthabV54aFalseIa>V54aiAa>=ajV54F
a<=ajc0
a=ato_nat_subabajc0ato_nat_subabaic0
base case
a<c0aj
a=ato_nat_subabV55c0ato_nat_subabaic0Ia=anthabV56aFalseIa>V56aiAa>=V55V56FIa>=aic0Ia>=V55aiIa>asizeV55Ia<V55ajF
recursive case
a=ato_nat_subV54V56c0ato_nat_subV54V55c0Ia=anthV54V57aFalseIa>V57V55Aa>=V56V57FIa>=V55c0Aa>=V56V55Aa>asizeV56F
a=ato_nat_subabajV58c0Ia=anthabV59aFalseIa>=V59V58Aa>=ajV59FIa>=V58c0Aa>asizeajF
a=ato_nat_subabV58V59c0Ia=anthabV60aFalseIa>=V60V59Aa>=V58V60FIa>=V59c0Aa>asizeV58FIa<V58ajF
a=ato_nat_subabajV61c0Ia=anthabV62aFalseIa>=V62V61Aa>=ajV62FIa>=V61c0Aa>asizeajF
a=ato_nat_subV58V59V60c0Ia=anthV58V61aFalseIa>=V61V60Aa>=V59V61FIa>=V60c0Aa>asizeV59F
a=anthabV62aTrueIa>=V62aiAa>=ajV62F
a>ajai
a<a-a-ajc1aia-ajaiAa<=c0a-ajai
variant decrease
a>=aic0Aa>=a-ajc1aiAa>asizea-ajc1
precondition
a>=a-ajc1ak
a>=akai
a=anthabakaTrue
a=ato_nat_subabV63aia-apow2a+a-V63aic1c1La-ajc1ONa>ajai
a=ato_nat_subabajaia-apow2a+a-ajaic1c1
postcondition
a=ato_nat_subV62V64V63a-apow2a+a-V64V63c1c1Ia=ato_nat_subV62V65V63a-apow2a+a-V65V63c1c1La-V64c1ONa>V64V63Aa=anthV62V67aTrueIa>=V67V63Aa>=V66V67FAa>=V63c0Aa>=V66V63Aa>asizeV66Aa<a-V66V63a-V64V63Aa<=c0a-V64V63La-V64c1Ia>V64V63Ia=anthV62V68aTrueIa>=V68V63Aa>=V64V68FAa>=V63c0Aa>=V64V63Aa>asizeV64F
VC for to_nat_of_one
a=ato_nat_subV62V64V63a-apow2a+a-V64V63c1c1Ia=anthV62V65aTrueIa>=V65V63Aa>=V64V65FIa>=V63c0Aa>=V64V63Aa>asizeV64F
a=ato_nat_subab1ajV66ato_nat_subab2ajV66Ia=anthab1V67anthab2V67Ia<=V67ajAa<=V66V67FIa>=V66c0Aa>asizeajF
a=ato_nat_subab1V66V67ato_nat_subab2V66V67Ia=anthab1V68anthab2V68Ia<=V68V66Aa<=V67V68FIa>=V67c0Aa>asizeV66FIa<V66ajF
a=ato_nat_subab1ajV69ato_nat_subab2ajV69Ia=anthab1V70anthab2V70Ia<=V70ajAa<=V69V70FIa>=V69c0Aa>asizeajF
a=ato_nat_subV66V68V69ato_nat_subV67V68V69Ia=anthV66V70anthV67V70Ia<=V70V68Aa<=V69V70FIa>=V69c0Aa>asizeV68F
a=anthafrom_intV71V72aFalseIa=amodadivV71apow2V72c2c0Aa>=V72c0Aa>asizeV72F
a=anthafrom_intV73V74aTrueINa=amodadivV73apow2V74c2c0Aa>=V74c0Aa>asizeV74F
a=anthafrom_intV75c0aFalseIa=amodV75c2c0F
a=anthafrom_intV76c0aTrueINa=amodV76c2c0F
a=anthafrom_intc0V77aFalseIa>=V77c0Aa>asizeV77F
a=anthafrom_int2cV78a-asizec1aFalseIa>=V78c0F
a=anthafrom_int2cV79a-asizec1aTrueIa<V79c0F
a=anthafrom_int2cV80V81aFalseIa=amodadivV80apow2V81c2c0Aa>=V81c0Aa>a-asizec1V81F
a=anthafrom_int2cV82V83aTrueINa=amodadivV82apow2V83c2c0Aa>=V83c0Aa>a-asizec1V83F
a=anthafrom_int2cV84c0aFalseIa=amodV84c2c0F
a=anthafrom_int2cV85c0aTrueINa=amodV85c2c0F
a=anthafrom_int2cc0V86aFalseIa>=V86c0Aa>asizeV86F
a=anthafrom_int2ca+V87apow2V89V88anthafrom_int2cV87V88Ia<V88a-asizec1Aa<V88V89Aa<=c0V88F
a=anthV0c1aFalseLabw_andabvzeroabvone
a=anthV0c15aTrueLalsrabvonec16
a=anthV0c16aFalseLalsrabvonec16
a=anthV0c15aTrueLaasrabvonec16
a=anthV0c16aTrueLaasrabvonec16
a=anthV0c16aFalseLaasralsrabvonec1c16
a=ato_natabvzeroc0
a=ato_natalsrabvonec31c1
a=ato_natalsrabvonec30c3
a=ato_natalsrabvonec29c7
a=ato_natalsrabvonec28c15
a=ato_natalsrabvonec27c31
a=ato_natalsrabvonec26c63
a=ato_natalsrabvonec25c127
a=ato_natalsrabvonec24c255
a=ato_natalsrabvonec23c511
a=ato_natalsrabvonec22c1023
a=ato_natalsrabvonec21c2047
a=ato_natalsrabvonec20c4095
a=ato_natalsrabvonec19c8191
a=ato_natalsrabvonec18c16383
a=ato_natalsrabvonec17c32767
a=ato_natalsrabvonec16c65535
a=ato_natalsrabvonec15c131071
a=ato_natalsrabvonec14c262143
a=ato_natalsrabvonec13c524287
a=ato_natalsrabvonec12c1048575
a=ato_natalsrabvonec8c16777215
a=ato_natabvonec4294967295

739cd86bd850cd1fbb2b08e1bfd8b5e3 8H7H6H5H4H3H2H1H0
b767e02dfb037365abcc8b650a26bd7f 8H9H7H6H5H4H3H2H1H0
26719717a2d95755247fe915a41566f6 8H10H9H7H6H5H4H3H2H1H0
cf7976e956a340ae1839ba6950fd0eb9 8H11H10H9H7H6H5H4H3H2H1H0
3831e9623475d060dd054bf869add2b0 8H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
a60ba9b19cf18787df8b48a06ee25af4 8H27H25H24H23H22H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
b451ce3a88d92badb512d8c8a04034f2 28H27H26H25H24H23H22H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
c7d23b13cc896fdb45b666c8002b6117 31H27H30H29H25H24H23H22H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
e5ffc5002c86051be00b87c7ff155f1e 8H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
5306c2a568d93501fe7f98f5458d711d 8H33H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
77308c4a0d791ddb0bcb569219346c4e 28H33H26H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
8ae433dabf911573c9825e520a0a8987 31H35H34H29H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
0947e52d5e18e28b864ed767621f46ff 50H49H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
de6fd67175f832eacb02370960a31e6c 40H39H38H37H24H23H22H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
ea107be4e8db3ce0dee300ae2d07c96f 42H41H38H37H24H23H22H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
ca13bb0d9751002b062b0cbec8b8279f 42H45H44H43H41H38H37H24H23H22H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
7e40613abda90fde4a86270b61e9e434 48H47H46H37H24H23H22H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
db093a6fdeaacfd00a3fc2b9d2c90100 8H55H51H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
aae86dda76a1d07ccbd802353751c2e1 8H52H51H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
7b2bc371f9a4c4d118523fd65d4e4e46 28H52H26H51H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
02199f831bd2425f2a4bcc996bbe14c3 31H54H53H29H51H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
1fe405949616a2ef6bb8284d2e1ba399 8H58H57H56H55H51H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
7e064ce6c887c26f541b67f808aebad1 8H59H58H57H56H55H51H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
6925e075cab5ad4bf2da0167422b7a44 8H60H59H58H57H56H55H51H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
4a8ab9ff998434ea3f5c44a4413bd4f7 8H65H64H63H62H61H60H59H58H57H56H55H51H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
21952b0aefa64679a788c47eb79916f9 8H66H65H64H63H62H61H60H59H58H57H56H55H51H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
c4f2cc3f36c27f39c89d8fa810f20ebf 8H67H66H65H64H63H62H61H60H59H58H57H56H55H51H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
14e84a645ab49861b251fe654b326a2a 8H68H67H66H65H64H63H62H61H60H59H58H57H56H55H51H36H32H21H20H19H18H17H16H15H14H13H12H11H10H9H7H6H5H4H3H2H1H0
5f6fe920c65e72583f1ee36d05d8d88a 8H0
c25374eaddcce7f10fc6218c597004a4 8H0
e6dd32ea428a99e8480d1c272024a58d 8H69
5db3356ed666d99dfd008917b61b320b 8H70
698076a61ea93cc13d521f0ce76966f3 8H71
c78e4c58c7ec171524ab0d507085d516 8H72
0a497808423432f6ebe70e1d5994c51a 8H73
43929ef423d1ecbbece0f10712391074 8H74
09aa869af6950d42547746386d2beec7 8H75
8f272c57a62851ff5171f74fa41669b1 8H76
bff0d2572ec2db55a42cc51cb093dfb2 8H77
c2f11f6a0f135ae78610e248e97f114b 8H78
4ba5832d5e99d5c01882bea9826e8871 8H79
9fc5e5df882eb28bff89ab696a2df70f 8H80
13ed56ddb792a339f6a537e238cac79f 8H81
523b15032c209541664a07dcf2f3b60b 8H82
b0f9827eb1ad6a5d566f968da7db529f 8H83
12c63bf36a2ed03b91d36106dd7364e5 8H84
3a5097af88bac16cfe43835d4cd7fd4e 8H85
9096488a00996b04324c3c5dd34ea51f 8H86
8556813912c98952381718e718b2e1c3 8H87
b528df2fe41c7c9ed5e2c4b72035414b 8H88
0c10da85cb967ab089ac9ebd72952bbd 8H89
13a08edb4c26b118e1e63149a3eeb0bd 8H90
61ab7e7b24c7daeeb03d3c4d28b21044 8H91
909f3bb1e295799ac4f2ec2dee0cbc4a 8H92
634d7b2e7ff08b035d343ccad31f30f4 8H93
ba372d5214f3ffc14350efbe04683174 8H94
9acdd087c66976f37e608992b8abd498 8H95
c2238ff52f4286077135e1e9e2f5e2a0 8H96
278dd7d87f5accff6af33b0bfa9319d2 8H97
