// environment definition nonpayable(env e) returns bool = e.msg.value == 0; definition nonzerosender(env e) returns bool = e.msg.sender != 0; definition sanity(env e) returns bool = clock(e) > 0 && clock(e) <= max_uint48; // math definition min(mathint a, mathint b) returns mathint = a < b ? a : b; definition max(mathint a, mathint b) returns mathint = a > b ? a : b; // time definition clock(env e) returns mathint = to_mathint(e.block.timestamp); definition isSetAndPast(env e, uint48 timepoint) returns bool = timepoint != 0 && to_mathint(timepoint) <= clock(e);