| CARVIEW |
toysolver: Assorted decision procedures for SAT, SMT, Max-SAT, PB, MIP, etc
Toy-level solver implementation of various problems including SAT, SMT, Max-SAT, PBSPBO (Pseudo Boolean SatisfactionOptimization), MILP (Mixed Integer Linear Programming) and non-linear real arithmetic.
[Skip to Readme]
Modules
[Index] [Quick Jump]
- ToySolver
- Arith
- ToySolver.BitVector
- Combinatorial
- ToySolver.Combinatorial.BipartiteMatching
- HittingSet
- ToySolver.Combinatorial.HittingSet.DAA
- ToySolver.Combinatorial.HittingSet.FredmanKhachiyan1996
- ToySolver.Combinatorial.HittingSet.GurvichKhachiyan1999
- ToySolver.Combinatorial.HittingSet.HTCBDD
- ToySolver.Combinatorial.HittingSet.InterestingSets
- ToySolver.Combinatorial.HittingSet.MARCO
- ToySolver.Combinatorial.HittingSet.SHD
- ToySolver.Combinatorial.HittingSet.Simple
- ToySolver.Combinatorial.HittingSet.Util
- Knapsack
- ToySolver.Combinatorial.SubsetSum
- ToySolver.Converter
- ToySolver.Converter.Base
- ToySolver.Converter.GCNF2MaxSAT
- ToySolver.Converter.MIP
- ToySolver.Converter.MIP2SMT
- ToySolver.Converter.NAESAT
- ToySolver.Converter.PB
- ToySolver.Converter.QBF2IPC
- ToySolver.Converter.QUBO
- ToySolver.Converter.SAT2KSAT
- ToySolver.Converter.SAT2MIS
- ToySolver.Converter.SAT2MaxCut
- ToySolver.Converter.SAT2MaxSAT
- ToySolver.Converter.Tseitin
- Data
- AlgebraicNumber
- ToySolver.Data.BoolExpr
- ToySolver.Data.Boolean
- ToySolver.Data.DNF
- ToySolver.Data.Delta
- FOL
- ToySolver.Data.IntVar
- ToySolver.Data.LA
- ToySolver.Data.LBool
- ToySolver.Data.OrdRel
- ToySolver.Data.Polynomial
- Factorization
- ToySolver.Data.Polynomial.Factorization.FiniteField
- ToySolver.Data.Polynomial.Factorization.Hensel
- ToySolver.Data.Polynomial.Factorization.Integer
- ToySolver.Data.Polynomial.Factorization.Kronecker
- ToySolver.Data.Polynomial.Factorization.Rational
- ToySolver.Data.Polynomial.Factorization.SquareFree
- ToySolver.Data.Polynomial.Factorization.Zassenhaus
- ToySolver.Data.Polynomial.GroebnerBasis
- Interpolation
- Factorization
- EUF
- ToySolver.FileFormat
- Graph
- Internal
- ToySolver.QBF
- ToySolver.QUBO
- ToySolver.SAT
- Encoder
- ToySolver.SAT.ExistentialQuantification
- ToySolver.SAT.Formula
- ToySolver.SAT.MUS
- ToySolver.SAT.PBO
- ToySolver.SAT.Printer
- Solver
- Store
- ToySolver.SAT.TheorySolver
- ToySolver.SAT.Types
- ToySolver.SDP
- ToySolver.SMT
- Text
- ToySolver.Version
- ToySolver.Wang
Flags
Manual Flags
| Name | Description | Default |
|---|---|---|
| forcechar8 | set default encoding to char8 (not to use iconv) | Disabled |
| linuxstatic | build statically linked binaries | Disabled |
| withzlib | Use zlib package to support gzipped files | Enabled |
| buildtoyfmf | build toyfmf command | Disabled |
| buildforeignlibraries | build foreign libraries | Enabled |
| buildsampleprograms | build sample programs | Disabled |
| buildmiscprograms | build misc programs | Disabled |
| usehaskeline | use haskeline package | Enabled |
| opencl | use opencl package (deprecated) | Disabled |
| extraboundschecking | enable extra bounds checking for debugging | Disabled |
Automatic Flags
| Name | Description | Default |
|---|---|---|
| optparse-applicative-018 | use optparse-applicative >=0.18 | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- toysolver-0.9.0.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
| Versions [RSS] | 0.0.2, 0.0.3, 0.0.4, 0.0.4.1, 0.0.5, 0.0.6, 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.8.0, 0.8.1, 0.9.0 |
|---|---|
| Change log | CHANGELOG.markdown |
| Dependencies | aeson (>=1.4.2.0 && <2.3), ansi-wl-pprint, array (>=0.5), attoparsec, base (>=4.12 && <4.22), bytestring (>=0.9.2.1 && <0.13), bytestring-builder, bytestring-encoding (>=0.1.1.0), case-insensitive, clock (>=0.7.1), containers (>=0.5.8), data-default, data-default-class, data-interval (>=2.0.1 && <2.2.0), deepseq, directory, extended-reals (>=0.1 && <1.0), filepath, finite-field (>=0.9.0 && <1.0.0), ghc-prim, hashable (>=1.2 && <1.6.0.0), hashtables, haskeline (>=0.7 && <0.9), heaps, intern (>=0.9.1.2 && <1.0.0.0), lattices, log-domain, loop (>=0.3.0 && <1.0.0), megaparsec (>=7 && <10), MIP (>=0.2.0.0 && <0.3), mtl (>=2.1.2), multiset, mwc-random (>=0.13.1 && <0.16), OptDir, optparse-applicative (>=0.13), parsec (>=3.1.2 && <4), pretty (>=1.1.2.0 && <1.2), prettyprinter (>=1), primes, primitive (>=0.6), process (>=1.1.0.2), pseudo-boolean (>=0.1.3.0 && <0.2.0.0), queue, scientific, semigroups (>=0.17), sign (>=0.2.0 && <1.0.0), split, stm (>=2.3), template-haskell, temporary (>=1.2), text (>=1.1.0.0), time (>=1.5.0), toysolver, transformers (>=0.2), transformers-compat (>=0.3), unbounded-delays, unordered-containers (>=0.2.3 && <0.3.0), vector (>=0.11), vector-space (>=0.8.6), xml-conduit, zlib [details] |
| Tested with | ghc ==8.6.3, ghc ==8.8.4, ghc ==8.10.7, ghc ==9.0.2, ghc ==9.2.8, ghc ==9.4.8, ghc ==9.6.6, ghc ==9.8.2 |
| License | BSD-3-Clause |
| Author | Masahiro Sakai (masahiro.sakai@gmail.com) |
| Maintainer | masahiro.sakai@gmail.com |
| Uploaded | by MasahiroSakai at 2025-02-18T10:33:01Z |
| Revised | Revision 2 made by MasahiroSakai at 2025-02-21T03:39:11Z |
| Category | Algorithms, Optimisation, Optimization, Theorem Provers, Constraints, Logic, Formal Methods, SMT |
| Home page | https://github.com/msakai/toysolver/ |
| Bug tracker | https://github.com/msakai/toysolver/issues |
| Source repo | head: git clone git://github.com/msakai/toysolver.git |
| Distributions | |
| Reverse Dependencies | 4 direct, 0 indirect [details] |
| Executables | pbverify, maxsatverify, pigeonhole, probsat, survey-propagation, svm2lp, htc, shortest-path, assign, knapsack, numberlink, nqueens, nonogram, sudoku, toyconvert, toyfmf, toyqbf, toysmt, toysat, toysolver |
| Downloads | 16082 total (102 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs uploaded by user Build status unknown [no reports yet] |
Readme for toysolver-0.9.0
[back to package description]toysolver
It provides solver implementations of various problems including SAT, SMT, Max-SAT, PBS (Pseudo Boolean Satisfaction), PBO (Pseudo Boolean Optimization), MILP (Mixed Integer Linear Programming) and non-linear real arithmetic.
In particular, it contains moderately-fast pure-Haskell SAT solver 'toysat'.
Installation
See INSTALL.md.
Usage
This package includes several commands.
toysolver
Arithmetic solver for the following problems:
- Mixed Integer Linear Programming (MILP or MIP)
- Boolean SATisfiability problem (SAT)
- PB
- Pseudo Boolean Satisfaction (PBS)
- Pseudo Boolean Optimization (PBO)
- Weighted Boolean Optimization (WBO)
- Max-SAT families
- Max-SAT
- Partial Max-SAT
- Weighted Max-SAT
- Weighted Partial Max-SAT
- Real Closed Field
Usage:
toysolver [OPTION...] [file.lp|file.mps]
toysolver --lp [OPTION...] [file.lp|file.mps]
toysolver --sat [OPTION...] [file.cnf]
toysolver --pb [OPTION...] [file.opb]
toysolver --wbo [OPTION...] [file.wbo]
toysolver --maxsat [OPTION...] [file.cnf|file.wcnf]
-h --help show help
-v --version show version number
--solver=SOLVER mip (default), omega-test, cooper, cad, old-mip, ct
toysat
SAT-based solver for the following problems:
- SAT
- Boolean SATisfiability problem (SAT)
- Minimally Unsatisfiable Subset (MUS)
- Group-Oriented MUS (GMUS)
- PB
- Pseudo Boolean Satisfaction (PBS)
- Pseudo Boolean Optimization (PBO)
- Weighted Boolean Optimization (WBO)
- Max-SAT families
- Max-SAT
- Partial Max-SAT
- Weighted Max-SAT
- Weighted Partial Max-SAT
- Integer Programming (all variables must be bounded)
Usage:
toysat [file.cnf|-]
toysat --sat [file.cnf|-]
toysat --mus [file.gcnf|file.cnf|-]
toysat --pb [file.opb|-]
toysat --wbo [file.wbo|-]
toysat --maxsat [file.cnf|file.wcnf|-]
toysat --lp [file.lp|file.mps|-]
PB'12 competition result:
- toysat placed 2nd in PARTIAL-BIGINT-LIN and SOFT-BIGINT-LIN categories
- toysat placed 4th in PARTIAL-SMALLINT-LIN and SOFT-SMALLINT-LIN categories
- toysat placed 8th in OPT-BIGINT-LIN category
toysmt
SMT solver based on toysat.
Usage:
toysmt [file.smt2]
Currently only QF_UF, QF_RDL, QF_LRA, QF_UFRDL and QF_UFLRA logic are supported.
toyfmf
SAT-based finite model finder for first order logic (FOL).
Usage:
toyfmf [file.tptp] [size]
toyconvert
Converter between various problem files.
Usage:
toyconvert -o [outputfile] [inputfile]
Supported formats:
- Input formats: .cnf .wcnf .opb .wbo .gcnf .lp .mps
- Output formats: .cnf .wcnf .opb .wbo .lsp .lp .mps .smp .smt2 .ys
Bindings
- ersatz-toysat - toysat backend driver for ersatz
- satchmo-toysat - toysat backend driver for satchmo