System U
W logice matematycznej System U i System U − są systemami typu czystego , tj. specjalnymi formami typowanego rachunku lambda z dowolną liczbą sortowań , aksjomatów i reguł (lub zależności między sortowaniami). W 1972 r. Jean-Yves Girard udowodnił, że oba są niespójne. Wynik ten doprowadził do uświadomienia sobie, że oryginalna teoria typów Martina-Löfa z 1971 r. był niespójny, ponieważ pozwalał na takie samo zachowanie typu „wpisz w typie”, które wykorzystuje paradoks Girarda.
Definicja formalna
System U jest zdefiniowany jako system typu czystego z
- trzy rodzaje ;
- dwa aksjomaty ; I
- pięć reguł .
System U - jest zdefiniowany tak samo, z wyjątkiem reguły .
Rodzaje są umownie nazywane odpowiednio „Typem i „ Rodzajem sortowanie nie ma określonej Te dwa aksjomaty opisują zawieranie typów w rodzajach ( i rodzajach w ( ). Intuicyjnie, rodzaje opisują hierarchię w naturze terminów.
- Wszystkie wartości mają typ , taki typ podstawowy ( . jako „ jest wartością logiczną ”) lub (zależny) typ funkcji . jest odczytywane jako „ f jest funkcją od liczb naturalnych do logicznych”).
- jest rodzajem wszystkich takich typów ( jest odczytywane jako „ t jest typem”). ∗ możemy zbudować więcej terminów, takich jak który jest rodzajem jednoargumentowych operatorów na poziomie typu ( np. jest odczytywane jako „ Lista jest funkcją od typów do typów”, czyli typem polimorficznym). Zasady ograniczają sposób, w jaki możemy tworzyć nowe rodzaje.
- jest rodzajem wszystkich takich rodzajów ( jest odczytywane jako „ k jest rodzajem”). Podobnie możemy budować terminy pokrewne, zgodnie z tym, na co pozwalają reguły.
- to rodzaj wszystkich takich terminów.
Reguły rządzą zależnościami między sortowaniami: mówi, że wartości mogą zależeć od wartości ( funkcji ), zależność wartości od typów ( polimorfizm ) , od typów ( operatory typów ) i tak dalej
Paradoks Girarda
Definicje Systemu U i U − pozwalają na przypisanie rodzajów polimorficznych do ogólnych konstruktorów analogicznie do polimorficznych typów terminów w klasycznych polimorficznych rachunkach lambda, takich jak System F . Przykładem takiego ogólnego konstruktora może być (gdzie k oznacza rodzaj zmiennej)
- .
terminu o typie typu co każdy typ jest zamieszkany . Zgodnie z korespondencją Curry'ego – Howarda jest to równoważne z możliwością udowodnienia wszystkich twierdzeń logicznych, co czyni system niespójnym.
Paradoks Girarda jest teoriotypowym odpowiednikiem paradoksu Russella w teorii mnogości .
Dalsza lektura
- Barendregt, Henk (1992). „Rachunki lambda z typami” . W S. Abramskim; D. Gabbay; T. Maibaum (red.). Podręcznik logiki w informatyce . Publikacje naukowe z Oksfordu . s. 117–309.
- Coquand, Thierry (1986). „Analiza paradoksu Girarda”. Logika w informatyce . IEEE Computer Society Press. s. 227–236.