module Cudf_checker:Checkers for CUDF documentssig
..end
Consistency and problem-solution matching.
typeinconsistency_reason =
[ `Conflict of
(Cudf_types.pkgname * Cudf_types.version) * Cudf_types.vpkglist
| `Unsat_dep of
(Cudf_types.pkgname * Cudf_types.version) * Cudf_types.vpkgformula ]
typebad_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 : bad_solution_reason -> string
val satisfy_formula : Cudf.universe -> Cudf_types.vpkgformula -> bool * Cudf_types.vpkgformula
true, []
if the formula is satisfied; false, f
otherwise, where f is a sub-formula of the input denoting an
unsatisfiable formula (ideally, a witness of the unsatisfiability
of the input formula)val disjoint : Cudf.universe ->
?ignore:(Cudf.package -> bool) ->
Cudf_types.vpkglist -> bool * Cudf_types.vpkglist
true, []
if the list is disjoin; false, l
otherwise, where l is a list of packages satisfied by the universe
(ideally, the reason of the non-disjointness)val is_consistent : Cudf.universe -> bool * inconsistency_reason option
true, None
if the given installation is consistent,
false, Some r
otherwise, where r is the inconsistency reasonval is_solution : Cudf.cudf -> Cudf.solution -> bool * bad_solution_reason list
true, []
if this is the case, false, l
otherwise, where r explains why the solution is bad