The Weighted Path Order for Termination of Term Rewriting

(邦訳:項書換え系の停止性のための重み付き経路順序)
 
山田 晃久
インスブルック大学 ポスドク

[背景]プログラムの暴走は典型的不具合
[問題]項書換え系における停止性証明技術
[貢献]包括的かつ強力な停止性証明法の提案,効率的実装


 プログラムが暴走するというのは,もっとも典型的な不具合のひとつである.

 そこで,任意の入力に対して暴走せず出力を返すこと,すなわちプログラムの「停止性」を保障することが重要である.特に,関数型プログラムのモデルとされる「項書換え系」において,停止性を保障する研究が進んでいる.これまでに多くの停止性自動証明ツールが開発され,毎年国際競技会が開催されているほどである.近年では,C, Java, Haskell,Prologなど,実用的なプログラミング言語を項書換え系に変換して停止性証明を行う研究がなされ,実用規模のプログラムの検証に耐えるスケーラブルな停止性証明ツールが以前にも増して求められるようになっている.

 そこで本研究は,項書換え系の強力な停止性証明法の提案とその効率的な実装に取り組んだ.

 項書換え系の停止性証明の基本は,書換えが起こるたびに減少する「順序」を発見することである.1970年初頭から現在に至るまで,このような順序が数多く提案されてきた.これらはそれぞれ異なる論理によって正当性が示され,それぞれ異なる実装を必要としていた.本研究では,既存手法に共通する本質を抜き出し,新たな停止性証明法である「重み付き経路順序」を提案した.

 提案手法は,多くの既存手法を実装可能な形で包含し,また真に強力になっていることを理論・実験両面から示した.これにより,登場以来およそ40年間統合されることのなかった,Knuth-Bendix順序,多項式順序,辞書式経路順序などの著名な既存手法を統合することに成功した.

 また近年の停止性証明ツールは上記基本手法を適用する際,引数の「切り落とし」および「並び替え」を行っている.本研究ではこれらを融合し,従来手法では切り落とされていた引数の情報(重み)を用いることで停止性証明能力が有意に向上することを示した.

 提案手法の実装法として,算術論理上の充足可能性(SMT)ソルバを効率的に用いた手法を提案し,停止性証明ツール Nagoya Termination Tool(NaTT)として実装した.停止性証明ツールの世界競技会 Termination Competition 2014 に参加し,NaTTは項書換え系(standard)カテゴリにて出場5ツール中2位の証明能力を示し,効率面においては他のツールの約5倍の効率化を実現した.またNaTTはこれまで停止性が判明していなかったベンチマーク159問のうち,36問の停止性(及び1問の非停止性)を明らかにした.

 
 
 
(2015年6月9日受付)
取得年月日:2014年9月
学位種別:博士(情報科学)
大学:名古屋大学



推薦文
:(プログラミング研究会)


本論文では項書換え系の停止性証明に有用な重み付き経路順序を提案している.提案順序は広く使われている経路順序を包含する抽象的順序であり,その順序を利用した停止性証明器は停止性証明の競技会でも優秀な成績を収めた.提案順序は定理自動証明やプログラム検証の技術の発展にも貢献するものである.


著者からの一言


歴史あるテーマのため既存研究の調査は容易ではありませんでしたが,その中で包括的な結果を出すことができたこと,何度もその著作を読んだ著名な研究者の方々からポジティブなコメントをいただいたことは自信につながりました.今後はこの結果を,定理自動証明や計算量解析へ応用することに取り組んでまいります.