original.name="ConstrainedList_Valid_9"
======
>>> main.whiley
type posintlist is (int[] list) where all { i in 0 .. |list| | list[i] >= 0 }
function sum(posintlist ls, int i) -> (int r)
// Input i must be valid index in list, or one past
requires i >= 0 && i <= |ls|
// Return cannot be negative
ensures r >= 0:
//
if i == |ls|:
return 0
else:
return ls[i] + sum(ls, i + 1)
function sum(posintlist ls) -> (int r)
ensures r >= 0:
//
return sum(ls, 0)
public export method test() :
assume sum([1, 2, 3, 4, 5, 6, 7]) == 28
---