pub enum SATResult {
Satisfiable(Vec<i32>),
Unsatisfiable,
Unknown,
}Expand description
The result of a SAT solver execution.
A SAT problem can have three possible outcomes:
Satisfiable: A satisfying assignment existsUnsatisfiable: No satisfying assignment existsUnknown: The solver couldn’t determine satisfiability (e.g., due to timeout or resource limits)
§Example
use sat_solvers::SATResult;
let result = SATResult::Satisfiable(vec![1, -2, 3]);
if result.is_satisfiable() {
if let SATResult::Satisfiable(assignment) = result {
// assignment contains the satisfying variable assignments
// Positive values mean the variable is true, negative means false
assert!(assignment.contains(&1)); // x1 = true
assert!(assignment.contains(&-2)); // x2 = false
}
}Variants§
Satisfiable(Vec<i32>)
The formula is satisfiable. Contains the satisfying assignment as a vector of literals. Positive values indicate the variable is true, negative values indicate the variable is false.
Unsatisfiable
The formula is unsatisfiable (no satisfying assignment exists).
Unknown
The solver could not determine satisfiability (e.g., timeout).
Implementations§
Source§impl SATResult
impl SATResult
Sourcepub fn is_satisfiable(&self) -> bool
pub fn is_satisfiable(&self) -> bool
Returns true if the result is Satisfiable.
§Example
use sat_solvers::SATResult;
let sat = SATResult::Satisfiable(vec![1, -2]);
let unsat = SATResult::Unsatisfiable;
assert!(sat.is_satisfiable());
assert!(!unsat.is_satisfiable());Sourcepub fn is_unsatisfiable(&self) -> bool
pub fn is_unsatisfiable(&self) -> bool
Returns true if the result is Unsatisfiable.
§Example
use sat_solvers::SATResult;
let unsat = SATResult::Unsatisfiable;
assert!(unsat.is_unsatisfiable());Sourcepub fn is_unknown(&self) -> bool
pub fn is_unknown(&self) -> bool
Trait Implementations§
impl Eq for SATResult
impl StructuralPartialEq for SATResult
Auto Trait Implementations§
impl Freeze for SATResult
impl RefUnwindSafe for SATResult
impl Send for SATResult
impl Sync for SATResult
impl Unpin for SATResult
impl UnwindSafe for SATResult
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more