真理値表を徹底的に(そしておそらくは徹底的に)作成するための競合するアプローチは、すべての式を標準形に縮小し、それらを比較することだと思います。たとえば、記号の順序(たとえば、用語内のアルファベット順)と用語(たとえば、用語の最初の記号によるアルファベット順)に関する規則を使用して、すべてを連言標準形に書き直します。もちろん、これには、ある式の記号Aが別の式の記号Aと同じである必要があります。
式をCNFに書き換えるためのCまたはC++関数を書く(またはネットから取得する)のはどれほど簡単かはわかりません。ただし、CおよびC ++では多くのAI作業が行われているため、Googleで何かを見つけることができるでしょう。
また、このアプローチと真理値表アプローチの計算の複雑さの比較についても少しわかりません。同じだと強く思います。
真理値表を使用する場合でも、正規表現を使用する場合でも、もちろん、入力フォームを、含まれているさまざまな記号の数に基づいてグループに分割することで、実行する作業を抑えることができます。
編集:他の回答、特にすべての真理値表を生成して比較するという提案を読んだとき、@Iulianは可能な真理値表の数を大幅に過小評価していると思います。
式を記述するためにRPNを決定するとします。これにより、角かっこを処理する必要がなくなり、10個の記号、つまり9個の(二項)演算子があります。10個あります!記号の異なる順序、および演算子の2^9の異なる順序。したがって、10個になります。x 2 ^9==この式の真理値表の1,857,945,600行。これにはいくつかの重複が含まれます。たとえば、「and」と「or」のみを含む式は、記号の順序に関係なく同じになります。しかし、私はこれをさらに理解できるかどうかわかりません...
それとも私は大きな間違いを犯していますか?