ais_permutationV1Ia=aV0aV1V2V2Ia<V2alengthV1Aa<=c0V2FIa<aV1V3alengthV1Aa<=c0aV1V3Ia<V3alengthV1Aa<=c0V3FIais_permutationV0Ia=alengthV0alengthV1F
empty_shape
aloopinvariantV4V4V6V6V5Ia>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
loop invariant init
a<V8alengthV7Aa<=c0V8IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
index in array bounds
a<V8alengthV7Aa<=c0V8Ia>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
a<V10alengthV9Aa<=c0V10LaV7V8Ia=V9aV7V8c-1Aa=aeltsV9asetaeltsV7V8c-1Ia=alengthV9alengthV7FIa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
a<aV9V8c0Aa<aV9a~a~V8c0Aa=aV4a~a~V8aV7V8Aa<a~V8c0Aa<=a~V8a~V8Aa<=aV7V8V8Aa<=c0aV7V8Aa<=V11V8Aa=aV9aV7V8V11Ia=V11aV9V10FLaV7V8Ia=V9aV7V8c-1Aa=aeltsV9asetaeltsV7V8c-1Ia=alengthV9alengthV7FIa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
Na=aV9V12a~V8Ia<aV9V12c0Ia<V12V8Aa<=c0V12FIa<aV9V8c0Aa<aV9a~a~V8c0Aa=aV4a~a~V8aV7V8Aa<a~V8c0Aa<=a~V8a~V8Aa<=aV7V8V8Aa<=c0aV7V8Aa<=V11V8Aa=aV9aV7V8V11Ia=V11aV9V10FLaV7V8Ia=V9aV7V8c-1Aa=aeltsV9asetaeltsV7V8c-1Ia=alengthV9alengthV7FIa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
aloopinvariantV4V9V8a-V8c1V5INa=aV9V12a~V8Ia<aV9V12c0Ia<V12V8Aa<=c0V12FIa<aV9V8c0Aa<aV9a~a~V8c0Aa=aV4a~a~V8aV7V8Aa<a~V8c0Aa<=a~V8a~V8Aa<=aV7V8V8Aa<=c0aV7V8Aa<=V11V8Aa=aV9aV7V8V11Ia=V11aV9V10FLaV7V8Ia=V9aV7V8c-1Aa=aeltsV9asetaeltsV7V8c-1Ia=alengthV9alengthV7FIa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
a<V12alengthV15Aa<=c0V12Ia>=V14c0IaloopinvariantV4V15V8a-V8c1V5ANa=aV15V16V13Ia<aV15V16c0Ia<V16V8Aa<=c0V16FAa<aV15V8c0Aa<aV15a~V13c0Aa=aV4a~V13V12Aa<V13c0Aa<=a~V8V13Aa<=V12V8Aa<=c0V12Aa<=V14V8Aa=aV15V12V14Ia=alengthV15alengthV9FIa=V11aV9V10FLaV7V8Ia=V9aV7V8c-1Aa=aeltsV9asetaeltsV7V8c-1Ia=alengthV9alengthV7FIa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
a<V18alengthV16Aa<=c0V18Ia=V18V14FIa=V17a~V12FIa=V16aV15V12V13Aa=aeltsV16asetaeltsV15V12V13Ia=alengthV16alengthV15FIa>=V14c0IaloopinvariantV4V15V8a-V8c1V5ANa=aV15V19V13Ia<aV15V19c0Ia<V19V8Aa<=c0V19FAa<aV15V8c0Aa<aV15a~V13c0Aa=aV4a~V13V12Aa<V13c0Aa<=a~V8V13Aa<=V12V8Aa<=c0V12Aa<=V14V8Aa=aV15V12V14Ia=alengthV15alengthV9FIa=V11aV9V10FLaV7V8Ia=V9aV7V8c-1Aa=aeltsV9asetaeltsV7V8c-1Ia=alengthV9alengthV7FIa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
a<anumofaeltsV16c0V5anumofaeltsV15c0V5Aa<=c0anumofaeltsV15c0V5Ia=V19aV16V18FIa=V18V14FIa=V17a~V12FIa=V16aV15V12V13Aa=aeltsV16asetaeltsV15V12V13Ia=alengthV16alengthV15FIa>=V14c0IaloopinvariantV4V15V8a-V8c1V5ANa=aV15V20V13Ia<aV15V20c0Ia<V20V8Aa<=c0V20FAa<aV15V8c0Aa<aV15a~V13c0Aa=aV4a~V13V12Aa<V13c0Aa<=a~V8V13Aa<=V12V8Aa<=c0V12Aa<=V14V8Aa=aV15V12V14Ia=alengthV15alengthV9FIa=V11aV9V10FLaV7V8Ia=V9aV7V8c-1Aa=aeltsV9asetaeltsV7V8c-1Ia=alengthV9alengthV7FIa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
loop variant decrease
a<aV16V8c0Aa<aV16a~V17c0Aa=aV4a~V17V18Aa<V17c0Aa<=a~V8V17Aa<=V18V8Aa<=c0V18Aa<=V19V8Aa=aV16V18V19Ia=V19aV16V18FIa=V18V14FIa=V17a~V12FIa=V16aV15V12V13Aa=aeltsV16asetaeltsV15V12V13Ia=alengthV16alengthV15FIa>=V14c0IaloopinvariantV4V15V8a-V8c1V5ANa=aV15V20V13Ia<aV15V20c0Ia<V20V8Aa<=c0V20FAa<aV15V8c0Aa<aV15a~V13c0Aa=aV4a~V13V12Aa<V13c0Aa<=a~V8V13Aa<=V12V8Aa<=c0V12Aa<=V14V8Aa=aV15V12V14Ia=alengthV15alengthV9FIa=V11aV9V10FLaV7V8Ia=V9aV7V8c-1Aa=aeltsV9asetaeltsV7V8c-1Ia=alengthV9alengthV7FIa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
loop invariant preservation
Na=aV16V20V17Ia<aV16V20c0Ia<V20V8Aa<=c0V20FIa<aV16V8c0Aa<aV16a~V17c0Aa=aV4a~V17V18Aa<V17c0Aa<=a~V8V17Aa<=V18V8Aa<=c0V18Aa<=V19V8Aa=aV16V18V19Ia=V19aV16V18FIa=V18V14FIa=V17a~V12FIa=V16aV15V12V13Aa=aeltsV16asetaeltsV15V12V13Ia=alengthV16alengthV15FIa>=V14c0IaloopinvariantV4V15V8a-V8c1V5ANa=aV15V21V13Ia<aV15V21c0Ia<V21V8Aa<=c0V21FAa<aV15V8c0Aa<aV15a~V13c0Aa=aV4a~V13V12Aa<V13c0Aa<=a~V8V13Aa<=V12V8Aa<=c0V12Aa<=V14V8Aa=aV15V12V14Ia=alengthV15alengthV9FIa=V11aV9V10FLaV7V8Ia=V9aV7V8c-1Aa=aeltsV9asetaeltsV7V8c-1Ia=alengthV9alengthV7FIa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
aloopinvariantV4V16V8a-V8c1V5INa=aV16V20V17Ia<aV16V20c0Ia<V20V8Aa<=c0V20FIa<aV16V8c0Aa<aV16a~V17c0Aa=aV4a~V17V18Aa<V17c0Aa<=a~V8V17Aa<=V18V8Aa<=c0V18Aa<=V19V8Aa=aV16V18V19Ia=V19aV16V18FIa=V18V14FIa=V17a~V12FIa=V16aV15V12V13Aa=aeltsV16asetaeltsV15V12V13Ia=alengthV16alengthV15FIa>=V14c0IaloopinvariantV4V15V8a-V8c1V5ANa=aV15V21V13Ia<aV15V21c0Ia<V21V8Aa<=c0V21FAa<aV15V8c0Aa<aV15a~V13c0Aa=aV4a~V13V12Aa<V13c0Aa<=a~V8V13Aa<=V12V8Aa<=c0V12Aa<=V14V8Aa=aV15V12V14Ia=alengthV15alengthV9FIa=V11aV9V10FLaV7V8Ia=V9aV7V8c-1Aa=aeltsV9asetaeltsV7V8c-1Ia=alengthV9alengthV7FIa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
a=V12V8INa>=V14c0IaloopinvariantV4V15V8a-V8c1V5ANa=aV15V16V13Ia<aV15V16c0Ia<V16V8Aa<=c0V16FAa<aV15V8c0Aa<aV15a~V13c0Aa=aV4a~V13V12Aa<V13c0Aa<=a~V8V13Aa<=V12V8Aa<=c0V12Aa<=V14V8Aa=aV15V12V14Ia=alengthV15alengthV9FIa=V11aV9V10FLaV7V8Ia=V9aV7V8c-1Aa=aeltsV9asetaeltsV7V8c-1Ia=alengthV9alengthV7FIa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
assertion
a=aV4a~V16V8Ia=V16V13FIa=V12V8INa>=V14c0IaloopinvariantV4V15V8a-V8c1V5ANa=aV15V17V13Ia<aV15V17c0Ia<V17V8Aa<=c0V17FAa<aV15V8c0Aa<aV15a~V13c0Aa=aV4a~V13V12Aa<V13c0Aa<=a~V8V13Aa<=V12V8Aa<=c0V12Aa<=V14V8Aa=aV15V12V14Ia=alengthV15alengthV9FIa=V11aV9V10FLaV7V8Ia=V9aV7V8c-1Aa=aeltsV9asetaeltsV7V8c-1Ia=alengthV9alengthV7FIa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
a<V8alengthV15Aa<=c0V8La~V16Ia=aV4a~V16V8Ia=V16V13FIa=V12V8INa>=V14c0IaloopinvariantV4V15V8a-V8c1V5ANa=aV15V18V13Ia<aV15V18c0Ia<V18V8Aa<=c0V18FAa<aV15V8c0Aa<aV15a~V13c0Aa=aV4a~V13V12Aa<V13c0Aa<=a~V8V13Aa<=V12V8Aa<=c0V12Aa<=V14V8Aa=aV15V12V14Ia=alengthV15alengthV9FIa=V11aV9V10FLaV7V8Ia=V9aV7V8c-1Aa=aeltsV9asetaeltsV7V8c-1Ia=alengthV9alengthV7FIa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
aloopinvariantV4V18a-V8c1a-V8c1V5Ia=V18aV15V8V17Aa=aeltsV18asetaeltsV15V8V17Ia=alengthV18alengthV15FLa~V16Ia=aV4a~V16V8Ia=V16V13FIa=V12V8INa>=V14c0IaloopinvariantV4V15V8a-V8c1V5ANa=aV15V19V13Ia<aV15V19c0Ia<V19V8Aa<=c0V19FAa<aV15V8c0Aa<aV15a~V13c0Aa=aV4a~V13V12Aa<V13c0Aa<=a~V8V13Aa<=V12V8Aa<=c0V12Aa<=V14V8Aa=aV15V12V14Ia=alengthV15alengthV9FIa=V11aV9V10FLaV7V8Ia=V9aV7V8c-1Aa=aeltsV9asetaeltsV7V8c-1Ia=alengthV9alengthV7FIa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
a=aV4a~aV7V8V8INa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
a<V8alengthV7Aa<=c0V8La~aV7V8Ia=aV4a~aV7V8V8INa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
aloopinvariantV4V10a-V8c1a-V8c1V5Ia=V10aV7V8V9Aa=aeltsV10asetaeltsV7V8V9Ia=alengthV10alengthV7FLa~aV7V8Ia=aV4a~aV7V8V8INa>=aV7V8c0IaloopinvariantV4V7V8V8V5Aa>=V8c0Aa>=V6V8FIa=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
ais_permutationV7IaloopinvariantV4V7a-c0c1a-c0c1V5Ia=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
postcondition
a=aV4aV7V8V8Ia<V8alengthV7Aa<=c0V8FIais_permutationV7IaloopinvariantV4V7a-c0c1a-c0c1V5Ia=alengthV7alengthV4FIa>=V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
a=aV4aV4V7V7Ia<V7alengthV4Aa<=c0V7FAais_permutationV4Ia<V6a-c0c1La-V5c1LalengthV4Iais_permutationV4F
out of loop bounds
a=aV4aV4V7V7Ia<V7alengthV4Aa<=c0V7FAais_permutationV4Ia<V6a-c0c1Aa=aV4aV8V9V9Ia<V9alengthV8Aa<=c0V9FAais_permutationV8IaloopinvariantV4V8a-c0c1a-c0c1V5AialoopinvariantV4V12a-V10c1a-V10c1V5Ia=V12aV8V10V11Aa=aeltsV12asetaeltsV8V10V11Ia=alengthV12alengthV8FAa<V10alengthV8Aa<=c0V10La~aV8V10Aa=aV4a~aV8V10V10ialoopinvariantV4V22a-V10c1a-V10c1V5Ia=V22aV19V10V21Aa=aeltsV22asetaeltsV19V10V21Ia=alengthV22alengthV19FAa<V10alengthV19Aa<=c0V10La~V20Aa=aV4a~V20V10Ia=V20V17FAa=V16V10aloopinvariantV4V23V10a-V10c1V5ANa=aV23V27V24Ia<aV23V27c0Ia<V27V10Aa<=c0V27FAa<aV23V10c0Aa<aV23a~V24c0Aa=aV4a~V24V25Aa<V24c0Aa<=a~V10V24Aa<=V25V10Aa<=c0V25Aa<=V26V10Aa=aV23V25V26Aa<anumofaeltsV23c0V5anumofaeltsV19c0V5Aa<=c0anumofaeltsV19c0V5Ia=V26aV23V25FAa<V25alengthV23Aa<=c0V25Ia=V25V18FIa=V24a~V16FIa=V23aV19V16V17Aa=aeltsV23asetaeltsV19V16V17Ia=alengthV23alengthV19FAa<V16alengthV19Aa<=c0V16a>=V18c0IaloopinvariantV4V19V10a-V10c1V5ANa=aV19V28V17Ia<aV19V28c0Ia<V28V10Aa<=c0V28FAa<aV19V10c0Aa<aV19a~V17c0Aa=aV4a~V17V16Aa<V17c0Aa<=a~V10V17Aa<=V16V10
VC for inverse_in_place
ais_permutationV3Ia=V3aV2c1c1Aa=aeltsV3asetaeltsV2c1c1Ia=alengthV3alengthV2FAa<c1alengthV2Aa<=c0c1Ia=V2aV1c2c0Aa=aeltsV2asetaeltsV1c2c0Ia=alengthV2alengthV1FAa<c2alengthV1Aa<=c0c2Ia=V1aV0c0c2Aa=aeltsV1asetaeltsV0c0c2Ia=alengthV1alengthV0FAa<c0alengthV0Aa<=c0c0Ia=alengthV0c3Aa=aV0V4c0Ia<V4c3Aa<=c0V4FFAa>=c3c0
VC for test1
ais_permutationV3Ia=V3aV2c2c0Aa=aeltsV3asetaeltsV2c2c0Ia=alengthV3alengthV2FAa<c2alengthV2Aa<=c0c2Ia=V2aV1c1c2Aa=aeltsV2asetaeltsV1c1c2Ia=alengthV2alengthV1FAa<c1alengthV1Aa<=c0c1Ia=V1aV0c0c1Aa=aeltsV1asetaeltsV0c0c1Ia=alengthV1alengthV0FAa<c0alengthV0Aa<=c0c0Ia=alengthV0c3Aa=aV0V4c0Ia<V4c3Aa<=c0V4FFAa>=c3c0
VC for test2

f377774f190278c0976fa59b2a707cad 1H0
22e6a6537f2aff1ffe524c43962e78d6 33H32H0
3e6f3ebf9e2094d4b0b6a3d78681d59f 3H2H0
2a545105f62dba05d2a48782b8dc2b47 5H4H0
fcf818d955f62ba8781592fb7791367b 5H6H0
0aa51d926793c5d366efaf4a65e327c2 5H7H0
bd6de11703a725306d5f5d9bbb291b20 3H8H0
27c4df6b293ca87489fc9cc893a84f57 3H9H0
b1e72846d39f35840a4e6ba572347161 3H10H0
7deb4cb90c71136271e81e6fa73655b8 5H11H0
60af387f2d4df696a1b608f315a648a2 5H12H0
d6754bea943f1d9b50f5948de5725b1f 14H13H0
cabb811ea43de3ae49de4afb0f48ac49 16H15H0
8e9eed93a16fb6910023ffa579220e69 16H17H0
ff74216a776ba0e5f1f32dfb83456d23 16H18H0
dccb6d4a7b4c8d890c5a66f2b910da29 20H19H0
6036f2f025080a57cf2a05ee018fdbe4 20H21H0
90f12a0230ff3f3a975b282e80f96620 5H22H0
d0233907666fba65fcdb29636673c541 16H23H0
cbe8bf804fd48c6259c5734cf482cb2b 20H24H0
301785539a6f4d46d4016416470edfa0 5H25H0
cd349bbb0e1c9eac2ad204adf8b0581e 16H26H0
d521fc2e0b4532b4a20a4ea630cd20b5 28H27H0
15bde03e442c1b4b37086dc1fdb72570 28H29H0
7856889df2dbdaf050e27e7bba960b07 31H30H0
f72c676cef245ee14c86a068422a8374 35H34
9a350f5d9ddfe9c51d19fd3f697f8e2e 37H36
