Nie, w tym przypadku predykcyjność i monotoniczność nie są ściśle powiązane.
Kontrola pozytywności w Coq / Adga ma na celu upewnienie się, że z grubsza zajmujesz najmniej ustalony punkt monotonnej rzeczy.
Oto, jak myśleć o typach indukcyjnych w kategoriach operatorów kratowych i monotonicznych. Przypomnijmy, że twierdzenie Knastera-Tarskiego mówi, że na pełnej sieci każdy operator monotoniczny f : L → L ma najmniej ustalony punkt μ ( f ) . Następnie możemy myśleć o typach w teorii typów jako o formowaniu sieci pod dowartościowalnością. Oznacza to, że typ S jest poniżej T jeśli prawda S oznacza, że z T . Teraz chcielibyśmy wziąć monotoniczny operator F na typach i użyć Knaster-Tarski, aby uzyskać interpretację najmniej ustalonego punktu tego operatoraLf:L→Lμ(f)STSTF . μ(F)
Jednak typy w teorii typów nie są tylko siatką: tworzą kategorię. Oznacza to, że biorąc pod uwagę dwa typy i T , istnieje potencjalnie wiele sposobów S jest poniżej T , z jednym sposób dla każdej próbnym e : S → T . Tak więc operator typu F musi również zrobić coś sensownego na tych dowodach. Właściwym uogólnieniem monotoniczności jest funkcjonalność . Oznacza to, że chcemy, aby F miał operator na typach, a także działał na dowody, tak że jeśli e : S → T , to F (STSTe:S→TFFe:S→T .fa( e ) : F( S) → F( T)
Funkcjonalność jest teraz zachowywana przez sumy i iloczyny (tj. Jeśli i G są endofunkorami na typach, to F + G i F × G (działając punktowo) są również funktorami na typach (zakładając, że mamy sumy i iloczyny w naszej algebrze jednak nie jest zachowywany przez przestrzeń funkcji, ponieważ wykładnik dwufunkcyjny F → G jest sprzeczny w swoim lewym argumencie. Więc kiedy piszesz definicję typu indukcyjnego, definiujesz funktor, który ma przyjąć co najmniej ustalony punkt. Aby upewnić się, że rzeczywiście jest to funktor, należy wykluczyć występowanie parametru rekurencyjnego po lewej stronie przestrzeni funkcji - stąd kontrola pozytywności.fasolfa+ Gfa× Gfa→ G.
Generalnie unika się impredykatywności (w sensie Systemu F), ponieważ jest to zasada, która zmusza do wyboru między klasyczną logiką a modelami teoretycznymi. Nie możesz interpretować typów jako zbiorów w klasycznej teorii zbiorów, jeśli masz indeksowanie w stylu F. (Zobacz słynny „Polimorfizm nie jest teoretyczny” Reynoldsa.)
Kategorycznie, impredykatywność w stylu F mówi, że kategoria typów i terminów tworzy małą kompletną kategorię (to znaczy, homs i obiekty są zarówno zestawami, jak i istnieją granice wszystkich małych diagramów). Klasycznie wymusza to kategorię poety. Wielu konstruktywistów jest konstruktywnych, ponieważ chcą, aby ich twierdzenia opierały się na większej liczbie systemów niż tylko na logice klasycznej, a zatem nie chcą udowodnić niczego, co byłoby klasycznie fałszywe. Dlatego są nieufni wobec impredykatywnego polimorfizmu.
Jednak polimorfizm pozwala powiedzieć wiele warunków, które są klasycznie „duże” wewnętrznie w stosunku do teorii typów - a pozytywność jest jednym z nich! Operator typu jest funkcyjny, jeśli można wytworzyć termin polimorficzny:fa
F m a p :∀α,β.( α → β) → ( F( α ) → F.( β) )
Widzisz, jak to odpowiada funkcjonalności? IMO, to byłaby bardzo fajna opcja w Coq, ponieważ pozwoliłaby ci na łatwiejsze programowanie ogólne. Syntaktyczna natura kontroli pozytywności stanowi dużą przeszkodę dla programowania ogólnego i chętnie wymieniłbym możliwość klasycznych aksjomatów na bardziej elastyczne programy funkcjonalne.
EDYCJA: Pytanie, które zadajesz na temat różnicy między Prop i Set, wynika z faktu, że programiści Coq chcą pozwolić ci myśleć o twierdzeniach Coq w naiwnych terminach teoretycznych, jeśli chcesz, bez zmuszania cię do tego. Technicznie dzielą Prop i Set, a następnie zabraniają zestawom zależeć od obliczeniowej zawartości Prop.
Możesz więc interpretować Prop jako wartości prawdy w ZFC, które są booleanami prawdą i fałszem. Na tym świecie wszystkie dowody twierdzeń są równe, a więc oczywiście nie powinieneś być w stanie rozgałęzić się na dowodzie zdania. Zatem zakaz zestawów w zależności od obliczeniowej zawartości dowodów Prop jest całkowicie rozsądny. Co więcej, 2-elementowa sieć boolowska jest oczywiście kompletną siecią, więc powinna wspierać indeksowanie impredykatywne, ponieważ istnieją arbitralne wartości ustalone. Ograniczenie predyktywności dla zbiorów wynika z faktu (wspomnianego powyżej), że indeksowanie w stylu F jest zdegenerowane w klasycznych modelach teorii zbiorów.
Coq ma inne modele (to logika konstruktywna!), Ale chodzi o to, że z półki nigdy nie udowodni niczego, czym mógłby się zastanawiać klasyczny matematyk.
Inductive Blah : Prop := Foo : (Blah -> Blah) -> Blah
samego, co innego?Inductive prop : Prop := prop_intro : Prop -> prop.
vs.Inductive set : Set := set_intro: Set -> set.
. Skąd ta różnica, jeśli predykcyjność nie dotyczy definicji indukcyjnej?Type@{i}
, musi żyć przynajmniej w większym wszechświecieType@{i+1}
.Istnieje bardzo głęboki związek między definicjami indukcyjnymi a impredykatywnością, ale rozumiem, że w kontekście tego, o czym mówisz, (nie) predykatywność nie jest szczególnie istotna, a test ma na celu wyłącznie zagwarantowanie monotoniczności, aby teoria punktów stałych mogła być stosowane, a mianowicie, że zasada indukcji jest dobrze zdefiniowana. (Jestem gotów zostać poprawionym w tym punkcie).
Zależność pomiędzy definicjami impredicativity i indukcyjnych jest badane w tej rozmowie przez Coquand. Wraca do niektórych wyników z lat 50. autorstwa G. Takeuti, że definicje impredykatywne można sprowadzić do definicji indukcyjnych. Książka
daje dobrą analizę tego tematu, jeśli możesz go zdobyć. Te slajdy zawierają przegląd.
źródło
Aby uzupełnić doskonałe wyjaśnienie Neila, impredykatywność ma „miękkie” poczucie: definiowanie zbiorów lub kolekcji za pomocą odniesienia do nich samych. W tym sensie:
jest definicją impredykatywną, ponieważ definiuje typ indukcyjny, Lam za pomocą przestrzeni funkcji (Lam -> Lam), która odnosi się do samej kolekcji. W tej sytuacji impredykatywność jest szkodliwa : można użyć twierdzenia Cantora, aby udowodnić Fałsz. W rzeczywistości jest to ta sama marka impredykatywności, która dyskontuje naiwną Teorię Setów jako spójny fundament matematyki. Dlatego jest zabronione w Coq. Jak wiesz, dozwolona jest inna forma impredykatywności :
Definicja Unit jako propozycji odnosi się do zbioru wszystkich propozycji, których jest członkiem. Jednak z nieco niejasnych dla mnie powodów ta impredykatywność nie jest szkodliwa, ponieważ występuje w ZFC (w formie nieograniczonego zrozumienia ), o którym nie wiadomo, że jest niekonsekwentna.
Podsumowując, negatywne występowanie typów indukcyjnych w definicjach jest formą impredykatywności, ale nie taką, o której zwykle mówi się w przypadku CoC jako ramy impredykatywnej .
źródło
-impredicative-set
w swojej książce: adam.chlipala.net/cpdt/html/Universes.html i wspomina o pewnych ograniczeniach dotyczących eliminacji, ale dla mnie również jest to niejasne.