1
typedef enum { Max, Min } kind;
2
int extremum (kind k, int x, int y) {
3
return ((k == Max ? x > y : x < y) ? x: y);
5
/*@ requires k == Max || k == Min;
7
ensures \result == x || \result == y;
10
ensures \result >= x && \result >= y;
13
ensures \result <= x && \result <= y;
14
complete behaviors is_max, is_min;
15
disjoint behaviors is_max, is_min;
17
int extremum (kind k, int x, int y);