ia=V1asuma@ea=a@a@V3V4V5agetV4V5FavisitedV2c0alengthavisitedV2a=V8asuma@ea=a@a@V9V10V11agetV10V11FavisitedV6c0alengthavisitedV6AapermittedV6Ia=V8a+V1V7FIapermittedV6Aa=avisitedV6asnocavisitedV2V7FFAapermittedV2ANacompleteV2NacompleteV2AapermittedV2Ia=V1asuma@ea=a@a@V12V13V14agetV13V14FavisitedV2c0alengthavisitedV2AapermittedV2FAa=c0asuma@ea=a@a@V15V16V17agetV16V17FavisitedV0c0alengthavisitedV0AapermittedV0Ia=avisitedV0aemptyAapermittedV0F
VC for sum
a=a++aemptyaof_listaNilaof_listaNil
VC for cursor
a=a++avisitedV0aof_listato_visitV0aof_listacollectionV0Fato_visitV0acollectionV0avisitedV0
a==a++asnocV1V3aof_listV2a++V1aof_listaConsV3V2F
VC for snoc_Cons
CfaNilCfaNila=V20V8Aa=ato_visitV16V21aConsVVato_visitV4Aa=avisitedV16asnocavisitedV4V8Ia=V19avisitedV16Aa=V18acollectionV16Aa=V17ato_visitV16Aa=a++V19aof_listV17aof_listV18Aa==aof_listV17aaof_listV18alengthV19Ia==a++asnocV10V8aof_listV9a++V10aof_listaConsV8V9Ia=V17V9Aa=V18V14Aa=V19V15FIa=V13ato_visitV4Aa=V14acollectionV4Aa=V15V12FIa=aV12V22aV11V22Ia<V22alengthV11Aa<=c0V22FAa=aV12alengthV11V8Aa=alengthV12a+c1alengthV11LasnocV11V8LavisitedV4LavisitedV4aConsVVato_visitV4INacompleteV4Aa=V7avisitedV4Aa=V6acollectionV4Aa=V5ato_visitV4F
VC for next
NacompleteV4qa=V8aTrueICa=V8aFalseaNila=V8aTruewato_visitV4FIa=V7avisitedV4Aa=V6acollectionV4Aa=V5ato_visitV4F
VC for has_next
a=ato_visitV6V4Aa=acollectionV6V4Aa=avisitedV6aemptyItAtIa=ato_visitV6V4Aa=acollectionV6V4Aa=avisitedV6V5Aa=V9avisitedV6Aa=V8acollectionV6Aa=V7ato_visitV6FAa=a++V5aof_listV4aof_listV4LaemptyF
VC for create
a=acollectionV5V4Aa=avisitedV5aemptyAapermittedV5ItAtIa=ato_visitV5V4Aa=acollectionV5V4Aa=avisitedV5aemptyAa=V8avisitedV5Aa=V7acollectionV5Aa=V6ato_visitV5FF
VC for create'refn
apermittedV8Aa=avisitedV8asnocavisitedV4V12ItAtICfaNila=V13V12Aa=ato_visitV8V14aConsVVato_visitV4Aa=avisitedV8asnocavisitedV4V12FIa=V11avisitedV8Aa=V10acollectionV8Aa=V9ato_visitV8Ia=V10acollectionV4FANacompleteV4ItAtIapermittedV4ANacomplete1V4Aa=V7avisitedV4Aa=V6acollectionV4Aa=V5ato_visitV4F
VC for next'refn
NacompleteV4qNacomplete1V4ItAtIapermittedV4Aa=V7avisitedV4Aa=V6acollectionV4Aa=V5ato_visitV4F
VC for has_next'refn
a=asumV0asum1a@ea=a@a@V1V2V3agetV2V3Faof_listV0c0alengthaof_listV0Ia=V0aNilF
empty_shape
a=asumV0asum1a@ea=a@a@V3V4V5agetV4V5Faof_listV0c0alengthaof_listV0Ia=asumV2asum1a@ea=a@a@V6V7V8agetV7V8Faof_listV2c0alengthaof_listV2Ia=V0aConsV1V2FF
Ca=asumV0asum1a@ea=a@a@V1V2V3agetV2V3Faof_listV0c0alengthaof_listV0aNila=asumV0asum1a@ea=a@a@V6V7V8agetV7V8Faof_listV0c0alengthaof_listV0Ia=asumV5asum1a@ea=a@a@V9V10V11agetV10V11Faof_listV5c0alengthaof_listV5aConsVVV0F
a=asumV0asum1a@ea=a@a@V1V2V3agetV2V3Faof_listV0c0alengthaof_listV0F
a=c0asum1a@ea=a@a@V6V7V8agetV7V8FavisitedV5c0alengthavisitedV5Ia=acollectionV5V4Aa=avisitedV5aemptyAapermittedV5FF
loop invariant init
apermittedV5Ia=c0asum1a@ea=a@a@V6V7V8agetV7V8FavisitedV5c0alengthavisitedV5Ia=acollectionV5V4Aa=avisitedV5aemptyAapermittedV5FF
apermittedV6IapermittedV6Aa=V7asum1a@ea=a@a@V8V9V10agetV9V10FavisitedV6c0alengthavisitedV6Ia=acollectionV6acollectionV5FIa=acollectionV5V4Aa=avisitedV5aemptyAapermittedV5FF
precondition
NacompleteV6INacompleteV6IapermittedV6Aa=V7asum1a@ea=a@a@V8V9V10agetV9V10FavisitedV6c0alengthavisitedV6Ia=acollectionV6acollectionV5FIa=acollectionV5V4Aa=avisitedV5aemptyAapermittedV5FF
apermittedV6INacompleteV6INacompleteV6IapermittedV6Aa=V7asum1a@ea=a@a@V8V9V10agetV9V10FavisitedV6c0alengthavisitedV6Ia=acollectionV6acollectionV5FIa=acollectionV5V4Aa=avisitedV5aemptyAapermittedV5FF
a<a-alengthaof_listV4alengthavisitedV8a-alengthaof_listV4alengthavisitedV6Aa<=c0a-alengthaof_listV4alengthavisitedV6Ia=V10a+V7V9FIapermittedV8Aa=avisitedV8asnocavisitedV6V9FIa=acollectionV8acollectionV6FINacompleteV6IapermittedV6Aa=V7asum1a@ea=a@a@V11V12V13agetV12V13FavisitedV6c0alengthavisitedV6Ia=acollectionV6acollectionV5FIa=acollectionV5V4Aa=avisitedV5aemptyAapermittedV5FF
loop variant decrease
a=a+asum1a@ea=a@a@V9V10V11agetV10V11FavisitedV6c0alengthavisitedV6V8asum1a@ea=a@a@V12V13V14agetV13V14FavisitedV7c0alengthavisitedV7IapermittedV7Aa=avisitedV7asnocavisitedV6V8FIa=acollectionV7acollectionV6FINacompleteV6IapermittedV6Ia=acollectionV6acollectionV5FIa=acollectionV5V4Aa=avisitedV5aemptyAapermittedV5FF
loop invariant preservation
a=V10asum1a@ea=a@a@V11V12V13agetV12V13FavisitedV8c0alengthavisitedV8Ia=V10a+V7V9FIapermittedV8Aa=avisitedV8asnocavisitedV6V9FIa=acollectionV8acollectionV6FINacompleteV6IapermittedV6Aa=V7asum1a@ea=a@a@V14V15V16agetV15V16FavisitedV6c0alengthavisitedV6Ia=acollectionV6acollectionV5FIa=acollectionV5V4Aa=avisitedV5aemptyAapermittedV5FF
apermittedV8Ia=V10asum1a@ea=a@a@V11V12V13agetV12V13FavisitedV8c0alengthavisitedV8Ia=V10a+V7V9FIapermittedV8Aa=avisitedV8asnocavisitedV6V9FIa=acollectionV8acollectionV6FINacompleteV6IapermittedV6Aa=V7asum1a@ea=a@a@V14V15V16agetV15V16FavisitedV6c0alengthavisitedV6Ia=acollectionV6acollectionV5FIa=acollectionV5V4Aa=avisitedV5aemptyAapermittedV5FF
a=V7asumV4INNacompleteV6IapermittedV6Aa=V7asum1a@ea=a@a@V8V9V10agetV9V10FavisitedV6c0alengthavisitedV6Ia=acollectionV6acollectionV5FIa=acollectionV5V4Aa=avisitedV5aemptyAapermittedV5FF
postcondition
ia=V7asumV4apermittedV8Aa=V10asum1a@ea=a@a@V11V12V13agetV12V13FavisitedV8c0alengthavisitedV8Aa<a-alengthaof_listV4alengthavisitedV8a-alengthaof_listV4alengthavisitedV6Aa<=c0a-alengthaof_listV4alengthavisitedV6Ia=V10a+V7V9FIapermittedV8Aa=avisitedV8asnocavisitedV6V9FIa=acollectionV8acollectionV6FAapermittedV6ANacompleteV6NacompleteV6AapermittedV6IapermittedV6Aa=V7asum1a@ea=a@a@V14V15V16agetV15V16FavisitedV6c0alengthavisitedV6Ia=acollectionV6acollectionV5FAapermittedV5Aa=c0asum1a@ea=a@a@V17V18V19agetV18V19FavisitedV5c0alengthavisitedV5Ia=acollectionV5V4Aa=avisitedV5aemptyAapermittedV5FF
VC for list_sum
a=acollectionV1V0Aa=avisitedV1aemptyAapermittedV1ItAtIa=ato_visitV1V0Aa=acollectionV1V0Aa=avisitedV1aemptyAa=V4avisitedV1Aa=V3acollectionV1Aa=V2ato_visitV1FF
apermittedV4Aa=avisitedV4asnocavisitedV0V8ItAtICfaNila=V9V8Aa=ato_visitV4V10aConsVVato_visitV0Aa=avisitedV4asnocavisitedV0V8FIa=V7avisitedV4Aa=V6acollectionV4Aa=V5ato_visitV4Ia=V6acollectionV0FANacompleteV0ItAtIapermittedV0ANacomplete1V0Aa=V3avisitedV0Aa=V2acollectionV0Aa=V1ato_visitV0F
NacompleteV0qNacomplete1V0ItAtIapermittedV0Aa=V3avisitedV0Aa=V2acollectionV0Aa=V1ato_visitV0F
a=aV1V2aV0V2Ia<V2c0Aa<=c0V2FAa=c0alengthV0Aa<=c0alengthV1Aa<=c0c0LaemptyLaempty
a=aacollectionV0V1aavisitedV0V1Ia<V1aindexV0Aa<=c0V1FAa=aindexV0alengthavisitedV0Aa<=aindexV0alengthacollectionV0Aa<=c0aindexV0FaindexV0acollectionV0avisitedV0
a=acollectionV5ato_seqV2Aa=aindexV5c0Aa=avisitedV5aemptyItAtIa=aindexV5c0Aa=acollectionV5V3Aa=avisitedV5V4Aa=V8avisitedV5Aa=V7acollectionV5Aa=V6aindexV5FAa=aV3V9aV4V9Ia<V9c0Aa<=c0V9FAa=c0alengthV4Aa<=c0alengthV3Aa<=c0c0LaemptyLato_seqV2F
NacompleteV2qa<aindexV2alengthacollectionV2Ia=V5avisitedV2Aa=V4acollectionV2Aa=V3aindexV2F
ia=aindexV12a+aindexV2c1Aa=avisitedV12asnocavisitedV2V6Ia=V15avisitedV12Aa=V14acollectionV12Aa=V13aindexV12Aa=aV14V16aV15V16Ia<V16V13Aa<=c0V16FAa=V13alengthV15Aa<=V13alengthV14Aa<=c0V13Ia=V13a+V9c1Aa=V14V10Aa=V15V11FIa=V9aindexV2Aa=V10acollectionV2Aa=V11V8FIa=aV8V17aV7V17Ia<V17alengthV7Aa<=c0V17FAa=aV8alengthV7V6Aa=alengthV8a+c1alengthV7LasnocV7V6LavisitedV2LaacollectionV2aindexV2fa>=aindexV2alengthacollectionV2INacompleteV2Aa=V5avisitedV2Aa=V4acollectionV2Aa=V3aindexV2F
a=acollectionV3ato_seqV2Aa=avisitedV3aemptyAapermittedV3ItAtIa=acollectionV3ato_seqV2Aa=aindexV3c0Aa=avisitedV3aemptyAa=V6avisitedV3Aa=V5acollectionV3Aa=V4aindexV3FF
NacompleteV2ItIapermittedV2ANacomplete1V2Aa=V5avisitedV2Aa=V4acollectionV2Aa=V3aindexV2F
a=avisitedV6asnocavisitedV2V10ItIa=aindexV6a+aindexV2c1Aa=avisitedV6asnocavisitedV2V10FIa=V9avisitedV6Aa=V8acollectionV6Aa=V7aindexV6Ia=V8acollectionV2FItIapermittedV2ANacompleteV2Aa=V5avisitedV2Aa=V4acollectionV2Aa=V3aindexV2F
apermittedV6Ia=avisitedV6asnocavisitedV2V10ItIa=aindexV6a+aindexV2c1Aa=avisitedV6asnocavisitedV2V10FIa=V9avisitedV6Aa=V8acollectionV6Aa=V7aindexV6Ia=V8acollectionV2FItIapermittedV2ANacompleteV2Aa=V5avisitedV2Aa=V4acollectionV2Aa=V3aindexV2F
apermittedV6Aa=avisitedV6asnocavisitedV2V10ItAtIa=aindexV6a+aindexV2c1Aa=avisitedV6asnocavisitedV2V10FIa=V9avisitedV6Aa=V8acollectionV6Aa=V7aindexV6Ia=V8acollectionV2FANacompleteV2ItAtIapermittedV2ANacomplete1V2Aa=V5avisitedV2Aa=V4acollectionV2Aa=V3aindexV2F
NacompleteV2qNacomplete1V2ItAtIapermittedV2Aa=V5avisitedV2Aa=V4acollectionV2Aa=V3aindexV2F
a=c0asuma@ea=a@a@V2V3V4agetV3V4FavisitedV1c0alengthavisitedV1Ia=acollectionV1ato_seqV0Aa=avisitedV1aemptyAapermittedV1FF
apermittedV1Ia=c0asuma@ea=a@a@V2V3V4agetV3V4FavisitedV1c0alengthavisitedV1Ia=acollectionV1ato_seqV0Aa=avisitedV1aemptyAapermittedV1FF
apermittedV2IapermittedV2Aa=V3asuma@ea=a@a@V4V5V6agetV5V6FavisitedV2c0alengthavisitedV2Ia=acollectionV2acollectionV1FIa=acollectionV1ato_seqV0Aa=avisitedV1aemptyAapermittedV1FF
NacompleteV2INacompleteV2IapermittedV2Aa=V3asuma@ea=a@a@V4V5V6agetV5V6FavisitedV2c0alengthavisitedV2Ia=acollectionV2acollectionV1FIa=acollectionV1ato_seqV0Aa=avisitedV1aemptyAapermittedV1FF
apermittedV2INacompleteV2INacompleteV2IapermittedV2Aa=V3asuma@ea=a@a@V4V5V6agetV5V6FavisitedV2c0alengthavisitedV2Ia=acollectionV2acollectionV1FIa=acollectionV1ato_seqV0Aa=avisitedV1aemptyAapermittedV1FF
a<a-alengthacollectionV4alengthavisitedV4a-alengthacollectionV2alengthavisitedV2Aa<=c0a-alengthacollectionV2alengthavisitedV2Ia=V6a+V3V5FIapermittedV4Aa=avisitedV4asnocavisitedV2V5FIa=acollectionV4acollectionV2FINacompleteV2IapermittedV2Aa=V3asuma@ea=a@a@V7V8V9agetV8V9FavisitedV2c0alengthavisitedV2Ia=acollectionV2acollectionV1FIa=acollectionV1ato_seqV0Aa=avisitedV1aemptyAapermittedV1FF
a=V6asuma@ea=a@a@V7V8V9agetV8V9FavisitedV4c0alengthavisitedV4Ia=V6a+V3V5FIapermittedV4Aa=avisitedV4asnocavisitedV2V5FIa=acollectionV4acollectionV2FINacompleteV2IapermittedV2Aa=V3asuma@ea=a@a@V10V11V12agetV11V12FavisitedV2c0alengthavisitedV2Ia=acollectionV2acollectionV1FIa=acollectionV1ato_seqV0Aa=avisitedV1aemptyAapermittedV1FF
apermittedV4Ia=V6asuma@ea=a@a@V7V8V9agetV8V9FavisitedV4c0alengthavisitedV4Ia=V6a+V3V5FIapermittedV4Aa=avisitedV4asnocavisitedV2V5FIa=acollectionV4acollectionV2FINacompleteV2IapermittedV2Aa=V3asuma@ea=a@a@V10V11V12agetV11V12FavisitedV2c0alengthavisitedV2Ia=acollectionV2acollectionV1FIa=acollectionV1ato_seqV0Aa=avisitedV1aemptyAapermittedV1FF
a=V3asuma@ea=a@a@V4V5V6aV5V6FV0c0alengthato_seqV0INNacompleteV2IapermittedV2Aa=V3asuma@ea=a@a@V7V8V9agetV8V9FavisitedV2c0alengthavisitedV2Ia=acollectionV2acollectionV1FIa=acollectionV1ato_seqV0Aa=avisitedV1aemptyAapermittedV1FF
ia=V3asuma@ea=a@a@V4V5V6aV5V6FV0c0alengthato_seqV0apermittedV7Aa=V9asuma@ea=a@a@V10V11V12agetV11V12FavisitedV7c0alengthavisitedV7Aa<a-alengthacollectionV7alengthavisitedV7a-alengthacollectionV2alengthavisitedV2Aa<=c0a-alengthacollectionV2alengthavisitedV2Ia=V9a+V3V8FIapermittedV7Aa=avisitedV7asnocavisitedV2V8FIa=acollectionV7acollectionV2FAapermittedV2ANacompleteV2NacompleteV2AapermittedV2IapermittedV2Aa=V3asuma@ea=a@a@V13V14V15agetV14V15FavisitedV2c0alengthavisitedV2Ia=acollectionV2acollectionV1FAapermittedV1Aa=c0asuma@ea=a@a@V16V17V18agetV17V18FavisitedV1c0alengthavisitedV1Ia=acollectionV1ato_seqV0Aa=avisitedV1aemptyAapermittedV1FF
VC for array_sum
a=V3c0IapermittedV2Aa=avisitedV2asnocavisitedV1V3FIa=acollectionV2acollectionV1FAapermittedV1ANacompleteV1Ia=acollectionV1ato_seqV0Aa=avisitedV1aemptyAapermittedV1FIa=alengthV0c42Aa=aV0V4c0Ia<V4c42Aa<=c0V4FFAa>=c42c0
VC for harness1
a=acollectionV1ato_seqV0Aa=avisitedV1aemptyAapermittedV1ItAtIa=acollectionV1ato_seqV0Aa=aindexV1c0Aa=avisitedV1aemptyAa=V4avisitedV1Aa=V3acollectionV1Aa=V2aindexV1FF
apermittedV4Aa=avisitedV4asnocavisitedV0V8ItAtIa=aindexV4a+aindexV0c1Aa=avisitedV4asnocavisitedV0V8FIa=V7avisitedV4Aa=V6acollectionV4Aa=V5aindexV4Ia=V6acollectionV0FANacompleteV0ItAtIapermittedV0ANacomplete1V0Aa=V3avisitedV0Aa=V2acollectionV0Aa=V1aindexV0F
NacompleteV0qNacomplete1V0ItAtIapermittedV0Aa=V3avisitedV0Aa=V2acollectionV0Aa=V1aindexV0F

1f9d49a20ee0c336d876ea85e45bb176 1H0
2ad50bdc03f8633665b480c8d1f9ee65 3H2
1674225d4e326b3211dd70be61965e12 6H5H4
05b35fd530a9eb6afb7c086827d59ac0 8H7H5H4
69fb848f347aa6491637af96ab777c7b 10H9H5H4
d21b9bfb6d8792419aec03c0c57d48f4 12H11H5H4
49ca774362840e28cbf4c221e8a4f611 14H13H5H4
9eebcc68ef3bb1c742ff78279cf6194a 16H15H5H4
5441b7a95acf83ce916bc09a5d1ab7f9 18H17H5H4
793f35b33bce447d0ba38b35dab43de8 20H23
50497e1ff4165d09db8e276823743841 20H22
32f0a195c6adc9665247b78d9e06b20a 20H19
31bb1d63af72db14360795a0e11af695 20H21
aa95b14e045964ad77e2aaba604885ef 40H39H23
552dfa1ec7647dd8888ca4835d07b85b 25H24H23
abeeaa42480fefec1975685c3fecde38 25H26H23
c7578e539cd84cf40e3e1381d2039edf 28H27H23
2b17ad07aeb0f9334ac12c0dc8039f79 28H29H23
129e23640ce7711e32aa094016b281d1 28H30H23
cc46d49efdf6a848ed6d6f5e0bf80be3 32H31H23
8b93a9a924a597e8d82e9427a71e21dd 34H35H23
59c7927c09d1f6687698ad79d42945ab 34H33H23
bd1da439d0b2e2165650dc5f44162ae1 34H36H23
316dc3f6df5ebe8753aad8fb2987a1af 38H37H23
0a5818d56b279b5100414a6aac211032 14H41
a2c99989753f700e74d41620b47e1916 16H42
b510c3102f1628d027067513180bc417 18H43
5b3fe175240c218052630e0514179ce3 3H44
cdf834039b24b56ad474db75c26c0a05 12H46H45
16e1486e1c4c4b956b38fde1fbc6776c 10H47H45
b24cb65236549bb7faf201d16e9d9454 8H48H45
6a6fa82df781d5f92c6fb662c79473ae 14H49H45
e40c5f471fdae5086d43a055dcc0fcf5 16H53H45
dd58f6664a1bae8531f32567b3dab477 28H50H45
dd58f6664a1bae8531f32567b3dab477 28H50H45
e1cdba106b809d40a20ab121049dc928 38H51H45
a6b45480a98952613122933936718e35 38H52H45
0d04f9b107681162a4bf59525663399d 18H54H45
f57c1051a21230216d47a9cdb8be6c40 65H64
fc71818b4836c35525138f860b37e80a 25H55
f92c1b39e91f7d76d52ce86508f00fd8 25H56
fef648a8dfabe0c0b0904688830d9a89 28H57
eceef03c52d195378f6502b36287d311 28H58
702cc1f76669c662f916a1571f2051c6 28H59
9d1d3389862eb0c3625a35989d3e8a3f 32H60
2db08777b83de77f12825c1006e1c803 34H61
7d539c077a5b9fb095560bb3d4b1a5bc 34H62
5be766c42f99fbfa22accf4d78f84375 38H63
aad3dc6f996dcd24a7453463264b0bd7 67H66
35e283fe39e783d85eb8604d73ee93c8 14H68
7232cd66d281415dbbbc9e3db82eac3d 16H69
ad849e333a0300ffe2e291c0ce8b811e 18H70
