a=alaConsaTuple2axax1ax2
CfaNila=V0ax2aConswVal
variant decrease
CCa=alengthaflattenV1a*c2alengthV1aTuple2VVV0aConsVVtaNilal
a=alengthCaNilaNilaConsV4aConsV5aflattenV6aConsaTuple2VVVala*c2alengthal
postcondition
a=alengthaflattenala*c2alengthal
a=alengthaflattenV0a*c2alengthV0ICa=alengthaflattenV1a*c2alengthV1aConsaTuple2wwVtaNilV0ACCfaNila=V3V2aConswVV0aConsaTuple2wwVtaNilV0F
VC for length_flatten
a=alengthaflattenV0a*c2alengthV0F
a=V2alengthaelementsV1ICa=V2c0aEmptya=V2a*c2alengthaelementsV3aZeroVa=V2a+c1a*c2alengthaelementsV4aOnewVV1FACtaEmptyCfaEmptya=V6V5aZeroVa=V7V5aOnewVV1aZeroVCfaEmptya=V9V8aZeroVa=V10V8aOnewVV1aOnewVV1F
VC for size
a=aelementsV3aConsV1aelementsV2ICa=V3aOneV1aEmptyaEmptya=V3aOneV1V4aZeroVa=V3aZeroV7Aa=aelementsV7aConsaTuple2V1V5aelementsV6EaOneVVV2FACtaEmptytaZeroVCfaEmptya=V11V10aZeroVa=V12V10aOnewVV2aOneVVV2F
VC for cons
a<=c0ai
a<aialengthal
a=alaConsaxax1
a>aic0
CfaNila=V1ax1aConswVal
a<a-aic1alengthax1Aa<=c0a-aic1
precondition
a<=c0c0
a<c0alengthaConsaTuple2axax1ax2
CtaNilCfaNonea=aSomeV5antha+a*c2V3c1aflattenV2Aa=aSomeV4antha*c2V3aflattenV2aSomeaTuple2VVanthV3V2La-c0c1ONa>c0c0aConsVVaConsaTuple2axax1ax2
CfaNonea=aSomeV7antha+a*c2c0c1aflattenaConsaTuple2axax1ax2Aa=aSomeV6antha*c2c0aflattenaConsaTuple2axax1ax2aSomeaTuple2VVanthc0aConsaTuple2axax1ax2
true case (postcondition)
a<c0alengthaConsaxax1
CtaNilCfaNonea=aSomeV5antha+a*c2V3c1aflattenV2Aa=aSomeV4antha*c2V3aflattenV2aSomeaTuple2VVanthV3V2La-c0c1ONa>c0c0aConsVVaConsaxax1
CfaNonea=aSomeV7antha+a*c2c0c1aflattenaConsaxax1Aa=aSomeV6antha*c2c0aflattenaConsaxax1aSomeaTuple2VVanthc0aConsaxax1
a<aialengthaConsaxax1
CtaNilCfaNonea=aSomeV5antha+a*c2V3c1aflattenV2Aa=aSomeV4antha*c2V3aflattenV2aSomeaTuple2VVanthV3V2La-aic1ONa>aic0aConsVVaConsaxax1
a=aic0
CfaNonea=aSomeV7antha+a*c2aic1aflattenaConsaxax1Aa=aSomeV6antha*c2aiaflattenaConsaxax1aSomeaTuple2VVanthaiaConsaxax1
a=antha-aic1axaSomeaTuple2ax1ax2
a<aialengthaConsaTuple2ax3ax4ax
CtaNilCfaNonea=aSomeV5antha+a*c2V3c1aflattenV2Aa=aSomeV4antha*c2V3aflattenV2aSomeaTuple2VVanthV3V2La-aic1ONa>aic0aConsVVaConsaTuple2ax3ax4ax
Na=aic0
CfaNonea=aSomeV7antha+a*c2a-aic1c1aflattenaxAa=aSomeV6antha*c2a-aic1aflattenaxaSomeaTuple2VVaSomeaTuple2ax1ax2
asserted formula
CfaNonea=aSomeV9antha+a+a+a*c2a-aic1c1c1c1CaNilaNilaConsV10aConsV11aflattenV12aConsaTuple2VVVaConsaTuple2ax3ax4axAa=aSomeV8antha+a+a*c2a-aic1c1c1CaNilaNilaConsV13aConsV14aflattenV15aConsaTuple2VVVaConsaTuple2ax3ax4axaSomeaTuple2VVaSomeaTuple2ax1ax2
false case (postcondition)
CfaNonea=aSomeV9antha+a+a+a*c2a-aic1c1c1c1aflattenaConsaTuple2ax3ax4axAa=aSomeV8antha+a+a*c2a-aic1c1c1aflattenaConsaTuple2ax3ax4axaSomeaTuple2VVaSomeaTuple2ax1ax2
CfaNonea=aSomeV7antha+a+a+a*c2a-aic1c1c1c1aflattenaConsaTuple2ax3ax4axAa=aSomeV6antha+a+a*c2a-aic1c1c1aflattenaConsaTuple2ax3ax4axaSomeaTuple2VVaSomeaTuple2ax1ax2
equality hypothesis
CfaNonea=aSomeV7antha+a+a+a*c2a-aic1c1c1c1aflattenaConsaTuple2ax3ax4axAa=aSomeV6antha+a+a*c2a-aic1c1c1aflattenaConsaTuple2ax3ax4axaSomeaTuple2VVantha-aic1ax
a=antha-aic1axaSomeax1
a<aialengthaConsaTuple2ax2ax3ax
CtaNilCfaNonea=aSomeV5antha+a*c2V3c1aflattenV2Aa=aSomeV4antha*c2V3aflattenV2aSomeaTuple2VVanthV3V2La-aic1ONa>aic0aConsVVaConsaTuple2ax2ax3ax
CfaNonea=aSomeV7antha+a+a+a*c2a-aic1c1c1c1aflattenaConsaTuple2ax2ax3axAa=aSomeV6antha+a+a*c2a-aic1c1c1aflattenaConsaTuple2ax2ax3axaSomeaTuple2VVantha-aic1ax
a=antha-aic1axaNone
a<aialengthaConsaTuple2ax1ax2ax
CtaNilCfaNonea=aSomeV5antha+a*c2V3c1aflattenV2Aa=aSomeV4antha*c2V3aflattenV2aSomeaTuple2VVanthV3V2La-aic1ONa>aic0aConsVVaConsaTuple2ax1ax2ax
CfaNonea=aSomeV7antha+a+a+a*c2a-aic1c1c1c1aflattenaConsaTuple2ax1ax2axAa=aSomeV6antha+a+a*c2a-aic1c1c1aflattenaConsaTuple2ax1ax2axaSomeaTuple2VVantha-aic1ax
a<aialengthaConsaTuple2axax1ax2
CtaNilCfaNonea=aSomeV5antha+a*c2V3c1aflattenV2Aa=aSomeV4antha*c2V3aflattenV2aSomeaTuple2VVanthV3V2La-aic1ONa>aic0aConsVVaConsaTuple2axax1ax2
CfaNonea=aSomeV7antha+a+a+a*c2a-aic1c1c1c1aflattenaConsaTuple2axax1ax2Aa=aSomeV6antha+a+a*c2a-aic1c1c1aflattenaConsaTuple2axax1ax2aSomeaTuple2VVantha-aic1ax2
a=a*c2aia+a+a*c2a-aic1c1c1
CfaNonea=aSomeV7antha+a*c2aic1aflattenaConsaTuple2axax1ax2Aa=aSomeV6antha*c2aiaflattenaConsaTuple2axax1ax2aSomeaTuple2VVantha-aic1ax2
CfaNonea=aSomeV7antha+a*c2aic1aflattenaConsaxax1Aa=aSomeV6antha*c2aiaflattenaConsaxax1aSomeaTuple2VVantha-aic1ax1
a=anthaiaConsaxax1antha-aic1ax1
a<aialengthaNil
CtaNilCfaNonea=aSomeV5antha+a*c2V3c1aflattenV2Aa=aSomeV4antha*c2V3aflattenV2aSomeaTuple2VVanthV3V2La-aic1ONa>aic0aConsVVaNil
CfaNonea=aSomeV7antha+a*c2aic1aflattenaNilAa=aSomeV6antha*c2aiaflattenaNilaSomeaTuple2VVanthaiaNil
CtaNilCfaNonea=aSomeV5antha+a*c2V3c1aflattenV2Aa=aSomeV4antha*c2V3aflattenV2aSomeaTuple2VVanthV3V2La-aic1ONa>aic0aConsVVal
CfaNonea=aSomeV7antha+a*c2aic1aflattenalAa=aSomeV6antha*c2aiaflattenalaSomeaTuple2VVanthaial
CfaNonea=aSomeV4antha+a*c2V1c1aflattenV2Aa=aSomeV3antha*c2V1aflattenV2aSomeaTuple2VVanthV1V2ICtaNilCfaNonea=aSomeV8antha+a*c2V6c1aflattenV5Aa=aSomeV7antha*c2V6aflattenV5aSomeaTuple2VVanthV6V5La-V1c1ONa>V1c0aConswVV2ACtaNila<V10alengthV9Aa<=c0V10ACfaNila=V11V9aConswVV2La-V1c1Ia>V1c0aConswVV2Ia<V1alengthV2Aa<=c0V1F
VC for nth_flatten
CfaNonea=aSomeV4antha+a*c2V1c1aflattenV2Aa=aSomeV3antha*c2V1aflattenV2aSomeaTuple2VVanthV1V2Ia<V1alengthV2Aa<=c0V1F
a=anthV5aelementsV6aSomeV7ICfaEmptyia=antha-V5c1aelementsaZeroV9aSomeV7a=V7V8a=V5c0aOneVVia=V7V12a=V7V11a=amodV5c2c0Aa=anthadivV5c2aelementsV10aSomeaTuple2V11V12EaZeroVV6FACfaEmptya<V15alengthaelementsaZeroV14Aa<=c0V15ACfaEmptyfaZerowfaOnewwV6Aa=V5V15Oa<V15V5Aa<=c0V5La-V5c1INa=V5c0aOneVVNa=c2c0Ia=anthV17aelementsV16aSomeaTuple2V18V19FAa<V17alengthaelementsV16Aa<=c0V17ACfaEmptya=V20V16aZeroVa=V21V16aOnewVV6Aa=V5V17Oa<V17V5Aa<=c0V5LadivV5c2ANa=c2c0aZeroVV6Ia<V5alengthaelementsV6Aa<=c0V5F
VC for lookup
CfaNila=aelementsV6V7aConswVaelementsV5ICfaEmptya=V6aZeroV8aOnewVa=V6aOneV11V12ACfaNila=aelementsV12V13aConswVaelementsV9EAa=anthc0aelementsV9aSomeaTuple2V10V11EaZeroVV5FACfaEmptytaOnewVNa=aelementsV15aNilACfaEmptya=V18V15aZeroVa=V19V15aOnewVV5Ia=anthc0aelementsV15aSomeaTuple2V16V17FAa<c0alengthaelementsV15Aa<=c0c0aZeroVV5INa=aelementsV5aNilF
VC for tail
fIa=V7aEmptyIa<V5alengthaelementsV7Aa<=c0V5F
unreachable point
CfaEmptyfaZerowfaOnewwV7Aa=V5V11Oa<V11V5Aa<=c0V5La-V5c1LaZeroV9INa=V5c0Ia=V7aOneV8V9FIa<V5alengthaelementsV7Aa<=c0V5F
a<V11alengthaelementsV10Aa<=c0V11La-V5c1LaZeroV9INa=V5c0Ia=V7aOneV8V9FIa<V5alengthaelementsV7Aa<=c0V5F
fIa=V12aEmptyICtaZeroVfwV12Aa=alengthaelementsV12alengthaelementsV10Aa=anthV14aelementsV12anthV14aelementsV10INa=V14V11Ia<V14alengthaelementsV10Aa<=c0V14FAa=anthV11aelementsV12aSomeV6FLa-V5c1LaZeroV9INa=V5c0Ia=V7aOneV8V9FIa<V5alengthaelementsV7Aa<=c0V5F
fIa=V12aOneV13V14FICtaZeroVfwV12Aa=alengthaelementsV12alengthaelementsV10Aa=anthV16aelementsV12anthV16aelementsV10INa=V16V11Ia<V16alengthaelementsV10Aa<=c0V16FAa=anthV11aelementsV12aSomeV6FLa-V5c1LaZeroV9INa=V5c0Ia=V7aOneV8V9FIa<V5alengthaelementsV7Aa<=c0V5F
Na=c2c0Ia=V7aZeroV8FIa<V5alengthaelementsV7Aa<=c0V5F
a<V9alengthaelementsV8Aa<=c0V9LadivV5c2Ia=V7aZeroV8FIa<V5alengthaelementsV7Aa<=c0V5F
Na=c2c0Ia=anthV9aelementsV8aSomeaTuple2V10V11FLadivV5c2Ia=V7aZeroV8FIa<V5alengthaelementsV7Aa<=c0V5F
Na=c2c0Iia=V13V6Aa=V12V10a=V13V11Aa=V12V6a=amodV5c2c0FIa=anthV9aelementsV8aSomeaTuple2V10V11FLadivV5c2Ia=V7aZeroV8FIa<V5alengthaelementsV7Aa<=c0V5F
CfaEmptya=V15V8aZeroVa=V16V8aOnewVV7Aa=V5V14Oa<V14V5Aa<=c0V5LadivV5c2Iia=V13V6Aa=V12V10a=V13V11Aa=V12V6a=amodV5c2c0FIa=anthV9aelementsV8aSomeaTuple2V10V11FLadivV5c2Ia=V7aZeroV8FIa<V5alengthaelementsV7Aa<=c0V5F
a<V14alengthaelementsV8Aa<=c0V14LadivV5c2Iia=V13V6Aa=V12V10a=V13V11Aa=V12V6a=amodV5c2c0FIa=anthV9aelementsV8aSomeaTuple2V10V11FLadivV5c2Ia=V7aZeroV8FIa<V5alengthaelementsV7Aa<=c0V5F
Na=anthadivV16c2aelementsV8aNoneINa=V16V5Ia<V16alengthaelementsV7Aa<=c0V16FICCtaOneVVfwV15aOneVVCtaZeroVfwV15aZeroVfwV8Aa=alengthaelementsV15alengthaelementsV8Aa=anthV23aelementsV15anthV23aelementsV8INa=V23V14Ia<V23alengthaelementsV8Aa<=c0V23FAa=anthV14aelementsV15aSomeaTuple2V12V13FLadivV5c2Iia=V13V6Aa=V12V10a=V13V11Aa=V12V6a=amodV5c2c0FIa=anthV9aelementsV8aSomeaTuple2V10V11FLadivV5c2Ia=V7aZeroV8FIa<V5alengthaelementsV7Aa<=c0V5F
assertion
a=aSomeV18antha*c2adivV16c2aelementsV7Ia=V17aTuple2V18V19FIa=anthadivV16c2aelementsV8aSomeV17FINa=V16V5Ia<V16alengthaelementsV7Aa<=c0V16FICCtaOneVVfwV15aOneVVCtaZeroVfwV15aZeroVfwV8Aa=alengthaelementsV15alengthaelementsV8Aa=anthV26aelementsV15anthV26aelementsV8INa=V26V14Ia<V26alengthaelementsV8Aa<=c0V26FAa=anthV14aelementsV15aSomeaTuple2V12V13FLadivV5c2Iia=V13V6Aa=V12V10a=V13V11Aa=V12V6a=amodV5c2c0FIa=anthV9aelementsV8aSomeaTuple2V10V11FLadivV5c2Ia=V7aZeroV8FIa<V5alengthaelementsV7Aa<=c0V5F
a=anthV16aelementsV7anthV16aelementsaZeroV15ICfaNoneCa=aSomeV18antha*c2adivV16c2aelementsV7aTuple2VVV17aSomeVanthadivV16c2aelementsV8INa=V16V5Ia<V16alengthaelementsV7Aa<=c0V16FICCtaOneVVfwV15aOneVVCtaZeroVfwV15aZeroVfwV8Aa=alengthaelementsV15alengthaelementsV8Aa=anthV26aelementsV15anthV26aelementsV8INa=V26V14Ia<V26alengthaelementsV8Aa<=c0V26FAa=anthV14aelementsV15aSomeaTuple2V12V13FLadivV5c2Iia=V13V6Aa=V12V10a=V13V11Aa=V12V6a=amodV5c2c0FIa=anthV9aelementsV8aSomeaTuple2V10V11FLadivV5c2Ia=V7aZeroV8FIa<V5alengthaelementsV7Aa<=c0V5F
a=anthV16aelementsV7anthV16aelementsaZeroV15ACfaNonea=aSomeV17antha*c2adivV16c2aelementsV7aSomeaTuple2VwanthadivV16c2aelementsV8INa=V16V5Ia<V16alengthaelementsV7Aa<=c0V16FICCtaOneVVfwV15aOneVVCtaZeroVfwV15aZeroVfwV8Aa=alengthaelementsV15alengthaelementsV8Aa=anthV24aelementsV15anthV24aelementsV8INa=V24V14Ia<V24alengthaelementsV8Aa<=c0V24FAa=anthV14aelementsV15aSomeaTuple2V12V13FLadivV5c2Iia=V13V6Aa=V12V10a=V13V11Aa=V12V6a=amodV5c2c0FIa=anthV9aelementsV8aSomeaTuple2V10V11FLadivV5c2Ia=V7aZeroV8FIa<V5alengthaelementsV7Aa<=c0V5F
a=anthV5aelementsV8aSomeV6ICfaEmptyiCfaEmptyfaOneVVa=V8aOneV9V16aZeroVV13ACtaZeroVfwV13Aa=alengthaelementsV13alengthaelementsV11Aa=anthV18aelementsV13anthV18aelementsV11INa=V18V12Ia<V18alengthaelementsV11Aa<=c0V18FAa=anthV12aelementsV13aSomeV6ELa-V5c1LaZeroV10a=V8aOneV6V10a=V5c0aOneVVa=V8aZeroV25Aa=anthV26aelementsV7anthV26aelementsaZeroV25ACfaNonea=aSomeV27antha*c2adivV26c2aelementsV7aSomeaTuple2VwanthadivV26c2aelementsV19INa=V26V5Ia<V26alengthaelementsV7Aa<=c0V26FACCtaOneVVfwV25aOneVVCtaZeroVfwV25aZeroVfwV19Aa=alengthaelementsV25alengthaelementsV19Aa=anthV34aelementsV25anthV34aelementsV19INa=V34V24Ia<V34alengthaelementsV19Aa<=c0V34FAa=anthV24aelementsV25aSomeaTuple2V22V23ELadivV5c2Aia=V23V6Aa=V22V20a=V23V21Aa=V22V6a=amodV5c2c0EAa=anthadivV5c2aelementsV19aSomeaTuple2V20V21EaZeroVV7FIa<V5alengthaelementsV7Aa<=c0V5F
a=anthV9aelementsV8anthV9aelementsV7INa=V9V5Ia<V9alengthaelementsV7Aa<=c0V9FIa=anthV5aelementsV8aSomeV6ICfaEmptyiCfaEmptyfaOneVVa=V8aOneV10V17aZeroVV14ACtaZeroVfwV14Aa=alengthaelementsV14alengthaelementsV12Aa=anthV19aelementsV14anthV19aelementsV12INa=V19V13Ia<V19alengthaelementsV12Aa<=c0V19FAa=anthV13aelementsV14aSomeV6ELa-V5c1LaZeroV11a=V8aOneV6V11a=V5c0aOneVVa=V8aZeroV26Aa=anthV27aelementsV7anthV27aelementsaZeroV26ACfaNonea=aSomeV28antha*c2adivV27c2aelementsV7aSomeaTuple2VwanthadivV27c2aelementsV20INa=V27V5Ia<V27alengthaelementsV7Aa<=c0V27FACCtaOneVVfwV26aOneVVCtaZeroVfwV26aZeroVfwV20Aa=alengthaelementsV26alengthaelementsV20Aa=anthV35aelementsV26anthV35aelementsV20INa=V35V25Ia<V35alengthaelementsV20Aa<=c0V35FAa=anthV25aelementsV26aSomeaTuple2V23V24ELadivV5c2Aia=V24V6Aa=V23V21a=V24V22Aa=V23V6a=amodV5c2c0EAa=anthadivV5c2aelementsV20aSomeaTuple2V21V22EaZeroVV7FIa<V5alengthaelementsV7Aa<=c0V5F
a=alengthaelementsV8alengthaelementsV7Ia=anthV9aelementsV8anthV9aelementsV7INa=V9V5Ia<V9alengthaelementsV7Aa<=c0V9FIa=anthV5aelementsV8aSomeV6ICfaEmptyiCfaEmptyfaOneVVa=V8aOneV10V17aZeroVV14ACtaZeroVfwV14Aa=alengthaelementsV14alengthaelementsV12Aa=anthV19aelementsV14anthV19aelementsV12INa=V19V13Ia<V19alengthaelementsV12Aa<=c0V19FAa=anthV13aelementsV14aSomeV6ELa-V5c1LaZeroV11a=V8aOneV6V11a=V5c0aOneVVa=V8aZeroV26Aa=anthV27aelementsV7anthV27aelementsaZeroV26ACfaNonea=aSomeV28antha*c2adivV27c2aelementsV7aSomeaTuple2VwanthadivV27c2aelementsV20INa=V27V5Ia<V27alengthaelementsV7Aa<=c0V27FACCtaOneVVfwV26aOneVVCtaZeroVfwV26aZeroVfwV20Aa=alengthaelementsV26alengthaelementsV20Aa=anthV35aelementsV26anthV35aelementsV20INa=V35V25Ia<V35alengthaelementsV20Aa<=c0V35FAa=anthV25aelementsV26aSomeaTuple2V23V24ELadivV5c2Aia=V24V6Aa=V23V21a=V24V22Aa=V23V6a=amodV5c2c0EAa=anthadivV5c2aelementsV20aSomeaTuple2V21V22EaZeroVV7FIa<V5alengthaelementsV7Aa<=c0V5F
CCtaOneVVfwV8aOneVVCtaZeroVfwV8aZeroVfwV7Ia=alengthaelementsV8alengthaelementsV7Ia=anthV15aelementsV8anthV15aelementsV7INa=V15V5Ia<V15alengthaelementsV7Aa<=c0V15FIa=anthV5aelementsV8aSomeV6ICfaEmptyiCfaEmptyfaOneVVa=V8aOneV16V23aZeroVV20ACtaZeroVfwV20Aa=alengthaelementsV20alengthaelementsV18Aa=anthV25aelementsV20anthV25aelementsV18INa=V25V19Ia<V25alengthaelementsV18Aa<=c0V25FAa=anthV19aelementsV20aSomeV6ELa-V5c1LaZeroV17a=V8aOneV6V17a=V5c0aOneVVa=V8aZeroV32Aa=anthV33aelementsV7anthV33aelementsaZeroV32ACfaNonea=aSomeV34antha*c2adivV33c2aelementsV7aSomeaTuple2VwanthadivV33c2aelementsV26INa=V33V5Ia<V33alengthaelementsV7Aa<=c0V33FACCtaOneVVfwV32aOneVVCtaZeroVfwV32aZeroVfwV26Aa=alengthaelementsV32alengthaelementsV26Aa=anthV41aelementsV32anthV41aelementsV26INa=V41V31Ia<V41alengthaelementsV26Aa<=c0V41FAa=anthV31aelementsV32aSomeaTuple2V29V30ELadivV5c2Aia=V30V6Aa=V29V27a=V30V28Aa=V29V6a=amodV5c2c0EAa=anthadivV5c2aelementsV26aSomeaTuple2V27V28EaZeroVV7FIa<V5alengthaelementsV7Aa<=c0V5F
CCtaOneVVfwV8aOneVVCtaZeroVfwV8aZeroVfwV7Aa=alengthaelementsV8alengthaelementsV7Aa=anthV15aelementsV8anthV15aelementsV7INa=V15V5Ia<V15alengthaelementsV7Aa<=c0V15FAa=anthV5aelementsV8aSomeV6ICfaEmptyiCfaOnewwOaEmptya=V8aOneV16V21aZeroVV20ACtaZeroVfwV20Aa=alengthaelementsV20alengthaelementsV18Aa=anthV23aelementsV20anthV23aelementsV18INa=V23V19Ia<V23alengthaelementsV18Aa<=c0V23FAa=anthV19aelementsV20aSomeV6ELa-V5c1LaZeroV17a=V8aOneV6V17a=V5c0aOneVVa=V8aZeroV30Aa=anthV31aelementsV7anthV31aelementsaZeroV30ACfaNonea=aSomeV32antha*c2adivV31c2aelementsV7aSomeaTuple2VwanthadivV31c2aelementsV24INa=V31V5Ia<V31alengthaelementsV7Aa<=c0V31FACCtaOneVVfwV30aOneVVCtaZeroVfwV30aZeroVfwV24Aa=alengthaelementsV30alengthaelementsV24Aa=anthV39aelementsV30anthV39aelementsV24INa=V39V29Ia<V39alengthaelementsV24Aa<=c0V39FAa=anthV29aelementsV30aSomeaTuple2V27V28ELadivV5c2Aia=V28V6Aa=V27V25a=V28V26Aa=V27V6a=amodV5c2c0EAa=anthadivV5c2aelementsV24aSomeaTuple2V25V26EaZeroVV7FACfaEmptyCfaOnewwOaEmptytaZeroVV44ICtaZeroVfwV44Aa=alengthaelements
VC for update
a=V1aelementsV0E
VC for t
a=alV0aelementsarV0FalV0arV0
a=alV3aNilIa=alV3V1Aa=arV3V2FAa=V1aelementsV2LaEmptyLaNil
VC for empty
a=alaemptyaNil
a=alengthaelementsarV1alengthalV1F
a=alV5aConsV1alV2Ia=alV5V3Aa=arV5V4FAa=V3aelementsV4Ia=aelementsV4aConsV1aelementsarV2FLaConsV1alV2F
a=aSomeV4anthV1alV2Ia=anthV1aelementsV3aSomeV4FAa<V1alengthaelementsV3Aa<=c0V1LarV2Ia<V1alengthalV2Aa<=c0V1F
a<aialengthaa
a>=aic2Oa<=aic1
empty_shape
a<=aic1
a=aaconsaTuple2axayasadivaic2aTuple2axay
a>=aic2
a=aaconsaTuple2axayasadivaic2aasadiva-aic2c2
a=aaconsaTuple2axayasadivaic2aasadiva-aic2c2Aa>=aic2Oa=aaconsaTuple2axayasadivaic2aTuple2axayAa<=aic1
a=aaaaiaabai
a=aaaV0aabV0Ia<V0alengthaaAa<=c0V0F
a==aaab
a=aaab
a=V3V4ItOa==V3V4ItOa=aV3V5aV4V5ItOtOa=aaconsaTuple2V0V1V2adivV5c2aV2adiva-V5c2c2Aa>=V5c2OtOa=aaconsaTuple2V0V1V2adivV5c2aTuple2V0V1Aa<=V5c1Ia<V5alengthV3Aa<=c0V5FLaconsV0aconsV1aflattenV2LaflattenaconsaTuple2V0V1V2F
a=V7alengthaelementsV6ICa=V7c0aEmptya=V7a*c2alengthaelementsV8aZeroVa=V7a+c1a*c2alengthaelementsV9aOnewVV6FACtaEmptyCfaEmptya=V11V10aZeroVa=V12V10aOnewVV6aZeroVCfaEmptya=V14V13aZeroVa=V15V13aOnewVV6aOnewVV6F
a==aelementsV8aconsV6aelementsV7ICa=V8aOneV6aEmptyaEmptya=V8aOneV6V9aZeroVa=V8aZeroV12Aa==aelementsV12aconsaTuple2V6V10aelementsV11EaOneVVV7FACtaEmptytaZeroVCfaEmptya=V16V15aZeroVa=V17V15aOnewVV7aOneVVV7F
a<aialengthaelementsal
a=alaEmpty
f
a=alaOneaxax1
CfaEmptyfaZerowfaOnewwalAa=aia-aic1Oa<a-aic1aiAa<=c0ai
a<a-aic1alengthaelementsaZeroax1Aa<=c0a-aic1
a=alaZeroax
Na=c2c0
CfaEmptya=V6axaZeroVa=V7axaOnewValAa=aiadivaic2Oa<adivaic2aiAa<=c0ai
a<adivaic2alengthaelementsaxAa<=c0adivaic2
a=aaelementsaxadivaic2aTuple2ax0ax1
a=alaOnearesultax
a=aaelementsalaiaresult
a=aaelementsaZeroax1a-aic1aresult
ia=aresultax1a=aresultax0a=amodaic2c0
CfaEmptyia=aaelementsaZeroV7a-aic1aresulta=aresultV6a=aic0aOneVVia=aresultax1a=aresultax0a=amodaic2c0Aa=aaelementsV8adivaic2aTuple2ax0ax1aZeroVal
a=aaelementsV7V6V8ICfaEmptyia=aaelementsaZeroV10a-V6c1V8a=V8V9a=V6c0aOneVVia=V8V13a=V8V12a=amodV6c2c0Aa=aaelementsV11adivV6c2aTuple2V12V13EaZeroVV7FACfaEmptya<V16alengthaelementsaZeroV15Aa<=c0V16ACfaEmptyfaZerowfaOnewwV7Aa=V6V16Oa<V16V6Aa<=c0V6La-V6c1INa=V6c0aOneVVNa=c2c0Ia=aaelementsV17V18aTuple2V19V20FAa<V18alengthaelementsV17Aa<=c0V18ACfaEmptya=V21V17aZeroVa=V22V17aOnewVV7Aa=V6V18Oa<V18V6Aa<=c0V6LadivV6c2ANa=c2c0aZeroVV7Ia<V6alengthaelementsV7Aa<=c0V6F
a==aelementsV7aaelementsV6c1ICfaEmptya=V7aZeroV8aOnewVa=V7aOneV11V12Aa==aelementsV9aconsaTuple2V10V11aelementsV12Aa==aelementsV12aaelementsV9c1EAa=aaelementsV9c0aTuple2V10V11EaZeroVV6FACfaEmptytaOnewVa==aelementsV14aconsaTuple2V15V16aelementsV17Ia==aelementsV17aaelementsV14c1FAa<c0alengthaelementsV14ACfaEmptya=V18V14aZeroVa=V19V14aOnewVV6Ia=aaelementsV14c0aTuple2V15V16FAa<c0alengthaelementsV14Aa<=c0c0aZeroVV6Ia<c0alengthaelementsV6F
VC for aux
a==aelementsaul1asetfaelementsaxadivaic2aauxaiaf
a<=c0aj
a<ajalengthaelementsares
a=aaelementsaresajaasetfaelementsalaiafajItOa=aaelementsaul1adivajc2aaelementsaxadivajc2INa=adivajc2adivaic2
a=aresultaOnea@afaxax1
a==aelementsaresultasetfaelementsalaiaf
a==aelementsaoasetfaelementsaZeroax1a-aic1af
a==aelementsaresultaconsaxaelementsao
a=aaelementsV6V7aasetfaelementsalaiafV7Ia<V7alengthaelementsV6Aa<=c0V7FLaZeroaul1
a=aresultV8LaZeroaul1
CfaEmptyia==aelementsaresultaconsV6aelementsaoAa==aelementsaoasetfaelementsaZeroV7a-aic1afa=aresultaOnea@afV6V7a=aic0aOneVVa=aresultV9Aa=aaelementsV9V10aasetfaelementsalaiafV10Ia<V10alengthaelementsV9Aa<=c0V10FLaZeroaul1Aa==aelementsaul1asetfaelementsV8adivaic2aauxaiafaZeroVal
a==aelementsV9asetfaelementsV8V7V6ICfaEmptyia==aelementsV9aconsV10aelementsV12Aa==aelementsV12asetfaelementsaZeroV11a-V7c1V6Ea=V9aOnea@V6V10V11a=V7c0aOneVVa=V9V15Aa=aaelementsV15V16aasetfaelementsV8V7V6V16ItOa=aaelementsV14adivV16c2aaelementsV13adivV16c2INa=adivV16c2adivV7c2Ia<V16alengthaelementsV15Aa<=c0V16FLaZeroV14Aa==aelementsV14asetfaelementsV13adivV7c2aauxV7V6EaZeroVV8FACfaEmptya<V19alengthaelementsaZeroV18Aa<=c0V19ACfaEmptyfaZerowfaOnewwV8Aa=V7V19Oa<V19V7Aa<=c0V7La-V7c1INa=V7c0aOneVVa=aaelementsV23V24aasetfaelementsV8V7V6V24ItOa=aaelementsV22adivV24c2aaelementsV20adivV24c2INa=adivV24c2adivV7c2Ia<V24alengthaelementsV23Aa<=c0V24FLaZeroV22Ia==aelementsV22asetfaelementsV20V21aauxV7V6FAa<V21alengthaelementsV20Aa<=c0V21ACfaEmptya=V25V20aZeroVa=V26V20aOnewVV8Aa=V7V21Oa<V21V7Aa<=c0V7LadivV7c2ANa=c2c0aZeroVV8Ia<V7alengthaelementsV8Aa<=c0V7F
VC for fupdate
a==aelementsV9asetaelementsV8V6V7Ia==aelementsV9asetfaelementsV8V6afV7FAa<V6alengthaelementsV8Aa<=c0V6Ia<V6alengthaelementsV8Aa<=c0V6F

49022b5cb663c042469783e775cdbfc6 8H7
5ed812f58f3690f6cf0e9069f24ddb03 2H1H0
bb603f453113d7ddfbdc0093e1e6484e 5H6H3
2e4d2174e57f52e930a44af5c0a351d3 5H4H3
232c49aecf2919d0f5432014afd9abcc 11H10H9
7ae578fab38f4a19157b6cb71c40b6f2 13H12H9
44d5b3c44a36a9fdc55268ff3117f36e 66H65H9
147bcfab8b350f9366cfdc572ce878ca 2H18H17H16H15H14H9
2d15849698f75a4a03ba155a6c0f354f 20H19H17H16H15H14H9
3def0ff447a9a08ed326308e789d987c 5H64H63H15H14H9
acf2c856cf2d2d94d87f485dd1b6f4e2 5H32H30H29H14H9
6f68c0b13b1315b95cbf604fc73ce166 25H32H31H30H29H14H9
3730f81728068cce96004dd06fcc62b0 25H28H27H26H21H9
5680999ef0dc118c76db0665773d4285 25H24H23H22H21H9
94c7d5180a228fea7d7735cf953f0c30 40H32H36H30H29H14H9
30290ab674eca42de42843353c8c3794 40H58H36H30H29H14H9
727df48481e310add6fcf33c3da45e3b 40H57H36H54H53H14H9
1444bc83121c3f718de5f0adcc206009 40H55H36H54H53H14H9
d7851702066f9c9b481c5d44cb8e6578 40H48H36H47H46H14H45H9
fa90b4d16af76ad48ad263ae890319d2 40H44H36H35H34H14H33H9
48a40ab06da1289fb45a6b2082666877 40H42H36H35H34H14H33H9
d68d3694a3799edb0c7a1b99de5defcf 38H37H36H35H34H14H33H9
6945b269e9308a97735f18d9b07a2071 40H41H37H36H35H34H14H33H9
9d8126dc12caea60b69552ffd3087989 40H39H37H36H35H34H14H33H9
88d699b3f241e5ee2a4228139467187c 43H33H36H35H34H14H33H9
5ef0934eb76675cd610dbcac384a53fc 40H52H36H51H50H14H49H9
16d18345d7de4c5a113ea4ae3768ff29 43H56H36H54H53H14H9
cedda526345c02198ebcc766219e6937 43H59H36H30H29H14H9
ccfac9e98783724e99ae6f6b7d17d04b 5H62H61H60H14H9
ba8824c3a7b8ad2f2187437dbfbf5b2d 69H68H67H9
378911aeddabb746b8adefa250e81a17 71H70H67H9
9c06b4c6f0d65358282cd1eda15df0fc 94H93H67H9
095be360c8b033635a5769d8d68e0a8c 73H72H67H9
8fbb5921754f8f073e3b18b00afd8ea4 2H74H67H9
4bc6ea789aa344a9338819db04d150bf 20H75H67H9
335209c6d6b7943d8c1772b79076ede0 73H76H67H9
e094dda21aaa7033ee2921d86c1e53ca 73H77H67H9
13bfb1046523595019bc033c7ff7dda5 20H78H67H9
3c77eceb85599c9b1c36db958f9343f5 20H79H67H9
718c725c6840f070b5c76a1dc17fdfd1 20H80H67H9
3f4ed12637e64892f7e19541cf33f458 20H81H67H9
f01bc8c0733dd9133ac5ebb51a7bb7c6 2H82H67H9
c1d761172207be20ed72140f30d4fedf 20H83H67H9
71f92aa73a8639f30df3be03bcd39232 85H88H67H9
55215beff780959ff1bfe5e759f79f28 85H84H67H9
ac4e388b1f818413c8ac1c97974c7c62 85H86H67H9
55a2d8993f4c06393e995cf69a82ca59 85H87H67H9
c4f0faac69e49d0fe6177966850e4780 5H89H67H9
3421d36a6a282a9bfff0b81d93538ded 5H90H67H9
8cba56810ffb0bc8634072ce140a9767 5H91H67H9
5e0fa9422392de5ac2d69ebce6b61e55 5H92H67H9
c02624ba042d4c79b6cf1133cb04fadd 96H95
87696a494008004212c700c8dfa1d8b1 99H98H97
69764a07bf698d4dd4d7c39eb9c07305 11H101H100H97
bc9b1fe8a5175937a315fd5acd6e74c4 13H102H100H97
853de42fc5207036bd38fde55c31fec1 69H103H100H97
760e4c924b6318561bd86f6b74a58cdb 106H116
559ba08c304a52c9f65476ea309c5502 106H105H104H14
10c5723e781b7c56d84ee8597878d8c1 106H108H107H104H14
14f08f52eb78ce98fe38878d2ea58ceb 106H110H109H104H14
2b534d8584749bdb0a7a0a584299b8a8 106H112H111H104H14
fb3f25fc052540e149026d73767bffd7 106H114H113
2d0f8b79ee06a9958381e5b7f8e7511a 106H115H114
7493ec39504cfc75fe693e2a59fb4181 11H117H116
57984e6c0543a69f01e26e9f1f05dbd4 13H118H116
c8ff80a3b6627681b0a4e319636a9b14 69H135H116
0fa4df20c6b3d41ba7c38b23eabcf5c0 73H121H120H119H14H116
84862526f1946589c8d8c7b9093c6dfd 2H123H36H122H119H14H116
41940361dfb31de7ebaf6762c29d004c 20H124H36H122H119H14H116
dfb0617bb4571a79be0138844d50dc27 20H126H125H119H14H116
2cae880d531aaf3c5096783b914e1c5e 2H127H125H119H14H116
217a3b99f561e2005e22677125197013 20H128H125H119H14H116
028db3e3f1387bdc58605bbbaae4c336 20H126H129H125H119H14H116
e92e9aab49859c8623c3521e6b918c90 5H131H134H119H14H116
b28297a5eedb653e2b54fc56c2f56eb4 5H131H31H130H119H14H116
19ab2aeb5583fd46e4d33776b82a8e12 5H131H132H36H122H119H14H116
3c7801299eb64762e6897626033238cc 5H131H133H129H125H119H14H116
4765a1c80ffdb32f01ac2144e178c8e5 71H136H116
10832c31ed67d3a452c624df03d7a42c 137H126H116
3f404024df7ec74b586d2078312851b8 150H149H116
f1941d6bd80327964002d759653ecd08 73H121H120H119H14H116
175d79c97ef616c5a6f6bc23aa612c0a 2H123H36H122H119H14H116
4ae46162349c0023b270a5913c4e1000 20H124H36H122H119H14H116
e6ce14bf64f8dae19d856c4113902eac 20H126H125H119H14H116
c27ba2026daff93662f07570ce6e9367 2H127H125H119H14H116
ebcfac4a881241e3a8807350a4480e87 20H128H125H119H14H116
de4f3d8791e84206cbfc07495e1c3d54 85H141H140H139H138H125H119H14H116
2b8426998c9b00fe358c7371e9191ad3 5H143H148H119H14H116
c87fe663898caa9c59d3f26b7410deac 5H143H142H31H122H119H14H116
02b82b9e43c1454b56c2a0f30cced372 5H143H145H144H36H122H119H14H116
51cae9761c08cef5b17ccfc6e55a7381 5H143H147H146H138H125H119H14H116
9d1b9ade7a749f7d76817741a15132be 94H151H116
