a<=c0an
Na=anc0
Na=c2c0
precondition
a<adivanc2anAa<=c0an
variant decrease
a<=c0adivanc2
iia=aresulta*a*V0V0axa=aresulta*V0V0a=amodanc2c0Lapoweraxadivanc2a=aresultc1a=anc0
a=aresultapoweraxan
postcondition
a=V2apowerV0V1Iiia=V2a*a*V3V3V0a=V2a*V3V3a=amodV1c2c0LapowerV0adivV1c2a=V2c1a=V1c0FANa=c2c0Aa<=c0V4Aa<V4V1Aa<=c0V1LadivV1c2ANa=c2c0INa=V1c0Ia<=c0V1F
VC for fast_exp
a=a*c1apowerV0V1apowerV0V1Aa<=c0V1Ia<=c0V1F
loop invariant init
Na=c2c0Ia>V2c0Ia=a*V4apowerV3V2apowerV0V1Aa<=c0V2FIa<=c0V1F
Na=c2c0Ia=V6a*V3V3FIa=V5a*V4V3FIa=amodV2c2c1Ia>V2c0Ia=a*V4apowerV3V2apowerV0V1Aa<=c0V2FIa<=c0V1F
a=apowerV6V7a*V8V8LapowerV3V7Ia=V7adivV2c2FIa=V6a*V3V3FIa=V5a*V4V3FIa=amodV2c2c1Ia>V2c0Ia=a*V4apowerV3V2apowerV0V1Aa<=c0V2FIa<=c0V1F
assertion
a<V7V2Aa<=c0V2Ia=apowerV6V7a*V8V8LapowerV3V7Ia=V7adivV2c2FIa=V6a*V3V3FIa=V5a*V4V3FIa=amodV2c2c1Ia>V2c0Ia=a*V4apowerV3V2apowerV0V1Aa<=c0V2FIa<=c0V1F
loop variant decrease
a=a*V5apowerV6V7apowerV0V1Aa<=c0V7Ia=apowerV6V7a*V8V8LapowerV3V7Ia=V7adivV2c2FIa=V6a*V3V3FIa=V5a*V4V3FIa=amodV2c2c1Ia>V2c0Ia=a*V4apowerV3V2apowerV0V1Aa<=c0V2FIa<=c0V1F
loop invariant preservation
Na=c2c0Ia=V5a*V3V3FINa=amodV2c2c1Ia>V2c0Ia=a*V4apowerV3V2apowerV0V1Aa<=c0V2FIa<=c0V1F
a=apowerV5V6a*V7V7LapowerV3V6Ia=V6adivV2c2FIa=V5a*V3V3FINa=amodV2c2c1Ia>V2c0Ia=a*V4apowerV3V2apowerV0V1Aa<=c0V2FIa<=c0V1F
a<V6V2Aa<=c0V2Ia=apowerV5V6a*V7V7LapowerV3V6Ia=V6adivV2c2FIa=V5a*V3V3FINa=amodV2c2c1Ia>V2c0Ia=a*V4apowerV3V2apowerV0V1Aa<=c0V2FIa<=c0V1F
a=a*V4apowerV5V6apowerV0V1Aa<=c0V6Ia=apowerV5V6a*V7V7LapowerV3V6Ia=V6adivV2c2FIa=V5a*V3V3FINa=amodV2c2c1Ia>V2c0Ia=a*V4apowerV3V2apowerV0V1Aa<=c0V2FIa<=c0V1F
a=V4apowerV0V1INa>V2c0Ia=a*V4apowerV3V2apowerV0V1Aa<=c0V2FIa<=c0V1F
ia=V4apowerV0V1ia=a*V4apowerV5V6apowerV0V1Aa<=c0V6Aa<V6V2Aa<=c0V2Aa=apowerV5V6a*V7V7LapowerV3V6Ia=V6adivV2c2FANa=c2c0Ia=V5a*V3V3Fa=a*V8apowerV9V10apowerV0V1Aa<=c0V10Aa<V10V2Aa<=c0V2Aa=apowerV9V10a*V11V11LapowerV3V10Ia=V10adivV2c2FANa=c2c0Ia=V9a*V3V3FIa=V8a*V4V3Fa=amodV2c2c1ANa=c2c0a>V2c0Ia=a*V4apowerV3V2apowerV0V1Aa<=c0V2FAa=a*c1apowerV0V1apowerV0V1Aa<=c0V1Ia<=c0V1F
VC for fast_exp_imperative

77148d143ac7c90990badcca601348cf 11H10
982b5a004ca001abc1a1ead276137bfe 3H2H1H0
2f1be114c9a14082cf8ec48a4f85dc6d 5H4H1H0
d4f1a1085ada0dbe5266706e9794621c 3H6H1H0
982b5a004ca001abc1a1ead276137bfe 3H2H1H0
c5c2f07d1c15beddba618cb0a96cee71 9H8H7H0
81bffc195fcf123c46e6e274ec6b5984 28H27
1dc730da8e11b71e8e5ff0b8a02a8092 13H12
ba50358c92fa036db7e598d63d69646f 3H14
2fa2d7d72b40ef5e7494635a04dd31db 3H15
8d991885ab7bd083720ac5e6fe98494c 17H16
8c9d6e8dff26c83cb4bd02fe9582d210 19H18
deaee08f0ef9b0eb3b8c1d4a70e2d90e 21H20
266eaa115f849446f2514bedec98f030 3H22
9ade1c556718b592e9eaf9d0e33401fc 17H23
3dc09bdccfe8a6c90b71996f0fff058b 19H24
286f5e54ef87f07a13c925d54caccf50 21H25
e1ce53c750528e01f37c2bb4e33b23b8 9H26
