例 例えば、項の書き換え では、ルールを適用する前にl → r {\displaystyle l\to r} 特定の用語にt {\displaystyle t} 、各変数l → r {\displaystyle l\to r} 変数との衝突を避けるため、新しいものに置き換える必要があります。t {\displaystyle t} ルールが与えられた 場合追加する ( 短所 ( x 、 y ) 、 z ) → 短所 ( x 、 追加する ( y 、 z ) ) {\displaystyle \operatorname {append} (\operatorname {cons} (x,y),z)\to \operatorname {cons} (x,\operatorname {append} (y,z))} そしてその用語 追加する ( 短所 ( x 、 短所 ( y 、 n 私 l ) ) 、 短所 ( 3 、 n 私 l ) ) 、 {\displaystyle \operatorname {append} (\operatorname {cons} (x,\operatorname {cons} (y,\mathrm {nil} )),\operatorname {cons} (3,\mathrm {nil} )),} 規則の左辺に一致する置換を見つけようと試み、追加する ( 短所 ( x 、 y ) 、 z ) {\displaystyle \operatorname {append} (\operatorname {cons} (x,y),z)} 、 内で追加する ( 短所 ( x 、 短所 ( y 、 n 私 l ) ) 、 短所 ( 3 、 n 私 l ) ) {\displaystyle \operatorname {append} (\operatorname {cons} (x,\operatorname {cons} (y,\mathrm {nil} )),\operatorname {cons} (3,\mathrm {nil} ))} 失敗するだろう、なぜならy {\displaystyle y} 一致しません短所 ( y 、 n 私 l ) {\displaystyle \operatorname {cons} (y,\mathrm {nil} )} ただし、ルールが新しいコピーに置き換えられた場合 [ a ] 追加する ( 短所 ( v 1 、 v 2 ) 、 v 3 ) → 短所 ( v 1 、 追加する ( v 2 、 v 3 ) ) {\displaystyle \operatorname {append} (\operatorname {cons} (v_{1},v_{2}),v_{3})\to \operatorname {cons} (v_{1},\operatorname {append} (v_{2},v_{3}))} 以前は、解答の置換によってマッチングが成功していました { v 1 ↦ x 、 v 2 ↦ 短所 ( y 、 n 私 l ) 、 v 3 ↦ 短所 ( 3 、 n 私 l ) } 。 {\displaystyle \{v_{1}\mapsto x,\;v_{2}\mapsto \operatorname {cons} (y,\mathrm {nil} ),\;v_{3}\mapsto \operatorname {cons} (3,\mathrm {nil} )\}。
注記 ↑ つまり、各変数が常に新しい変数に置き換えられたコピー
参考文献 ↑ カルメン・ブルーニ (2018).述語論理: 自然演繹(PDF) (講義スライド). ウォータールー大学。 こちらです:スライド13/26。↑ Michael Färber (2023 年 2 月). 表示的意味論と jq の高速インタプリタ (技術報告書). インスブルック大学. arXiv : 2302.10576 . ここ:4ページ↑ Gordon, Andrew D.; Melham, Thomas F. (1996). "Five axioms of alpha-conversion". In von Wright, Joakim; Grundy, Jim; Harrison, John (eds.). Theorem Proving in Higher Order Logics, 9th International Conference, TPHOLs'96, Turku, Finland, August 26-30, 1996, Proceedings . Lecture Notes in Computer Science. Vol. 1125. Springer. pp. 173–190 . doi : 10.1007/BFB0105404 . ISBN 978-3-540-61587-3 。↑コーエン、エドワード ( 1990)。 「 ループ B ― 定数を新しい変数に置き換える」。 1990年代のプログラミング 。コンピュータサイエンスのモノグラフ。ニューヨーク:スプリンガー。pp. 149–194。doi : 10.1007 / 978-1-4613-9706-9。ISBN 9781461397069 . S2CID 1509875 .