用語の書き換え; 重要なペアを計算する


10

次の演習を解こうとしましたが、すべての重要なペアを見つけようとしていました。

次の質問があります。

  1. どのクリティカルペアが新しいルールを作成したかを知るにはどうすればよいですか?
  2. すべての重要なペアを見つけたとどうやって知るのですか?

LET ∘がバイナリであるが、私は単項であり、eは定数です。 E = { (X ∘ Y )∘ Z ≈ X ∘ (Y ∘ Z ) X ∘ E ≈ X X ∘ I (X )≈ E }Σ={∘,i,e}∘ie

E={(x∘y)∘z≈x∘(y∘z)x∘e≈xx∘i(x)≈e}

これまでの私の仕事:

  1. x∘e>lpox   (LPO 1)   xされる変数

    x∘i(x)>lpoe   (LPO 2b)の右辺には用語が存在しない

    (x∘y)∘z≈x∘(y∘z)

    s=∘(∘(x,y)s1,zs2)t=∘(xt1,∘(y,z)t2)     (LPO 2c)

    • そのチェックs>tj、j=1,m¯

      s>lpot1     (LPO 1)

      証明することs>lpot2(LPO 2C)我々証明その
      s>lpoy(LPO 1);s>lpoz(LPO 1);∘(x,y)>y(LPO 1)
    • isi>lpoti     i=1
      ∘(x,y)>lpox(LPO 1)

    (x∘y)∘z>lpox∘(y∘z)

  2. (x∘y)∘z→x∘(y∘z)

    x1∘e→x1

    x∘y=?x1∘e

    θ{x←x1;y←e}

    (x1∘e)∘z→x1∘z↓↓x1∘(e∘z)→e∘z≈zleft identity?

    (x∘y)∘z→x∘(y∘z)

    e∘x1→x1

    x∘y=?e∘x1

    θ{x←e;y←x1}
    (e∘x1)∘z→x1∘z↓↓e∘(x1∘z)→?

    (x∘y)∘z→x∘(y∘z)

    x1∘i(x1)→e

    x∘y=?x1∘i(x1)

    θ{x←x1;y←i(x1)}
    (x1∘i(x1))∘z→e∘z↓↓x1∘(i(x1)∘z)→?

サポートドキュメントとして、Franz BaaderとTobias Nipkowによる「Term Rewriting and All That」を持っています。

(元の画像はこちら)

編集1

重要なペアを検索した後、次の一連のルールがあります(2.aが正しいと仮定)。

E={(x∘y)∘z≈x∘(y∘z)x∘e≈xx∘i(x)≈ex∘(i(x)∘y)≈yx∘(y∘i(x∘y))≈ee∘x≈xe∘(x∘y)≈x∘y}

。。@MartinSleziak私は問題を解決するために使用していますという文書が概念と表記スタイルはそこからであるフランツ・バーダーとトビアス・ニップコウによると、その「という用語書き換えおよびすべてであることを意味
— アレクサンドルCimpanu

1
これが何らかの形で役立つかどうかはわかりませんが、「重要なペア」「用語の書き換え」「グループの公理」を検索すると、システムの重要なポイントについて説明するスライドが表示されます。(または、少なくとも非常に類似したシステム)。こちらまたはこちらをご覧ください。
— Martin

@MartinSleziak、私はスライドに目を通しました、彼らはこの時点で役に立つかもしれません、私は本と格闘する王でした。現在、いくつかのアイデアを試しています。ご協力ありがとうございました。
— Alexandru Cimpanu

回答:


5

実際の質問に対処する前に、これまでの作業について、2.aの左の取り消しについて1つ説明します。一般的には正しくありません。重要なペアはです。その結果、重要なペア2.bを取得できません。このキャンセルの問題は、得られる方程式が一般に、開始した公理からは従わないことです。たとえば、リングの言語で作業している場合、ある時点でクリティカルペアを導出できますが、を演繹するのは正しくありません(つまり、ささいなモデル)。Huetを含むサウンドの書き換え手順では、この削減はできません。x∘(e∘z)≈x∘z0∗x≈0∗yx≈y

一方、(変数名が変更されたバージョンの)またはをすべての(つまり、 2番目の)。結果の重要なペアはx∘ex∘i(x)(x∘y)∘z∘

  • x∘(y∘e)←(x∘y)∘e→x∘y、これは簡約式となり、x∘y≈x∘y
  • x∘(y∘i(x∘y))←(x∘y)∘i(x∘y)→e、これ以上縮小できず、ルール(優先順位のが使用してLPOを定義したと仮定すると、方向付ける行ったように)。x∘(y∘i(x∘y))→e∘▹e▹x∘i(x)≈e

基本的な完了手順:

  1. 重要なペアを作成するときは常に、現在のルールセットを使用して、両側を可能な限り減らします。結果の正規形が等しくない場合は、新しいルールを作成します。たとえば、あなたの2.c。新しいルールます。一方、をと統合すると、クリティカルペア、これは自明なと破棄されます。x∘(i(x)∘z)→e∘z(x∘y)∘zx1∘y1 X ∘ (Y ∘ (Z ∘ Z 1))≈ X ∘ (Y ∘ (Z ∘ Z 1))(x∘y)∘(z∘z1)←((x∘y)∘z)∘z1→(x∘(y∘z))∘z1x∘(y∘(z∘z1))≈x∘(y∘(z∘z1))
  2. あなたは、新しいルールを作成するたびに、あなたはそれと既存のルールの間のすべての重要なペアが考慮しなければならないのunifiabilityをチェックの各非可変部分項でし、逆に。また、結合性について上記で行ったように、自己重複、つまりとそれ自身のサブタームの単一化可能性を確認することも忘れないでください。既存のルールのすべての重要なペアが調査され、新しいルールが作成されるか、破棄されたときにのみ停止します。l 1 → r 1、… 、l n → r n l l i ll→rl1→r1,…,ln→rnllil

この手順はかなり改善できます。特に、新しいルールを使用して古いルールを簡略化し(そして、それらが重要になった場合、それらを破棄する可能性があります。つまり、新しいルールによって包含されます)、次の重要なペアを選択して調べるための優れたヒューリスティックは、大幅に削減できます。ルールの量。


Huetの完了手順について話すとき、2.aのように簡略化できますか?
— Alexandru Cimpanu

どのようにしてx∘eまたはx∘i(x)を(x∘y)∘zのすべてと統合しますか(つまり、2番目のusingを使用して)?
— Alexandru Cimpanu

その単純化に関しては、2.aではクラスで行われたため、背後に何らかのロジックが必要です。
— Alexandru Cimpanu

あなたはおそらく条件式システムを扱っていましたか、そしてあなたの公理は左キャンセル可能性()を含んでいましたか?それが2.aで行うステップであり、公理によって正当化される場合は、それが可能です。それでもショートカットになりますが、厳密に言えば、最初に非還元方程式を導出し、次に条件式を介して還元方程式を取得し、次に非還元方程式を取り除きます(それが包含されるため)。x∗y=x∗z⇒y=z
— Klaus Draeger、2015

知りません。私はそれが高度な完了手順(私が慣れていないもの)に関係していると思いました。2.aが正しいと仮定して、質問を編集して、取得した新しいルールを投稿します。
— Alexandru Cimpanu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.