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`