32 lines
685 B
Text
32 lines
685 B
Text
node always(i : bool) returns (o : bool);
|
|
var prev : bool;
|
|
let
|
|
prev = true -> pre o;
|
|
o = if i then prev else false;
|
|
tel
|
|
|
|
node count_true(i : bool) returns (o : int);
|
|
var prev : int;
|
|
let
|
|
prev = 0 -> pre o;
|
|
o = if i then prev + 1 else prev;
|
|
tel
|
|
|
|
node count_succ_true(i : bool) returns (o : int);
|
|
var
|
|
prev_i : bool;
|
|
prev_o : int;
|
|
let
|
|
prev_i = false -> pre i;
|
|
prev_o = 0 -> pre o;
|
|
o = if i and prev_i then prev_o + 1 else prev_o;
|
|
tel
|
|
|
|
node bounds(i : int) returns (min, max : int);
|
|
var prev_min, prev_max : int;
|
|
let
|
|
prev_min = i -> pre min;
|
|
prev_max = i -> pre max;
|
|
min = if (i < prev_min) then i else prev_min;
|
|
max = if (i > prev_max) then i else prev_max;
|
|
tel
|