最内書換えに基づく項書換え系の 完全な書換え戦略 名古屋大学大学院情報科学研究科 岡本 晃治 酒井 正彦 坂部 俊樹 1 項書換え系(TRS) 関数型言語の計算モデル 書換え規則で項を書き換え計算 例:自然数の加算のTRS R= Add(s(x), y) → s(Add(x, y)) Add(0, y) → y Add(s(0), s(s(0))) 1 + 2 2 項書換え系(TRS) 関数型言語の計算モデル 書換え規則で項を書き換え計算 例:自然数の加算のTRS R= Add(s(x), y) → s(Add(x, y)) Add(0, y) → y 書換え規則が適用不能 な項(正規形)に到達 Add(s(0), s(s(0))) → s(Add(0, s(s(0)))) → s(s(s(0))) 1 + 2 = 3 3 TRSの書換え戦略 書換え規則を適用する場所の選び方 Ex: R= f (x) g(x) h(x) → x → s(x) f (g(h(0))) → x 4 TRSの書換え戦略 書換え規則を適用する場所の選び方 Ex: R= f (x) g(x) h(x) → x → s(x) f (g(h(0))) → x 書換え規則を適用可 能な位置が3つ存在 5 TRSの書換え戦略 書換え規則を適用する場所の選び方 Ex: R= g(h(0)) f (x) g(x) h(x) x=g(h(0)) → x → s(x) f (g(h(0))) → x 関数記号 f の位置に f(x) → xの規則を適用 6 TRSの書換え戦略 書換え規則を適用する場所の選び方 Ex: R= g(h(0)) f (x) g(x) h(x) x=h(0) → x → s(x) f (g(h(0))) → x f (s(h(0))) 関数記号 g の位置に g(x) → s(x)の規則を適用 7 TRSの書換え戦略 書換え規則を適用する場所の選び方 Ex: R= g(h(0)) f (x) g(x) h(x) x= 0 → x → s(x) f (g(h(0))) → x f (s(h(0))) f (g(0)) 関数記号 h の位置に h(x) → xの規則を適用 8 TRSの書換え戦略 書換え規則を適用する場所の選び方 Ex: R= g(h(0)) f (x) g(x) h(x) → x → s(x) f (g(h(0))) → x f (s(h(0))) f (g(0)) 書換え可能な最も 内側の位置を書換え 最内戦略 9 TRSの完全な書換え戦略 与えた項の全ての正規形に到達可能な戦略 Ex: R= f (g(x)) → x f (x) → s(x) h(x) → x s(g(0)) f (g(h(0))) 0 h(0) f (g(0)) s(g(0)) 10 TRSの完全な書換え戦略 与えた項の全ての正規形に到達可能な戦略 Ex: R= f (g(x)) → x f (x) → s(x) h(x) → x s(g(0)) f (g(h(0))) 0 h(0) f (g(0)) s(g(0)) :最内戦略の書換え Rにおいて最内戦略は完全な書換え戦略 11 研究背景・目的[1/2] 複数の解を持つ問題を扱うTRSは一般的に 合流性を持たない Ex:逆関数の計算 合流性:任意の項に対してどのような順序で書換え規 則を適用しても同一の正規形に到達 特定の書換え戦略に従って全ての正規形が 求まるTRSの条件を明らかにする 特定の書換え戦略に従うことで冗長な 書換えの枝刈りが可能 12 研究背景・目的[2/2] R= H(0) → 0 H(s2(0)) H(0) → s(0) U(H(s(0))) H(s(x)) → U(H(x)) U(x) → s(s(x)) s2(H(s(0))) U2(H(0)) H:自然数を1/2倍 する関数の逆関数 U2(0 ) s2(U(0) ) s2(U(H(0)) ) U(s2(0)) s4(0) U(s2(H(0))) s4(H(0)) U2(s(0) ) s2(U(s(0))) U(s3(0)) s5(0) 深さ優先探索で37ステップの書換えが必要 13 研究背景・目的[2/2] R= H(0) → 0 H(s2(0)) H(0) → s(0) U(H(s(0))) H(s(x)) → U(H(x)) U(x) → s(s(x)) s2(H(s(0))) U2(H(0)) H:自然数を1/2倍 する関数の逆関数 U2(0 ) s2(U(0) ) :最内書換え s2(U(H(0)) ) U(s2(0)) s4(0) U(s2(H(0))) s4(H(0)) U2(s(0) ) s2(U(s(0))) U(s3(0)) s5(0) 8ステップの最内書換えで全正規形に到達可能14 これまでの結果 定理 [酒井, 岡本, 坂部 : ‘03] TRS Rが t1→t2→t3→・・・といった無限 の書換えが存在しない 停止性を持つ 右線形 左辺の先頭でのみ規則の重なりをもつ(オーバーレイ) であるとき 最内戦略が完全な書換え戦略となる 15 これまでの結果 定理 [酒井, 岡本, 坂部 : ‘03] TRS Rが f (x)→g(x,x)など右辺に同じ 変数が2度以上出現しない 停止性を持つ 右線形 左辺の先頭でのみ規則の重なりをもつ(オーバーレイ) であるとき 最内戦略が完全な書換え戦略となる 16 これまでの結果 定理 [酒井, 岡本, 坂部 : ‘03] TRS Rが 停止性を持つ 右線形 左辺の先頭でのみ規則の重なりをもつ(オーバーレイ) であるとき 最内戦略が完全な書換え戦略となる 17 オーバーレイTRS どの2つの規則も左辺の先頭以外で重なり を持たないようなTRS 先頭以外での重なり:規則l1→r1,l2→r2に対してl1の真部分項とl2 が等しくなるような代入が存在 Ex: R1= f (g(x)) → x f (x) → s(x) h(x) → x R2= 2つの規則が左辺の先頭より下で重な f (g(x)) → x g(x) → s(x) っているためR2はオーバーレイではない h(x) → x 18 2つの規則が左辺の先頭で重な っているためR1はオーバーレイ TRSのクラスの拡張 オーバーレイという条件を拡張 inside left-to-right joinable 項s に対して t1 ← s→ t2 ならば t1 → t2 が成立 * t1 → t2 :0回以上の書換えでt1からt2に到達可能 * Ex: R= f (x) → b f (a) → b a → c Rはオーバーレイではない f (a) f (c) b Rはinside left-to-right joinable 19 定理 TRS Rが 停止性を持つ 右線形 inside left-to-right jonable であるとき 最内戦略が完全な書換え戦略となる 20 例 Ex: R= f (x) f (a) f (d) a b → → → → → f (f (f (a))) b b e c d 深さ優先探索で 65ステップの書換 えが必要 f (f (f (c))) f (b) f (f (b))) f (d) f (f (d))) b f (e) d e 21 例 Ex: R= f (x) f (a) f (d) a b → → → → → f (f (f (a))) b b e c d 11ステップの最内 書換えで全正規 形に到達可能 f (f (f (c))) f (b) f (f (b))) f (d) f (f (d))) b f (e) d e 22 non-erasing TRSへの拡張 停止性の条件の拡張 各々の規則の左辺と右辺に現れる変数が等しい Ex: R1= f (g(x) , y) → k(x,y) h(x) → x R2= f (g(x) , y) → j(x) h(x) → x 左辺と右辺に現れる変数が 等しいので non-erasing 左辺と右辺の変数が 異なる 23 non-erasing TRSでの例 Ex: R= f (g(x)) → f (x) g(a) → c a → a c → a f (a) → b f (g(a)) : 最内戦略 • non-erasing (かつ停止性を持たない) • 右線形 • innermost left-to-right joinable を満たすTRS f (a) f (g(a)) k f (g(a)) 最内戦略が完全な戦略にならない 24 non-erasing TRSでの例 Ex: R= f (g(x)) → f (x) g(a) → c a → a c → a f (a) → b • non-erasing (かつ停止性を持たない) • 右線形 • 弱オーバーレイ を満たすTRS 項 s に対して t1 ← s→ t2 ならば t1≡t2 が成立 * ( t1 → t2ならば inside left-to-right joinable) 最内戦略が完全な戦略になる 25 まとめ 最内戦略に基づく書換え戦略が完全な戦 略になるようなTRSのクラスについて, inside left-to-right joinable という性質を与 え拡張を行った 今後の課題 右線形・停止性という他の2つのTRSの条件 に対するさらなる拡張 26
© Copyright 2024 ExpyDoc