経路誘導は建設的ですか?


17

HoTTの本を読んでいますが経路誘導に苦労しています。

私はセクションタイプを見たとき1.12.1: それが何を意味するのかを理解するのに問題はありません(それを確認するために、メモリから型を書きました)。

ind=A:C:x,y:A(x=Ay)U((x:AC(x,x,reflx))x,y:Ap:x=AyC(x,y,p)),

私が問題にしているのは次のステートメントです: 私の第一印象は、この最後の式はないということであった定義得られた関数 ちょうどそのを述べプロパティ
F Πは、xはY A ΠのP X = A Y C X Y P

with the equalityind=A(C,c,x,x,reflx):≡c(x)
f:x,y:Ap:x=AyC(x,y,p),

すなわち、誘導原理の以前の実施例とは対照的である、または -がされている方程式の定義これらの要素のために-私たちは、実際に施設が与えられた機能を構築する方法を知っています。これは、この章全体で宣伝されている型理論の「建設性」と一致しています。 ind A + B ind NindA×BindA+BindN

に戻ると、それが定義されていない(と思われる)ことを疑っていました。要素がちょうど存在するということは、この章の残りの部分とは調和していないように思われました。そして実際、セクション1.12.1は、私の印象は間違っていると、ストレスに思えるし、実際に我々は定義されました find=Af

... 関数 によって定義される から経路誘導、さらに 満たす ...C Πは、xはA C X X REFL XF X X REFL Xc x f:x,y:Ap:x=AyC(x,y,p),
c:x:AC(x,x,reflx)
f(x,x,reflx):≡c(x)

それは私を完全に混乱させますが、この点は今後のすべての開発にとって非常に重要であると感じています。それでは、の2つの読み取り値のどちらを使用する必要がありますか?または、おそらく、私はいくつかの重要な微妙さが欠けていて、答えは「どちらでもない」ですか? ind=A


ところで、これは実際にはHoTT固有の質問ではなく、より一般的な「依存型」の質問です。
コディ14

回答:


12

計算ルールは、彼らが話すオブジェクトを「定義」または「構築」するという幻想です。の方程式はそれを「定義」しないことを正しく観察しましたが、他の場合にも同じことが当てはまることを観察しませんでした。ユニットタイプの誘導原理を考えてみましょう。これは特に明らかに「決定」されているようです。HoTT本のセクション1.5によれば、 with方程式 これは「定義」または「構築」しますか 、それが何にとして疑いを残しているという意味で "ん"?たとえば、設定 1 i n d 1C 1 T y p e Cx 1 Px i n d 1Cc=ci n d 1 i n d 1 Cx= Nind=A1

ind1:C:1TypeC()x:1P(x)
ind1(C,c,)=c.
ind1ind1C(x)=Nおよび、タイプ 与えられた式についてについて言えることを考えて ください。最初に考えたのは、「が唯一の要素であるため、これを減らすことができるということです。しかし、正確に言うと、の方程式は、たとえばが変数の場合に不可能なを示す場合にのみ適用できます。これを小刻みに動かして、閉じた項での計算にのみ興味があると言うことができるので、を閉じる必要があります。I N D 1C 42 E E 1 42 1 iがN 、D 1、E E Ea=42
ind1(C,42,e)
e1421ind1eee

タイプすべての閉項がと判断的に等しいということではありませんか?それは実際には、厄介な詳細と正規化の複雑な証拠に依存します。のでHOTTの場合、答えは「ノー」である Univalence公理のインスタンスを含むことができ、そして(これはその程度に何をクリアしていないHOTTで開い問題)。1 電子e1e

私たちは、型理論のバージョン考慮してunivalanceとのトラブルを回避することができないタイプのすべての閉じ用語ように良好な特性を持っているにjudgmentally等しい。その場合、を使用して計算する方法を知っていると言っても過言ではありませんが、I N D 11ind1

  1. 同一タイプの同じ意志ホールド、同一タイプのすべての閉じた用語はjudgmentally一部に等しくなるので、などその後の方程式伝えます計算方法を教えてください。i n d = Arefl(a)ind=A

  2. 型の閉じた項で計算する方法を知っているからといって、一度説明したように、型には閉じた項よりも多くのものがあるため、実際に何かを定義したわけではありません。

たとえば、Martin-Löf型理論(アイデンティティ型なし)は、がと 2つの要素を含むように、ドメイン理論的に解釈できます。ここで、は、に対応します。悲しいかな、型理論には終了しない表現を書き留める方法がないため、は名前をことができません。したがって、の方程式は、計算方法を教えてくれませ(2つの明らかな選択肢は "熱心"と "怠laz"です)。I N D 11ind1

ソフトウェアエンジニアリングの用語では、仕様実装の間で混乱が生じていると思います。アイデンティティタイプのHoTT公理は仕様です。方程式は、計算方法や構成方法を教えてくれませんですが、むしろが「実装」されている場合、方程式を満たす必要があります。そのようなが建設的な方法で取得できるかどうかは別の質問です。ind=C(C,c,x,x,refl(x))c(x)ind=Cind=Cind=C

最後に、「構成的」という言葉の使い方に少しうんざりしています。「構成的」は「定義済み」と同じだと思うように見えます。その解釈の下では、Halting oracleは建設的です。これは、その動作が私たちが課す要件によって定義されるためです(つまり、特定のマシンが停止するかどうかに応じて1または0を出力する)。非構造的な設定にのみ存在するオブジェクトを記述することは、完全に可能です。逆に、実際に計算できないプロパティやその他のことについて建設的に話すことは完全に可能です。関係はによって定義されます HN×{0,1}H χ HN × { 0 1 } P R O P B O O L

H(n,d)(d=1n-th machine halts)(d=0n-th machine diverges)
つまり、建設的な観点からこの定義に問題はありません。が完全な関係であることを建設的に示すことができず、その特性マップ はしないなので、その値を「計算」できません。HχH:N×{0,1}Propbool

補遺:質問のタイトルは「経路誘導は建設的ですか?」です。「構成的」と「定義済み」の違いを解消した後、質問に答えることができます。はい、パス誘導は特定の場合に建設的であることが知られています:

  1. 強い正規化を示すことができるように、ユニバレンスのない型理論に制限する場合、正規化手順を実行するアルゴリズムがあるため、パス帰納法およびその他すべてが建設的です。

  2. 型理論の実現可能性モデルがあり、型理論のすべての閉項がチューリングマシンに対応する方法を説明します。ただし、これらのモデルはStreicherの公理Kを満たしているため、ユニバレンスは除外されます。

  3. 型理論(再びユニバレンスなし)の構成集合理論CZFへの翻訳があります。繰り返しますが、これはStreicherの公理Kを検証します。

  4. ストライチャーのK なしで型理論を解釈できるようにする実現可能性モデルの内部には、グループモデルがあります。これは、Steve Awodeyと私による予備作業です。

ユニバレンスの建設的な地位を整理する必要があります。


私は、この答えは現在(部分的に)古くなっていると信じています
WorldSEnder

確かに、平均時間でキュービカル型理論は肯定的な答えを与えました:ユニバレント型理論の建設的なモデルがあります。
Andrej Bauer

7

私はHoTTの人ではありませんが、2セントを投入します。

関数を作成したいとします どのように行うのでしょうか?さて、任意のとそれらの等価性の証明が与えられたと仮定します。任意の型については何も知らないので、「構造」については何も知りません。しかし、私は特定の等式タイプについて何かを知っています:それは単一のコンストラクタ、したがって、 forいくつかのですが、これは強制します。したがって、任意の要素がある場合

fA:x,y:Ap:x=AyC(x,y,p)
x,y:Ap:x=AyAx,y
refla:a=Aa, for any a:A
preflaa:Ax=a=yC(x,x,reflx)x:A; すなわち、関数がある場合(特定の)、関数は次のように定義できます:。
baseC:x:AC(x,x,reflx)
CfA
fA(x,y,p):=baseC(x,x,p)

下付き文字を取り除くと、一般的な帰納的定義になります。

お役に立てば幸いです!


PS。私はHoTTの男ではないので、「Axiom K」を想定しています。より正確には、タイプ要素は、のコンストラクターを繰り返し適用した結果でなければならないことを前提としています。私の知る限り、おそらく第2章以降のHoTTはこの概念を捨ててしまいます...それは私にはまったく意味がありません。eEE


1
おそらく、あなたはそれのいくつかの意味を作ることができ、あるいは少なくともチェックアウトして、現在の直感心配ますmath.andrej.com/2013/08/28/the-elements-of-an-inductive-typeを私は理由を説明しようとする場所型の閉じた用語だけが型にあると考えるのは有害です。
アンドレイバウアー14

2
ところで、Axiom Kを想定する必要はありません。答えを理解するためには、IDタイプのすべての閉じた用語が正規化されていることを知る必要があります。このような正規化プロパティは公理Kを証明せず、公理Kからも従わないため、これは公理Kとは関係ありません。refl
Andrej Bauer 14

3

私はアマチュアの HoTT男なので、モーセのすでに素晴らしい答えを補完しようとします。タイプを例としてみましょう。Martin-Löfが概説した建設型理論の基本原則は、すべての要素がコンストラクターのイメージにあると記述されていることです: この哲学は、私たちが定義することを可能にする除去を:関数構築するのは、上にその作用を説明するのに十分での画像A×BA×B

pair : ABA×B
f A×Bpair

しかしためコンストラクタである(そして特に単射である)、この手段は、正確に機能を構築することをは、の要素の組にそれの作用について説明するのに十分そして、ように 、このような記述するのに十分である。結論として、から関数を定義する標準的な方法があり、これは型にカプセル化できます が、これはまさにのタイプ。pairf:A×BCAB

f:ABC
fA×B
(ABC)(A×BC)
indA×B

しかし、これは話の半分にすぎません。この新しく構成されたが、指定された適用されるとどうなりますか?それでは、はその定義関数、つまり すなわち と一致するはずです これは定義的に(または計算的に)保持する必要があります。つまり、2つはすべての状況で完全に交換可能である必要があります(これは)HOTTに。f pair(a,b)ff

f(pair(a,b)) := f a b
indA×B f pair(a,b) := f a b
=

したがって、指定されたコンストラクターを使用した帰納的タイプのエリミネーターの定義は、2つのステップで行われます。

  1. 存在原理の種類について説明し、。ind

  2. 計算動作を定義する一貫性の原則。カテゴリー理論では、これはある意味でエリミネーターの一意性に対応します。ind


これはタイプでも同じだと主張させてください。私たちは、与えられた、構築したいおよびの要素(私たちは簡略化のための依存関係を忘れています)。これを行うために、我々は、必要があると仮定し、その型のコンストラクタを使用して構築した、のみとすることができる、いくつかのために。これは、関数を与えることを意味 それが機能与える十分で のために定義されている(再び、の依存関係を忘れます)。=Ax,y:Ap:x=yCpx=y refl(z)z

f:Πx,y:A,x=yC
f:Πz:A,C
refl(z)C

さて、一貫性の原則は何と言っていますか?単純に、既知のコンストラクターに適用する場合、はように動作する必要があります。つまり、 f f z z r e f lz = f zff

f z z refl(z):=f z

しかし、それはまさにあなたが持っているものです!エリミネーターの存在とコヒーレンスを与えた同じ原理は、エリミネーターの存在とコヒーレンスを与えます。= AA×B=A

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.