This package provides only an interface to a SAT solver, no implementation. For packages that provide an implementation, see
The interface is defined as follows:
public enum SATSolverResult {
case satisfiable
case unsatisfiable
}
public enum SATSolverLiteralValue {
case positive
case negative
case unassigned
}
public protocol SATSolver {
associatedtype Literal
var maxVar: Literal { get }
init()
func new() -> Literal
func add(literal: Literal)
func assume(literal: Literal)
func solve() -> SATSolverResult
func value(of literal: Literal) -> SATSolverLiteralValue
func failed(literal: Literal) -> Bool
}