basic library support for constraints