Cudf_checker

`sig
type inconsistency_reason =
[ `Conflict of
(Cudf_types.pkgname * Cudf_types.version) * Cudf_types.vpkglist
| `Unsat_dep of
(Cudf_types.pkgname * Cudf_types.version) * Cudf_types.vpkgformula ]
type bad_solution_reason =
[ `Conflict of
(Cudf_types.pkgname * Cudf_types.version) * Cudf_types.vpkglist
| `Downgrade of Cudf_types.vpkglist
| `Missing_install of Cudf_types.vpkglist
| `Missing_upgrade of Cudf_types.vpkglist
| `Multi_upgrade of Cudf_types.pkgname list
| `Not_kept of
Cudf_types.pkgname * Cudf_types.version * Cudf_types.enum_keep
| `Unremoved of Cudf_types.vpkglist
| `Unsat_dep of
(Cudf_types.pkgname * Cudf_types.version) * Cudf_types.vpkgformula ]
val explain_reason : Cudf_checker.bad_solution_reason -> string
val satisfy_formula :
Cudf.universe -> Cudf_types.vpkgformula -> bool * Cudf_types.vpkgformula
val disjoint :
Cudf.universe ->
?ignore:(Cudf.package -> bool) ->
Cudf_types.vpkglist -> bool * Cudf_types.vpkglist
val is_consistent :
Cudf.universe -> bool * Cudf_checker.inconsistency_reason option
val is_solution :
Cudf.universe * Cudf.request ->
Cudf.universe -> bool * Cudf_checker.bad_solution_reason list
end`