Skip to main content
QUICK REVIEW

[論文レビュー] Complexity of Fractran and Productivity

Jörg Endrullis, Clemens Grabmayer|ArXiv.org|Mar 25, 2009
Catalysis and Oxidation ReactionsChemical Engineering被引用数 19
ひとこと要約

本稿は、関数型プログラミングにおける生産性の計算複雑性を、Fractranプログラムをストリーム仕様に符号化することで確立する。外側最適公平評価における生産性がΠ⁰₂完全であることを証明する。さらに、一般化された生産性の概念である強生産性と弱生産性が、それぞれΠ¹₁完全およびΣ¹₁完全であることが示され、生産性が終了性よりも表現力において厳密に難しいことが示された。

ABSTRACT

In functional programming languages the use of infinite structures is common practice. For total correctness of programs dealing with infinite structures one must guarantee that every finite part of the result can be evaluated in finitely many steps. This is known as productivity. For programming with infinite structures, productivity is what termination in well-defined results is for programming with finite structures. Fractran is a simple Turing-complete programming language invented by Conway. We prove that the question whether a Fractran program halts on all positive integers is Pi^0_2-complete. In functional programming, productivity typically is a property of individual terms with respect to the inbuilt evaluation strategy. By encoding Fractran programs as specifications of infinite lists, we establish that this notion of productivity is Pi^0_2-complete even for the most simple specifications. Therefore it is harder than termination of individual terms. In addition, we explore possible generalisations of the notion of productivity in the framework of term rewriting, and prove that their computational complexity is Pi^1_1-complete, thus exceeding the expressive power of first-order logic.

研究の動機と目的

  • 関数型プログラミングにおける生産性の計算複雑性を特定すること、特に無限データ構造に関して。
  • 両者ともプログラムの正しさに不可欠であるにもかかわらず、生産性が終了性よりも決定が難しいかどうかを調査すること。
  • 標準の評価戦略を超えた生産性の一般化を検討し、その論理的複雑性を分析すること。
  • 生産性の複雑性の上限を確立するために、Fractranプログラムをストリーム仕様に簡単かつ新しい符号化を提供すること。

提案手法

  • ラムダストリーム形式(LSF)を用いて、Fractranプログラムをストリーム仕様に符号化する。基本的なストリームコンストラクタおよびhead, tail, modなどの関数のみを用いる。
  • 各Fractran分数がモジュラ演算とストリームインデックスに基づく条件付き書き換え規則として対応する項書き換え系(TRS)を定義する。
  • 整数からストリームの位置への写像をモジュラ算術を用いて定義し、Fractranの乗算と選択プロセスをエミュレートする。
  • Fractranプログラムがすべての入力で停止する、かつ、そのストリーム仕様が外側最適公平評価において生産的である、という同値性を証明する。
  • uniform halting問題を生産性問題に還元することで、Π⁰₂-hardnessを示す。
  • 強生産性および弱生産性への分析を拡張し、それぞれ解析的階層におけるΠ¹₁およびΣ¹₁の複雑性に達することを示す。

実験結果

リサーチクエスチョン

  • RQ1関数型プログラミングにおける生産性は決定可能か? その正確な計算複雑性は何か?
  • RQ2項書き換え系における生産性の複雑性は、終了性の複雑性と比べてどう異なるか?
  • RQ3Fractranを、生産性の複雑性の下界を確立する最小の符号化として用いることができるか?
  • RQ4強生産性や弱生産性といった一般化された生産性概念の複雑性は何か?
  • RQ5Fractranから導かれるような単純なストリーム仕様の生産性は、決定不能または解析的複雑性を示すことができるか?

主な発見

  • すべての正の整数に対して停止するFractranプログラムの問題はΠ⁰₂完全である。
  • 外側最適公平評価における生産性も、非常に単純なストリーム仕様に対してもΠ⁰₂完全である。
  • すべての外側最適公平列がコンストラクタ正規形に到達することを要求する強生産性はΠ¹₁完全である。
  • 少なくとも1つのそのような列が存在することを要求する弱生産性はΣ¹₁完全である。
  • Fractranをストリーム仕様に符号化することで、停止性と生産性の性質が保持され、複雑性の転送が可能になる。
  • 結果として、生産性は終了性よりも厳密に複雑であることが示された。これは、算術的階層においてより高い位置にあるためである。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。