Files
why3/examples/python/arrays.py

53 lines
1.1 KiB
Python
Raw Permalink Normal View History

###################################################
# ...[expr] += ... #
###################################################
def side_effect1(tab):
#@ ensures result == 0
#@ ensures len(tab) == len(old(tab)) + 1
tab.append(1)
return 0
a = [0]
tab = []
a[side_effect1(tab)] += 1
#@ assert a[0] == 1
#@ assert len(tab) == 1
###################################################
# expr[...] += ... #
###################################################
def side_effect2(tab):
#@ ensures result[0] == 0
#@ ensures len(result) == 1
#@ ensures len(tab) == len(old(tab)) + 1
tab.append(1)
return [0]
tab.clear()
side_effect2(tab)[0] += 1
#@ assert len(tab) == 1
###################################################
# expr[:] #
###################################################
def side_effect3(tab):
#@ ensures len(result) == 3
#@ ensures len(tab) == len(old(tab)) + 1
tab.append(1)
return [0, 1, 2]
tab.clear()
side_effect3(tab)[:]
#@ assert len(tab) == 1