The awesome logic-solver package begins

cherry-pick these commits onto a better branch later