ais_maxaV0c0V0c0alengthV0Aais_minaV0c0V0c0alengthV0Ia>c1a+V1c1Aais_maxV2V0c0alengthV0Aais_minV3V0c0alengthV0Iais_maxV2V0c0a+V1c1Aais_minV3V0c0a+V1c1Aiiais_maxV2V0c0a+V4c1Aais_minV3V0c0a+V4c1ais_maxV5V0c0a+V4c1Aais_minV3V0c0a+V4c1Ia=V5aV0V4FAa<V4alengthV0Aa<=c0V4a>aV0V4V2Aa<V4alengthV0Aa<=c0V4iais_maxV2V0c0a+V4c1Aais_minV6V0c0a+V4c1ais_maxV7V0c0a+V4c1Aais_minV6V0c0a+V4c1Ia=V7aV0V4FAa<V4alengthV0Aa<=c0V4a>aV0V4V2Aa<V4alengthV0Aa<=c0V4Ia=V6aV0V4FAa<V4alengthV0Aa<=c0V4a<aV0V4V3Aa<V4alengthV0Aa<=c0V4Iais_maxV2V0c0V4Aais_minV3V0c0V4Aa<=V4V1Aa<=c1V4FFAais_maxaV0c0V0c0c1Aais_minaV0c0V0c0c1Ia<=c1a+V1c1La-alengthV0c1Aa<c0alengthV0Aa<=c0c0Aa<c0alengthV0Aa<=c0c0Ia<=c1alengthV0F
VC for min_max
a<=c1alengthaa
a<c0alengthaaAa<=c0c0
index in array bounds
Na=c2c0
check modulo by zero
ia=c2c1a=c2c2a=amodanc2c0
a<c1alengthaaAa<=c0c1
a<aaac0aaac1
Na<aaac0aaac1
ia=aoc1a=aoc2a=amodanc2c0
ia=amaxaaac0Aa=aminaaac0ia=amaxaaac0Aa=aminaaac1a=aminaaac0Aa=amaxaaac1a<aaac0aaac1a=aoc2
a=amodaoc2amodanc2
loop invariant init
ais_maxamaxaac0aoAais_minaminaac0ao
a=amodaic2amodanc2
ais_minamin1aac0ai
ais_maxamax1aac0ai
a<aian
a<a+aic1alengthaaAa<=c0a+aic1
a<aialengthaaAa<=c0ai
a<aaaaiaaaa+aic1
Na<aaaaiaaaa+aic1
ia=ayaaaaiAa=axaaaa+aic1a=ayaaaa+aic1Aa=axaaaaia<aaaaiaaaa+aic1
ia=amin2amin1a=amin2axa<axamin1
ia=amax2amax1a=amax2aya>ayamax1
a=ai1a+aic2
a<a-anai1a-anaiAa<=c0a-anai
loop variant decrease
a=amodai1c2amodanc2
loop invariant preservation
ais_maxamax2aac0ai1Aais_minamin2aac0ai1
Na<aian
ais_maxamax1aac0alengthaaAais_minamin1aac0alengthaa
postcondition
iais_maxV6V0c0alengthV0Aais_minV5V0c0alengthV0ais_maxV11V0c0V12Aais_minV10V0c0V12Aa=amodV12c2amodV1c2Aa<a-V1V12a-V1V7Aa<=c0a-V1V7Ia=V12a+V7c2FIia=V11V6a=V11V9a>V9V6FIia=V10V5a=V10V8a<V8V5FIia=V9aV0V7Aa=V8aV0a+V7c1a=V9aV0a+V7c1Aa=V8aV0V7a<aV0V7aV0a+V7c1FAia<V14alengthV0Aa<=c0V14La+V7c1Aa<V7alengthV0Aa<=c0V7a<V7alengthV0Aa<=c0V7Aa<V15alengthV0Aa<=c0V15La+V7c1a<aV0V7aV0V13Aa<V7alengthV0Aa<=c0V7Aa<V13alengthV0Aa<=c0V13La+V7c1a<V7V1Iais_maxV6V0c0V7Aais_minV5V0c0V7Aa=amodV7c2amodV1c2FAais_maxV4V0c0V2Aais_minV3V0c0V2Aa=amodV2c2amodV1c2Iia=V4aV0c0Aa=V3aV0c0ia=V4aV0c0Aa=V3aV0c1a=V3aV0c0Aa=V4aV0c1a<aV0c0aV0c1a=V2c2FAia<c1alengthV0Aa<=c0c1a<c1alengthV0Aa<=c0c1a<aV0c0aV0c1Aa<c0alengthV0Aa<=c0c0Aa<c1alengthV0Aa<=c0c1Ia=V2c2Iia=V2c1a=V2c2a=amodV1c2c0FANa=c2c0Aa<c0alengthV0Aa<=c0c0Aa<c0alengthV0Aa<=c0c0LalengthV0Ia<=c1alengthV0F
VC for a_better_min_max
ais_maxV4V0V1V2Aais_minV3V0V1V2Iiia=V4V10Aa=V3V11Aia=V11V8a=V11V6a<V6V8EAia=V10V9a=V10V7a>V7V9EAais_maxV9V0V5V2Aais_minV8V0V5V2EAais_maxV7V0V1V5Aais_minV6V0V1V5ELa+V1adiva-V2V1c2ia=V4aV0V1Aa=V3aV0a+V1c1a=V4aV0a+V1c1Aa=V3aV0V1a<aV0V1aV0a+V1c1a=a-V2V1c2a=V4aV0V1Aa=V3aV0V1a=a-V2V1c1FAiia<=V2alengthV0Aa<V12V2Aa<=c0V12Aa<a-V2V12a-V2V1Aa<=c0a-V2V1Iais_maxV14V0V1V12Aais_minV13V0V1V12FAa<=V12alengthV0Aa<V1V12Aa<=c0V1Aa<a-V12V1a-V2V1Aa<=c0a-V2V1La+V1adiva-V2V1c2ANa=c2c0ia<V16alengthV0Aa<=c0V16La+V1c1Aa<V1alengthV0Aa<=c0V1a<V1alengthV0Aa<=c0V1Aa<V17alengthV0Aa<=c0V17La+V1c1a<aV0V1aV0V15Aa<V1alengthV0Aa<=c0V1Aa<V15alengthV0Aa<=c0V15La+V1c1a=a-V2V1c2a<V1alengthV0Aa<=c0V1Aa<V1alengthV0Aa<=c0V1a=a-V2V1c1Ia<=V2alengthV0Aa<V1V2Aa<=c0V1F
VC for divide_and_conquer
ais_maxV3V0c0alengthV0Aais_minV2V0c0alengthV0Iais_maxV3V0c0V1Aais_minV2V0c0V1FAa<=V1alengthV0Aa<c0V1Aa<=c0c0LalengthV0Ia<=c1alengthV0F
VC for a_similar_min_max

5fb5298da7765da6e7bea98a053b1dab 1H0
16a9a08feedd4ea4a833f030848d652e 37H36
de183e71a802365a573099a0645f4f4f 4H3H2
de183e71a802365a573099a0645f4f4f 4H3H2
45bae0ff1f097c3db69d88e3559df641 6H5H2
2f7dcba76318a1cc374ca6fece196864 4H8H7H2
b7eafa3721e66dc1a5c5679f5d6d2465 4H3H7H2
3b69c9445e0470997f7167cdd1c72e28 4H8H9H7H2
f94f3c6ffb51bfaf9fead3d47a293e5e 4H8H10H7H2
8a28a93b6f1d13c799c103d4841addb2 14H13H12H11H2
7ef6a8b6b4176b0a0e9db8c78231eb0a 14H15H13H12H11H2
2d993e5737343cb5bc7c5cc7c2588f2d 4H20H19H18H17H16H12H11H2
655e19eebd1e3b64a676964f24c7ba53 4H21H19H18H17H16H12H11H2
f03f897af51e686124e1dac63b170103 4H20H22H19H18H17H16H12H11H2
7a1c99ee4075e82f3eeff92f9b49dde5 4H21H22H19H18H17H16H12H11H2
03752fef807766545e498244602f7c3e 4H21H23H19H18H17H16H12H11H2
11fe36deb645477da64732367bd615d9 4H20H23H19H18H17H16H12H11H2
45070c52e5a9a043921168231b1b5ed5 29H28H27H26H25H24H19H18H17H16H12H11H2
42173002b14ffc9e74a860766dd68e80 31H30H27H26H25H24H19H18H17H16H12H11H2
30d215fe043bf5f5648e34b0a6cd940d 31H32H30H27H26H25H24H19H18H17H16H12H11H2
b2d59ea048ce5cf98dfd175f082a7b0f 35H34H33H18H17H16H12H11H2
be4d354422f0b9ea95c974789ecaee59 39H38
525a32cf30f779dfd936c9843515dc88 41H40
