Files
why3/tests/python/isqrt_fun.py
Jean-Christophe Filliatre 272e253a0f python: functions and predicates
2017-03-17 17:04:29 +01:00

17 lines
367 B
Python

# same as sqrt.py, but with a function
def isqrt(n):
#@ requires n >= 0
#@ ensures result * result <= n < (result + 1) * (result + 1)
r = 0
s = 1
while s <= n:
#@ invariant 0 <= r
#@ invariant r * r <= n
#@ invariant s == (r+1) * (r+1)
#@ variant n - s
r = r + 1
s = s + 2 * r + 1
return r