例:?
式は普通の高校の代数からのものですが、逆数、減算、除算のない算術加算と乗算(例)に制限されています。文字は変数です。
役立つ場合は、以外の数値で表現可能な式を禁止できます。すなわち、でもでもでもない:
- multilinear、以外の累乗:はOKですが、ではなく、aのように表現できるものではありません積和への完全展開。
- all one、以外の係数はありません:はOKですが、ではなく、そのように表現できるものはありません -of-製品例 ; そして X + X Y ≡ 1 、X + 1 、X 、Y 2 、X + 3 、X 、Y 、A (X + Y )+ X (+のB )≡ 2 A X + Y + B X
- 以外の定数はありません:再び、完全に展開された積和では、例えば(+ 1 )+ (B + 1 )≡ + B + 2
2つの式が同等かどうかを判断する効率的なアルゴリズムはありますか?
例として、指数関数的な時間を使用した非効率的なブルートフォースアルゴリズムを次に示します。
両方の式をsum-of-productsに完全に展開します。これは等価性を簡単に確認できます(通勤/関連付けは順序を変更できるため、順序を無視してください)。
例:
これはよく知られた問題のようです-高校生でさえ、それを手動で解決する方法を教えられています。また、自動定理証明/チェッカーによって解決されますが、より洗練された側面に集中します。
これは、オンラインの自動化された定理証明器です:http : //tryacl2.org/、通勤/連想/配布などのシーケンスを見つけることで同等性を示します:
?
(thm (= (+ (* x y) x y) (+ x (* y (+ x 1))) ))
--- 188ステップ
?
(thm (= (+ y (* x (+ y 1))) (+ x (* y (+ x 1))) ))
--- 325ステップ
ここが私の最初の質問です。間違った場所、間違ったタグ、間違った説明/質問方法などを選んだかどうかを教えてください。ありがとう!
注意:この質問はコメントに応じて書き直され
ました。すべての回答者に感謝します!私は多くを学びました。