ltentrup / MiniSat

Swift Bindings for MiniSat

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Swift Bindings for MiniSat

A swifty wrapper around the MiniSat SAT solver by Niklas Een and Niklas Sorensson.

Example Usage

import MiniSat

let minisat = MiniSat()
    
let a = minisat.new()
let b = minisat.new()
    
minisat.add(clause: [a, b])
minisat.add(clause: [-b])
minisat.solve() // -> .satisfiable
minisat.value(of: a) // -> .positive
minisat.value(of: b) // -> .negative
    
minisat.assume(literal: b)
minisat.solve() // -> .unsatisfiable
minisat.failed(literal: a) // -> false
minisat.failed(literal: b) // -> true
    
minisat.solve() // -> .satisfiable

Installation

Swift Package Manager

.Package(url: "https://github.com/ltentrup/MiniSat.git", majorVersion: 0, minor: 1)

About

Swift Bindings for MiniSat

License:MIT License


Languages

Language:C++ 96.2%Language:Swift 2.5%Language:C 1.4%