私はいくつかのブール代数を扱うツールを書いています。これは基本的に、状態名、条件、および遷移情報を含むユーザー定義ファイルに基づいてステートマシンを作成するためのツールです。状態遷移が発生する方法は、基本的にブール論理表を調べることです。たとえば、次の場合にState1からState2に移行します。
(A & B) | (C & ~D) | (E)
私はこれをすべて実装しましたが、今度はシバン全体を反転するなどの楽しいことを行う機能を追加する必要があります。
~((A & B) | (C & ~D) | (E)) = (via DeMorgan) (~A & ~C & ~E) | (~A & D & ~E) | (~B & ~C & ~E) | (~B & D & ~E)
結果は選言標準形でなければなりません。
基本的に、私はこれを自分で書きたくはありません。このようなものを処理する方法を知っているライブラリがどこかにあることを望んでいます。SymPyに出くわしましたが、ブール代数モジュールがあるかどうかはわかりません。
私のアプリはCで書かれていますが(おそらくそうではないはずです)、何でも役に立ちます。