項書き換えの原始再帰的関数への応用について

項書き換えの原始再帰的関数への応用について
江口直日
千葉大学 理学部 数学・情報数理学科
[email protected]
2014 年 12 月 5 日
概要
本セミナーノートでは停止性をもつ項書き換えシステムによる書き換え列の長
さとその項書き換えシステムにより定義される関数の複雑さの関係性を解説する.また
その関係性が原始再帰的関数に対する閉方条件の証明に応用できることを説明する.
1
導入
項書き換えシステムとは方向付きの等式の集まりである.多重再帰的関数は停止性と合流性をも
つ一階の有限項書き換えシステムにより表現することができる.例えばアッカーマン関数はシグネ
チャ{0, s, ack} 上の次のような項書き換えシステムにより表現することができる.
ack(0, y) → s(y)
ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
無限個の変数記号からなる集合 V を固定し,シグネチャF と V からなる項全体からなる集合を
T (F, V) で表す.特にシグネチャ F 上の閉項全体からなる集合を T (F) で表す.任意のシグネチャ
に対して計算結果を構成するような関数記号からなる部分シグネチャC が一意的に存在する.上の
例では F = {0, s, ack} に対して C = {0, s} である.
定義 1 (項のサイズ). 項 t ∈ T (F) のサイズ |t| を以下で定義する.t が変数記号または定数記号の
∑
とき |t| = 1, それ以外のとき |f (t1 , . . . , tk )| = 1 + ki=1 |ti | とする.
例えば |0| = 1 と |sn (0)| = n + 1 が任意の自然数 n に対して成り立つ.
系 1. 有限項書き換えシステム R に対して,自然数 c を max{|r| | ∃l(l → r ∈ R)} ≤ c となるよ
うな定数とする.そのとき s →R t ならば |t| ≤ c(|s| + 1) が成り立つ.
証明 あるコンテクスト C(·), 代入 θ と書き換え規則 l → r ∈ R に対して s = C(lθ), t = C(rθ)
が成り立つとする.そのとき |t| ≤ c(|s| + 1) が成り立つことをコンテクスト C(·) のサイズに関す
る帰納法により示す.コンテクスト C(·) が自明なとき,すなわち s = lθ, t = rθ が成り立つとき,
|t| = |rθ| ≤ |r| · |lθ| + |r| ≤ c(|s| + 1) が成り立つ.そうでないとき s = f (t1 , . . . , ti−1 , u, ti+1 , . . . , tk ),
t = f (t1 , . . . , ti−1 , v, ti+1 , . . . , tk ) とする.帰納法の仮定より |v| ≤ c(|u| + 1) が成り立つ.それより
∑
∑
|t| = 1 + 1≤j≤k,j̸=i |tj | + |v| ≤ c(1 + 1≤j≤k,j̸=i |tj | + |u| + 1) = |s| が成り立つ.
□
項書き換えシステム R の複雑さを量るために R における可能な書き換え列の長さを調べるのが
自然であろう.
定義 2 (導出の複雑さ,実行時間の複雑さ). R をシグネチャ F 上の項書き換えシステム,t を F
上の項とするとき,項 t に対する導出の高さ (derivation height) が定義される.
dhR (t) := sup{k ∈ N | t = t0 →R t1 →R · · · →R tk }
R が停止性をもつ有限の項書き換えシステムのとき dhR (t) = max{k ∈ N | t = t0 →R t1 →R
· · · →R tk } が成り立つ.複雑さの尺度を書き換えを始める項から独立にするために導出の複雑さ
(derivational complexity) が定義される.
dcR (n) := sup{dhR (t) | t ∈ T (F) かつ |t| ≤ n}
(ただし n ∈ N)
R が停止性をもつ有限の項書き換えシステムでシグネチャ F が有限のとき dcR (n) = max{dhR (n) |
t ∈ T (F) かつ |t| ≤ n} が成り立つ.すなわち dcR : N → N が成り立つ.計算の複雑さとより緊密
に関連させるために実行時間の複雑さ (runtime complexity) が定義される.
rcR (n) := sup{dhR (t) | t = f (t1 , . . . , tk ), f ∈ F \ C, t1 , . . . , tk ∈ T (C) かつ |t| ≤ n}
定義から任意の自然数 n に対して rcR (n) ≤ dcR (n) が成り立つ.
2
項書き換えシステムの複雑さと関数の複雑さの関係
この章では構成子のシグネチャ C を {0, s} に固定し,[0] は自然数 0, [s] は自然数上の後者関数
と解釈する.そうした解釈の下で R はある多重再帰的関数を定義する方向付き等式からなる有限
の項書き換えシステムとする.
命題 1. ある関数記号 f ∈ F \ C に対して,関数 [f] が F 上の項書き換えシステム R により定義
されるとする.また bR : N → N を任意の自然数 n に対して rcR (n) ≤ bR (n) が成り立つような任
意の関数とする.そのとき関数 [f] は bR の下で原始再帰的である.特に [f] は bR の下で初等的,
つまり原始再帰的かつ増加率に関して指数的な上界をもつ.
証明 シグネチャ F に対する符号化 ⌜·⌝ : F → |F | を考よう.符号化 ⌜·⌝ はシグネチャ F 上の閉項
に対する初等的符号化に拡張できる.そうした符号化に対して ⌜t⌝ ≤ e(|t|) が任意の項について成
り立つような初等的関数 e の存在を仮定することができる.例えば ⌜f (t1 , . . . , tk )⌝ = 2⌜f ⌝+1 · 3k+1 ·
5⌜t1 ⌝ · · · pk+2 ⌜tk ⌝ とせよ.ただし pm は m 番目の素数とする.適当な書き換え戦略を一つ固定し,
任意の項 s に対して s →R t となる項 t は高々一つだけ存在するとする.そのとき次のような原始
再帰的関数 h : N → N が存在する.



⌜t⌝ s →R t の場合
h(⌜s⌝) =



⌜s⌝ s が標準形の場合
0
それ以外の場合
系 1 と符号化 ⌜·⌝ が初等的であることから関数 h は初等的である.次に原始再帰的関数 g を以下
で定義する.
g(0, n) = ⌜f(sn (0))⌝
g(m + 1, n) = h(g(m, n))
定義より g(m, n) は f(sn (0)) = t0 →R t1 →R · · · →R tm であるような項 tm を符号化している.系
1 より |tm | ≤ cm (n + 1) がある定数 c に対して成り立つ.このことと符号化 ⌜·⌝ が初等的であるこ
とから関数 g は初等的である.関数 f : N → N を f (n) = g(bR (n + 2), n) と定義する.定義より
f は bR の下で初等的関数である.最後に value を任意の自然数 m に対して value(⌜sm (0)⌝) = m
であるような初等的関数とする.n を任意の自然数とする.サイズの定義より |f(sn (0)) = n + 2 が
成り立つので,関数 f の定義より f (n) は f(sn (0)) から始まる R による書き換えの標準形を符号
化している.すなわち [f](n) = value(f (n)) が任意の自然数 n について成り立つ.よって [f] は bR
の下で初等的である.
□
厳密には証明中で,書き換えシステム R が停止性をもつこと,R が (仮定された書き換え戦略の
下で) 合流性をもつこと,f(sn (0)) の標準形は C 上の閉項であることも示す必要がある.
3
原始再帰的関数への応用
原始再帰的関数全体からなるクラスは,アッカーマン関数に代表されるように一般的な多重再帰
法に関しては閉じていない.他方で R. Péter により証明された古典的な事実として,原始再帰的関
数はパラメータ付き原始再帰法 (primitive recursion with parameter substitution, PRP),重なり
なし多重再帰法 (unnested multiple recursion, UMR),単純多重再帰法 (simple nested recursion,
SNR) に関して閉じている.
f (x + 1, y) = h(x, y, f (x, p(x, y)))
(PRP)
f (x + 1, y + 1) = h(x, y, f (x, p(x, y)), f (x + 1, y))
(UMR)
f (x + 1, y) = h(x, y, f (x, p(x, y, f (x, y))))
(SNR)
Péter は [6] でこうした制限的な多重再帰法を原始再帰法に帰着することにより上の事実を示した
が,E. A. Cichon と A. Weiermann は [4] で,命題 1 の関係性に基づき (PRP), (UMR), (SNR)
それぞれを表現する項書き換えシステムの実行時間の複雑さが原始再帰的上界をもつことを示すこ
とにより Péter の結果の別証明を与えた.例としてシグネチャF = {0, s, g, p, h, f} 上でパラメータ
付き原始再帰法 (PRP) を表現する項書き換えシステム RPRP を考える.
RPRP :
f(0, y) → g(y)
f(s(x), y) → h(x, y, f(x, p(x, y)))
各 k 変数関数記号 f ∈ F に対して (単調な) k 変数原始再帰的関数 I(f ) を定義し,閉項の自然数
への解釈 I : T (F) → N を I(f (t1 , . . . , tk )) = I(f )(I(t1 ), . . . , I(tk )) で定義する.各原子再帰的関
数 I(f ) の単調性より,実行時間の複雑さ rcRPRP が原始再帰的上界をもつことを結論するためには,
各書き換え規則 l → r ∈ RPRP と任意の閉項の代入 θ に対して I(lθ) > I(rθ) が成り立つことを示
せば十分である.
多重再帰法の図式は辞書式経路順序 (lexicographic path order) によって一般化することができ
る.すなわち任意の多重再帰的関数 f と f を表現するような項書き換えシステム Rf に対してあ
る辞書式経路順序 >lpo が存在し,lθ >lpo rθ が各書き換え規則 l → r ∈ Rf と任意の代入 θ に対し
て成り立つ.このとき辞書式経路順序の単調性より s →Rf t ならば s >lpo t が成り立つ.すなわち
に Rf おける書き換え列は >lpo に関する下降列に埋め込むことができる.その一方で次の事実が
知られている.
定理 1 (Weiermann [7]). 有限シグネチャ上で定義される有限項書き換えシステム R に対してある
辞書式経路順序 >lpo が存在し,l >lpo r が各書き換え規則 l → r ∈ R に対して成り立つとする.そ
のとき R は停止性をもつ.さらに R の導出の複雑さ dcR は多重再帰的上界をもつ.
他方でこうした辞書式経路順序による順序付けによっては原始再帰的上界が一般には導かれない.
Cichon は (PRP), (UMR) を表現する項書き換えシステムが順序付け可能であり,かつ順序付け
可能な項書き換えシステムの導出の複雑さが原始再帰的上界をもつような制限的な辞書式経路順序
を定義し,上記の事実のさらなる別証明を与えた [3].そうしたアプローチは後に (SNR) にも拡張
されている [8, 5].
4
多項式時間計算可能な関数への応用可能性について
命題 1 は項書き換えシステムの実行時間の複雑さとその項書き換えシステムで定義される関数
の複雑さが初等的関数を法として同等であることを主張しているが,以下の理由により多項式時
間アルゴリズムを法とすることはできない.命題の証明中で t0 →R t1 →R · · · →R tm ならば
|tm | ≤ cm (|t0 | + 1) がある定数 c に対して成り立つという事実を用いたが,m の関数としてこの初
等的上界を多項式上界に置き換えることは一般にはできない.したがってたとえ項の符号化 ⌜t⌝ に
多項式時間計算可能なものを選んだとしても,計算結果は指数的になりうる.実際に,書き換えを
始める項のサイズに関して多項式回数の書き換えによって指数サイズの標準形に至るような項書き
換えシステムが存在する.
しかしながら関数の入出力をグラフとして表現し,項書き換えの代わりに項グラフ書き換えを用
いることにより,項書き換えシステムの実行時間の複雑さとその項書き換えシステムで定義される
グラフ関数の複雑さは多項式時間アルゴリズムを法として同等となることが知られている [2, 1].そ
の意味で項書き換えシステムの実行時間の多項式複雑さは多項式時間計算可能性に対して完全であ
ると述べられることがある.
参考文献
[1] M. Avanzini and G. Moser. Closing the Gap Between Runtime Complexity and Polytime Computability.
In Proceedings of the 21st International Conference on Rewriting Techniques and Applications (RTA
2010), volume 6 of Leibniz International Proceedings in Informatics, pages 33–48, 2010.
[2] M. Avanzini and G. Moser. Complexity Analysis by Graph Rewriting. In Proceedings of the 10th
International Symposium on Functional and Logic Programming (FLOPS 2010), pages 257–271, 2010.
[3] E. A. Cichon. Termination Orderings and Complexity Characterizations. In P. Aczel, H. Simmons,
and S. S. Wainer, editors, Proof Theory, pages 171–193. Cambridge University Press, 1992.
[4] E. A. Cichon and A. Weiermann. Term Rewriting Theory for the Primitive Recursive Functions. Annals
of Pure and Applied Logic, 83(3):199–223, 1997.
[5] N. Eguchi. Predicative Lexicographic Path Orders - An Application of Term Rewriting to the Region
of Primitive Recursive Functions. In U. Dal Lago and R. Peña, editors, Foundational and Practical
Aspects of Resource Analysis - The 3rd International Workshop (FOPARA 2013), Revised Selected
Papers, volume 8552 of Lecture Notes in Computer Science, pages 77–92. Springer, 2014.
[6] R. Péter. Recursive Functions. Academic Press, New York-London, The 3rd revised edition, Translated
from the German, 1967.
[7] A. Weiermann. Termination Proofs for Term Rewriting Systems by Lexicographic Path Ordering Imply
Multiply Recursive Derivation Lengths. Theoretical Computer Science, 139(1–2):355–362, 1995.
[8] A. Weiermann. A Termination Ordering for Primitive Recursive Schemata. Preprint, 20 pages, 2013.