def prop_val_bounds(printer, ast):
    """Prints an infimum / supremum property "(inf|sup): prop"."""
    type_str = ast["type"]
    pred_str = f'{{{printer.ast_to_string(ast["predicate"])}}}' if ast.get("predicate") else ""
    exprs_str = ", ".join(map(lambda expr: printer.uppaal_c_printer.ast_to_string(expr), ast["exprs"]))
    return f'{type_str}{pred_str}: {exprs_str}'