% This file contains redefinitions of standard builtins for version 2.1 % that can be overridden by solvers. predicate float_in(var float: x, float: a, float: b) = x >= a /\ x <= b; predicate float_dom(var float: x, array[int] of float: as) = let { array[int] of var bool: b = [float_in(x,as[2*i-1],as[2*i]) | i in 1..length(as) div 2] } in exists(b);