「従属連産品タイプ」を持つことはできますか?


14

私はHoTT本を読んでいますが、第1章の内容について(おそらく非常に素朴な)質問があります。

この章では、関数型 を紹介し、を依存させることで一般化します。 そして、それは従属関数型と呼ばれます。B x A B A U

f:AB
Bx:A
B:AU,g:x:AB(x)

次に、この章では製品タイプ を紹介し、を依存させることで一般化します およびそれは依存ペアタイプと呼ばれます。B x A B A U

f:A×B
Bx:A
B:AU,g:x:AB(x)

ここでパターンを間違いなく見ることができます。

次に、この章 では連産品タイプ および... combobreakerを紹介します...このタイプの依存バージョンの説明はありません。

f:A+B

それに基本的な制限はありますか、それとも本のトピックとは無関係ですか?いずれにせよ、機能と製品の種類の理由を直観的に誰かが助けてくれますか?これら2つを特別なものにして、依存型に一般化し、他のすべてを構築するために使用するのはなぜですか?

回答:


18

従属和は、デカルト積余積の両方の一般的な一般化です。HoTTの本では、ブール型を最初に定義する必要がないため、一般化従属和を導入しています。A + B A × BA×B A+BA×B

剰余は、従属和の特殊なケースです。型および与えられた場合、および定義されるという型族考えてください。従属和はと同等です。ちなみに、を依存積として取得することもできます。B P B O O LU P F L S E= A P T R U E= B ΣをB B O O L P B A + B A × B ΠのB B o o l P b ABP:boolUP(false)=AP(true)=Bb:boolP(b)A+BA×Bb:boolP(b)

製品と機能タイプの特別な点を尋ねます。とが「必要」な理由はたくさんあります。論理的には、これらはおよび型としての命題対応に対応するため必要です(ただし、それは質問を "なぜおよび必要なのか?"にシフトするだけです)。カテゴリ理論の観点では、とは置換の左右の随伴であるため必要です。詳細を知りたい場合は、より秘密の質問をしてください。Π Σ Π


こんにちは。「とが置換に左右に随伴している」ことをどのように示すことができますか?どのカテゴリが使用されますか?
ChoMedit

置換は対角ファンクターのようなもので、はそのインデックスカテゴリとして機能すると思います。そして、おそらく推定されるカテゴリはタイプのカテゴリです。A
ChoMedit

1

これについては、ソフトウェアエンジニアリングについて詳しく説明します。

後者のコンストラクターが前のものを参照できる連産型について話しているのですか(後者のフィールドが前のものを参照できる製品と非常によく似ています)?これは、HITが導入された後(バージョン2.6.0で)Agdaで可能です。

-- Auxiliary definition: Nat
data Nat : Set where
  zero : Nat
  succ : Nat -> Nat

-- The HIT I was talking about
data Int : Set where
  positive : Nat -> Int
  negative : Nat -> Int
  -- Note this constructor uses `positive` and `negative`.
  zeroPath : positive zero ≡ negative zero

このペーパーに従うと、図「(26)」に示されている構文を使用して定義された定義をタイプチェッカーがチェックする場合、「従属連産品」をサポートするのは非常に簡単だと思います。

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