let init_solver_univ ?(global_constraints=true) ?(buffer=false) univ =
let map = new identity in
let cudfpool = init_pool_univ global_constraints univ in
let globalid = (Array.length (strip_cudf_pool cudfpool)) - 1 in
let solverpool = SolverPool (strip_cudf_pool cudfpool) in
let solver = { constraints = init_solver_cache ~buffer solverpool ; map = map } in
solver