“Bağımlı bir ürün türü” alabilir miyim?


14

HoTT kitabını okuyorum ve birinci bölümde yer alan şeyler hakkında (muhtemelen çok naif) bir sorum var.

Bu bölüm işlev türünü tanıtır ve daha sonra bağımlı hale getirerek genelleştirir. buna bağımlı işlev türü denir .

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

Devam ederseniz, bölüm daha sonra ürün türünü tanıtır ve daha sonra bağımlı hale getirerek genelleştirir ve buna bağımlı çift tipi denir .

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

Burada kesinlikle bir model görebiliyorum.

Devam ederken, bölüm daha sonra ve ... combobreaker ... ürün türünü tanıtıyor .

f:A+B

Bununla ilgili bazı temel kısıtlamalar var mıdır ya da sadece kitabın konusu ile alakasız mı? Her halükarda birisi neden işlev ve ürün türleriyle ilgili sezgisel olarak bana yardımcı olabilir? Bu ikisini o kadar özel yapan şey, bağımlı türlere genelleştirilmeleri ve daha sonra diğer her şeyi oluşturmak için kullanılmalarıdır?

Yanıtlar:


18

Bağımlı toplam, hem kartezyen ürün hem de kopyantının ortak bir genellemesidir . Öyle olur ki, HoTT kitabı genelleştirerek bağımlı toplamı getirir , çünkü bu önce boolean tipinin tanımlanmasını gerektirmez.A×B A+BA×B

Coproduct, bağımlı bir meblağın özel bir halidir. ve türleri verildiğinde , ve tarafından tanımlanan . Bağımlı toplam eşdeğerdir . Bu arada, bağımlı bir ürün olarak da .ABP:boolUP(false)=AP(true)=Bb:boolP(b)A+BA×Bb:boolP(b)

Ürünler ve işlev türleri hakkında neyin özel olduğunu sorarsınız. ve "gerekli" olmasının birçok, birçok nedeni vardır. Mantık açısından bunlar zorunludur çünkü türler olarak yazışmalar tarafından ve karşılık gelirler (ancak bu soruyu yalnızca "neden ve gerekli?" Olarak değiştirir). Kategori teorisi açısından, ve gereklidir, çünkü bunlar ikame ile sol ve sağ bitişiktir. Daha fazla bilgi edinmek istiyorsanız daha güvenli bir soru sorun.


Merhaba. " ve , sübstitüasyonun solunda ve sağında nasıl olduğunu" nasıl gösterebileceğinizi sorabilir miyim ? Hangi kategoriler kullanılır?
ChoMedit

Yerine koymanın çapraz bir işlev gibi bir şey olduğunu ve indeks kategorisi olarak çalıştığını düşünüyorum. O zaman, belki varsayılan kategori tür kategorisidir. A
ChoMedit

1

Bundan daha fazla yazılım mühendisliği hakkında konuşacağım.

Kimin sonuncu bir birlikte-tipi bahsediyoruz kurucular önce olanları başvurabilir (ki, kimin sonuncu bir ürüne oldukça benzer görünüyor alanları öncesinde olanlar başvurabilir)? Bu, HIT piyasaya sürüldükten sonra Agda'da mümkündür (2.6.0 sürümünde):

-- 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

Bu makaleyi takip ederek , yazı denetleyiciniz şekil "(26)" da sözdizimini kullanarak tanımlanan tanımları kontrol ederse, "bağımlı kopyaları" desteklemenin oldukça basit olduğuna inanıyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.