node after (a: bool) returns (o: bool); var prev_o: bool; let prev_o = false -> pre o; o = prev_o or a; tel; node always_since (a: bool; b: bool) returns (o: bool); var prev_o: bool; let prev_o = false -> pre o; o = if b then a else prev_o and a; tel; node once_since(a: bool; reset: bool) returns (o: bool); var a_happened: bool; let a_happened = a -> if reset then false else (pre a_happened or a); o = (a and not reset) -> a_happened; tel; node always_from_to(b: bool; reset: bool; c: bool) returns (x: bool); var c_happened: bool; prev_b: bool; let c_happened = c -> if reset then false else (c or pre c_happened);* prev_b = b -> if reset then true else (b and prev_b); tel;