pub struct Report {
pub status: Status,
pub conflicts: Vec<Conflict>,
pub warnings: Vec<Warning>,
pub derived: Vec<Derived>,
pub underdetermined: Option<String>,
pub unsat_core: Vec<CoreItem>,
pub retract: Vec<CoreItem>,
pub hints: Vec<SimilarAtoms>,
}Expand description
The result of solving, self-contained (atom ids already resolved to labels).
Fields§
§status: StatusThe overall verdict.
conflicts: Vec<Conflict>Every violated constraint / fact contradiction (sorted by source+line).
warnings: Vec<Warning>Every premise blocked by an UNKNOWN atom (sorted by source+line).
derived: Vec<Derived>Facts produced by forward-chaining RULEs.
underdetermined: Option<String>When UNDERDETERMINED, the label of an atom left free by the constraints
(asserting it would pin the model down).
unsat_core: Vec<CoreItem>When the system is jointly unsatisfiable but the forward pass found no single violated constraint, the minimal set of constructs (facts / premises / rules) whose removal restores satisfiability — i.e. the smallest group jointly to blame. Empty in every other case.
retract: Vec<CoreItem>When ASSUME hypotheses are what break an otherwise-consistent program,
the minimal set of assumptions that cannot all hold together with the
(consistent) facts, premises and rules — dropping any one restores
consistency. Only ever lists ASSUME constructs: facts and premises are
never blamed. Empty whenever the facts/premises are themselves to blame
(a hard contradiction) or there is no conflict at all. The verdict stays
CONFLICT (exit code 2); this field only says which dial to turn.
hints: Vec<SimilarAtoms>Advisory near-duplicate atom-name hints (possible typos). Never affects
Report::status or Report::exit_code — purely informational.