louisabraham / mcSATan

A diabolic implementation of mcSAT 😈

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mcSATan: A diabolic implementation of mcSAT

mcSAT is a paradigm for SMT (Satisfiability modulo theories) solving.

You can read the Implementation Notes.

Usage

You can use it to solve SAT problems with DIMACS-formatted .cnf files.

python3 -m mcSATan.cnf file.cnf

You can also directly plug the output of cnfgen:

cnfgen php 6 8 | python3 -m mcSATan.cnf

TODO

  • add setup
  • add tests with pytest
  • deploy to travis
  • convert to Cython
  • convert Watches to integers
  • 2WL watched literals
  • optimize the conflict analysis and the clause hashing
  • config file
  • ACIDS branching heuristic
  • phase-saving
  • SBR strategy for clause forget
  • Luby's restart
  • setuptools
  • Plugin for LRA
  • Unit Tests
  • C implementation of 2WL
  • C implementation of dyadics for LRA
  • SMT-LIB parser

About

A diabolic implementation of mcSAT 😈


Languages

Language:Python 99.1%Language:Shell 0.5%Language:Makefile 0.3%