コインダクションとは何ですか?


68

(構造)誘導について聞いたことがあります。小さい構造から有限構造を構築することができ、そのような構造について推論するための証明原則を提供します。アイデアは十分に明確です。

しかし、コインダクションはどうですか?どのように機能しますか?無限の構造について決定的なことをどのように言えますか?

対処する(少なくとも)2つの角度があります。すなわち、物事を定義する方法として、また証明技術としての共誘導です。

コインダクションを証明技術として考えると、コインダクションとバイシミュレーションの関係は何ですか?


4
私は実際にこれに対する答えを知りたいです:)
Suresh

1
チュートリアルペーパーについては、cs.cornell.edu /〜kozen / papers / Structural.pdfも参照してください。
mrp

回答:


60

まず、起こりうる認知的不協和を払拭するために、無限の構造についての推論は問題ではありません。私たちは常にそれを行います。構造が有限に記述可能である限り、それは問題ではありません。一般的な無限構造のいくつかのタイプを次に示します。

  • 言語(有限である可能性のあるいくつかのアルファベット上の文字列のセット);
  • ツリー言語(いくつかのアルファベット上のツリーのセット);
  • 非決定的システムの実行トレース。
  • 実数;
  • 整数のセット。
  • 整数から整数への関数のセット。…

最大の固定点としての共導性

帰納的定義は、基本的な構成要素から構造を構築しますが、共帰納的定義は、どのように解体できるかから構造を形成します。たとえば、要素がセット内にあるリストのタイプはA、Coqで次のように定義されます。

Inductive list (A:Set) : Set :=
  | nil : list A
  | cons : A -> list A -> list A.

非公式には、このlist型は、niland consコンストラクターから構築されるすべての値を含む最小の型であり、公理はです。逆に、これらのコンストラクターから構築されたすべての値を含む最大型を定義して、差別の公理を保持することができます。xy,nilconsxy

CoInductive colist (A:Set) : Set :=
  | conil : colist A
  | cocons : A -> colist A -> colist A.

listはのサブセットに同型ですcolist。さらに、colist無限リストが含まれます:coconsonのリストcocons

CoFixpoint flipflop : colist ℕ := cocons 1 (cocons 2 flipflop).
CoFixpoint from (n:ℕ) : colist ℕ := cocons n (from (1 + n)).

flipflopは無限(循環リスト)です。自然数の無限リストです。1::2::1::2::from 00::1::2::

結果がより小さなブロックから構築される場合、再帰的な定義は整形式です。再帰的な呼び出しは、より小さな入力で機能する必要があります。結果がより大きなオブジェクトを構築する場合、corecursive定義は整形式です。Inductionはコンストラクターを、Coinductionはデストラクタを調べます。双対性がより小さくからより大きく変化するだけでなく、入力から出力に変化することに注意してください。たとえば、上記の定義flipflopfrom定義が整形式である理由はcocons、どちらの場合でも、corecursive呼び出しがコンストラクターの呼び出しによって保護されているためです。

帰納的オブジェクトに関するステートメントに帰納的証明がある場合、共帰納的オブジェクトに関するステートメントには共帰納的証明があります。たとえば、コリストに無限の述語を定義しましょう。直感的に、無限コリストはで終わらないものですconil

CoInductive Infinite A : colist A -> Prop :=
  | Inf : forall x l, Infinite l -> Infinite (cocons x l).

フォームの共リストfrom nが無限であることを証明するために、共誘導によって推論することができます。from nに等しいcocons n (from (1 + n))。これは、from nがより大きいことを示しています。これはfrom (1 + n)、共帰仮説によって無限であり、したがってfrom n無限です。

双類似性、共誘導特性

証明手法としての同時帰納は、仮想オブジェクトにも適用されます。直感的に言えば、オブジェクトに関する帰納的証明は、オブジェクトの構築方法に基づいています。共帰納的証明は、オブジェクトの分解方法に基づいています。

決定論的なシステムを研究するとき、帰納的ルールを介して等価性を定義するのが一般的です:一連の変換によって一方から他方に到達できる場合、2つのシステムは等価です。そのような定義は、異なる内部構造を持っているにもかかわらず、非決定的システムが同じ(観測可能な)動作を得ることができる多くの異なる方法を捕捉できない傾向があります。(同時誘導は、非決定的なシステムであっても、それらが決定論的であっても説明するのに役立ちますが、これはここで焦点を当てるものではありません。)

並行システムなどの非決定的システムは、多くの場合、ラベル付き遷移システムによってモデル化されます。LTSは、エッジにラベルが付けられた有向グラフです。各エッジは、システムの可能な遷移を表します。LTSのトレースは、グラフ内のパス上のエッジラベルのシーケンスです。

2つのLTSは、内部構造が異なっていても同じトレースを使用できるという点で、同じように動作できます。グラフ同型は強すぎてそれらの等価性を定義できません。代わりに、2番目のLTSのすべての遷移が最初のLTSの対応する遷移を許可する場合、LTSは別のLTSをシミュレートすると言われます。正式には、 2つのLTSの状態の互いに素な結合、(共通)ラベルのセット、遷移関係とします。関係は、次の場合のシミュレーションです。 ABSLRS×S

(p,q)R, if pαp then q,qαq and (p,q)R

Aをシミュレートのすべての状態たシミュレーションがある場合での状態に関連している。が両方向のシミュレーションである場合、バイシミュレーションと呼ばれます。シミュレーションは共誘導特性です。一方の観測値は、他方の観測値と一致する必要があります。BBAR

LTSには潜在的に多くのバイシミュレーションがあります。異なるバイシミュレーションにより、異なる状態が識別される場合があります。2つのバイシミュレーションおよび与えられた場合、関係グラフの結合をとることによって与えられる関係は、それ自体がバイシミュレーションです。(これは無限の結合にも当てはまります。空のリレーションは、同一性リレーションと同様に、意味のないバイシミュレーションです。)特に、すべてのバイシミュレーションの結合自体は、バイシミラーリティと呼ばれるバイシミュレーションです。相似性は、異なる状態を区別しないシステムを観察する最も粗い方法です。R1R2R1R2

双類似性は共帰納的性質です。これは、演算子の最大の固定点として定義できます。これは、同等の状態を識別するために拡張しても、同じままである最大の関係です。

参照資料

  • Coqと帰納的構築の計算

    • イヴ・ベルトーとピエール・カステラン。インタラクティブな定理証明とプログラム開発— Coq'Art:帰納的構成の計算。スプリンガー、2004。13. [ ウェブサイト ] [ アマゾン ]
    • エドゥアルド・ギメネス。coqにおける共誘導型のアプリケーション:交互ビットプロトコルの検証。では証明とプログラムの種類に関するワークショップ、内数1158 コンピュータサイエンスの講義ノート、ページ135から152。Springer-Verlag、1995。[ Googleブックス ]
    • エドゥアルド・ギメネスとピエール・カステラン。Coqの[Co-]帰納的型に関するチュートリアル。2007. [ PDF ]
  • ラベル付き遷移システムとバイシミュレーション

    • ロビン・ミルナー。コミュニケーションと並行性。プレンティスホール、1989年。
    • ダビデ・サンジョルジ。バイシミュレーションと共誘導の起源について。プログラミング言語とシステムに関するACMトランザクション(TOPLAS)、31巻4号、2009年5月。[ PDF ] [ ACM ]関連するコーススライド:[ PDF ] [ CiteSeer ]
    • ダビデ・サンジョルジ。パイ微積分:モバイルプロセスの理論。ケンブリッジ大学出版局、2003。[ Amazon ]

    • この章では依存型と認定プログラミング A. Chlipalaによって

    • D.サンジョルジ。「バイシミュレーションとコインダクションの紹介」。2011. [ PDF ]
    • D.サンジョルジとJ.ラッテン。バイシミュレーションとコインダクションの高度なトピック。ケンブリッジ大学出版局、2012。[ CUP ]

21

次の帰納的定義を考えてみましょう。

εTwTawTawTbawT

とは何ですか?明らかに、2つの後続のがない文字列のセット、つまりTb

T={ε,a,aa,ba,aaa,aba,}=L((baa))Σ.

右?それに必要なのは、「はこれらの条件を満たす最小のセットです」という無害な文です。そうでなければ、も機能します。TT={a,b}

しかし、それだけではありません。上記の定義を(単調な)関数として記述:f:2Σ2Σ

f(T)=T{ε}{awwT}{bawawT}

現在、は最小の固定点です。実際、は単調で、は完全なラティスであるためKnaster-Tarskiの定理は、このような最小の固定点が存在し、適切な言語であることを示しています。これは合理的な帰納的定義で機能するため、通常、これについては説明しません。直感にぴったりです。から始めて、ルールを段階的に適用します。限界では、を取得します。Tff(2Σ,){ε}T

今、私たちは物事を好転させる。代わりに、「あれば言っての含まれており、そうである」私たちは「あれば言う含まれているので、されている必要があります」。アンカーの向きを変えることはできないので、消えます。それは問題で私たちを残します:私たちが取ることができるようにする必要があり、任意の長さに任意の単語から離れプレフィックスをとに残り!これは有限の単語では不可能です。上記のに忍び込んだのは良いことです!因子(部分文字列)ない無限の単語のセット、つまります。W W W T ' T ' ΣののB BのT ' = L B | A ω wawawwTTΣbbT=L((baa)ω)

に関して、は最大の固定点²です。これは実際には非常に直感的です:私たちはヒットすることを望むことはできませんから下記、すなわち誘導から開始することによりと追加ルールを満たしものを、私たちはから行く上で開始することによりcoinductivelyすなわち、と取り除くものないものではない規則に準拠しています。T ' T ' { ε } Σ fTT{ε}Σ


表記法:

  • Σ=ΣΣω
  • ΣΣωは、上のすべての無限シーケンスのセットです。Σ

¹wようなことは許可されていません。対応する関数は単調ではありません。 ² 敷物の下でをなんとか掃除する必要があります。 { ε }wTawT
{ε}


2
帰納的な説明が適切であることを願っています。
ラファエル

ある十分なすべてのケースで、またはそれはあなたが作業しているフレームワークから来るだけのアーチファクトのですか?型理論の強さとそれに組み込まれる序数の間のリンクを確立した論文(そしておそらくM. Escardoによるいくつかのagdaコード)を見たことを覚えていると思います。ω
gallais

@gallais:上記はこのトピックについて私が(信じている)すべてを知っているので、正直に知りません。は元々アーティファクトかもしれません。代わりに別のものを使用すると、異なる最大のフィックスポイントが得られます。Σ ωΣ
ラファエル

いい説明。しかし、私はこの文を理解していませんWe can not turn the anchor around, so it goes away
hengxin 14

@hengxinそれには2つのコンポーネントがあります。1)アンカーには意味がないので、ステートメントを「反転」することはできません。" " からは(共誘導型の場合)何も続きません。2)無限の文字列から文字を取り除くことにより、空の単語に到達することはないため、アンカーはそのまま存在することは -! ε T "εTεT
ラファエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.