Welcome to bauhaus!#

bauhaus is a library for building logical theories on the fly with Python.

Features#

  • Create propositional variables from Python classes

  • Build naive SAT encoding constraints from propositional variables
    • At most one

    • At least one

    • Exactly one

    • At most K

    • Implies all

    • Arbitrary constraint specification over propositions

    • None of

  • Compile constraints into a theory in conjunctive or negation normal form

  • With python-nnf, submit a theory to a SAT solver

  • Theory introspection

Installation#

Install bauhaus by running:

pip install bauhaus

Usage#

Getting Started is the place to go to hit the ground running on using bauhaus.

The Module Reference documentation provides documentation for the library.

Contribute#

Head over to our Code of Conduct and get a feel for the library by reading our Architecture Design and Module Reference.

Support#

If you are having issues, please let us know. Reach out to us at karishma.daga@queensu.ca or by creating a GitHub issue.

License#

The project is licensed under the MIT license for the Queen’s Mu Lab.