2017-03-06 13 views
5

W wikipedia, bottom type jest po prostu zdefiniowany jako "typ, który nie ma wartości". Jeśli jednak ten typ pusty jest b, produkt typu (b,b) również nie ma wartości, ale wydaje się inny niż b. Zgadzam się, że dno jest niezamieszkałe, ale nie sądzę, że ta właściwość wystarczy, by to zdefiniować.Jaki jest typ dolny?

W przypadku Curry-Howard correspondence spód jest powiązany z fałszem matematycznym. Teraz istnieje logiczna zasada stwierdzająca, że ​​od Fałszy wynika każda propozycja. Według Curry-Howarda, oznacza to, że typ forall a. bottom -> a jest zamieszkany, tj. Istnieje rodzina funkcji f :: forall a. bottom -> a.

Jakie są te funkcje f? Czy pomagają zdefiniować dno, może jako nieskończony produkt wszystkich typów forall a. a?

Odpowiedz

2

w matematyce

Dno jest typ, który nie ma żadnej wartości. Oznacza to, że każdy pusty typ może odgrywać rolę dolną.

Te funkcje f :: forall a . Bottom -> a są puste. "puste" w ustawionej teoretycznej definicji funkcji.

w programowaniu

Poświęcając konkretny typ pusty mieć go jako dołu przez bibliotekę bazowego języka programowania jest dla wygody. Czytelność i kompatybilność kodu przynosi korzyści wszystkim, którzy używają tego samego pustego typu co dno.

W Haskell

Pozwól nam odnosić się do nich z bardziej przyjaznych nazw "Dół" -> "pustkę", "f" -> "absurdalne".

{-# LANGUAGE EmptyDataDecls #-} 
data Void 

Ta definicja nie zawiera żadnych konstruktorów => nie można utworzyć instancji => jest pusta.

absurd :: Bottom -> a 
absurd = \ case {} 

W wyrażeniu przypadku nie musimy zajmować się żadnymi przypadkami, ponieważ ich nie ma.

Są już defined in package base

+0

widzę 3 rodzaje wzorów w rachunku zdań. 1) Tautologie, które są prawdziwe w każdej interpretacji w algebrze Heyting. 2) Formuły, których negacje są tautologiami, są fałszywe w każdej interpretacji Heytinga. 3) Formuły, których wartości zależą od interpretacji. W przypadku Curry-Howarda przypadki 2 i 3 odpowiadają pustym typom. Sądzę jednak, że przypadek 2 powinien być wyróżniony wśród typów pustych: tylko te typy zasługują na miano dna. –