Dlaczego konstruktywiści nie dbają zbytnio o call / cc

15

Jakiś czas temu po raz pierwszy ktoś mi powiedział, że call / cc może zezwalać na obiekty proof dla klasycznych proofów poprzez wdrożenie prawa Peirce'a. Ostatnio zastanawiałem się nad tym tematem i wydaje mi się, że nie mogę go znaleźć. Jednak naprawdę nie widzę, żeby ktokolwiek mówił o tym. Wydaje się być pozbawiony dyskusji. Co daje?

Wydaje mi się, że jeśli masz konstrukcję typu w pewnym kontekście, to jedna z dwóch rzeczy jest prawdą. Albo masz dostęp do instancji jakoś w bieżącym kontekście, w którym przepływ sterowania sprawa nigdy nie osiągnie tutaj i jesteśmy bezpiecznie założyć cokolwiek LUB zważywszy, że f : ¬ ( ¬ P ) środki f : ( P ) jedynym sposobem, w jaki f może zwrócić ⊥, jest zbudowanie instancji Pfa:¬(¬P.)fa:¬(¬P.)fa:(P.)faP.i zastosowanie go dwa to argument (instancja . W takim przypadku istniał już NIEKTÓRY sposób skonstruowania instancji P ; rozsądne wydaje się, aby call / cc wyciągnęło dla mnie tę konstrukcję. Moje rozumowanie tutaj wydaje mi się nieco podejrzane, ale moje zamieszanie nadal istnieje. Jeśli call / cc nie tworzy tylko instancji P z powietrza (nie wiem, jak to jest), to na czym polega problem?P.)P.P.

Czy niektóre dobrze wpisane terminy nie zawierające call / cc nie mają normalnych formularzy? Czy istnieje jakaś inna właściwość takich wyrażeń, która powoduje, że są podejrzani? Czy jest jakiś znany powód, dla którego konstruktywista nie powinien lubić call / cc?

Jake
źródło

Odpowiedzi:

19

Matematyka konstruktywna to nie tylko system formalny, ale raczej zrozumienie tego, na czym polega matematyka. Innymi słowy, nie każda semantyka jest akceptowana przez konstruktywnego matematyka.

Dla konstruktywnego matematyka call/ccwygląda jak oszustwo. Zastanów się, w jaki sposób jesteśmy świadkami używając :p¬pcall/cc

  1. Zapewniamy funkcję która rzekomo potwierdza ¬ p . W rzeczywistości f to worek sztuczek.fa¬pfa
  2. Jeśli ktokolwiek kiedykolwiek zastosuje do dowodu p , f zwolni się, aby cofnąć czas, i mając dowód p w ręce, zmieni zdanie na temat p ¬ p : tym razem twierdząc, że jest to dowód p .fapfacall/ccpp¬pp

Konstruktywne rozumienie rozłączności jest rozstrzygalnością algorytmiczną , ale powyższe prawie nie podejmuje żadnych decyzji. Jako test konstruktywny matematyk może zapytać cię, w jaki sposób call/ccpomaga udowodnić, że każda maszyna Turinga zatrzymuje się lub rozbiega. A jaki program świadczy o tym fakcie? (To powinna być Wyrocznia Zatrzymująca.)

Andrej Bauer
źródło
Ach !! Myślę, że tego właśnie szukałem.
Jake
9

Jak zauważasz, istnieje możliwa konstruktywna interpretacja klasycznej logiki w tym sensie. Fakt, że logika klasyczna jest spójna z logiką intuicyjną (powiedzmy, arytmetyką Heytinga) jest znany już od pewnego czasu (już w 1933 r., Np. Godel ), stosując tłumaczenie podwójnej negacji.

Bardziej wyrafinowanym argumentem można wykazać, że arytmetyka Peano jest konserwatywna w stosunku do HA dla instrukcji . Istotą wyniku jest to, że klasyczne dowody Π 0 2 obejmujące c a l l / c c mają taką samą treść obliczeniową jak instrukcja bez tego konstruktu (przez transformację CPS ).Π2)0Π2)0dozall/dodo

Jednak nie jest to prawdą w przypadku oświadczeń powyżej : oświadczenia w Σ 0 3 , możliwe do udowodnienia w PA, mogą nie mieć normalnej formy podatnej na wyciągnięcie świadka! Informatycy mogą nie przejmować się obliczeniami z dowodami na tym poziomie, ale jest to nieco niewygodne ze względów filozoficznych : czy udowodniliśmy istnienie czegoś, czy nie?Π2)0Σ3)0

Myślę, że to podsumowuje, dlaczego „naprawianie” niekonstruktywnej logiki przez dodanie może być niezadowalające.dozall/dodo

To powiedziawszy, wiele pracy poświęcono obliczeniowym aspektom obliczeń w ramach „klasycznego modelu Curry-Howarda”, np. Krivine Machine, rachunek Parigota ( ) i wielu innych. Zobacz tutaj na przegląd.λμ¯μ~

Na koniec warto zauważyć, że chociaż sytuacja jest raczej dobrze rozumiana w rachunku predykatu i przypadkach arytmetycznych, o tyle silniejsze teorie są znacznie mniej badane. Na przykład IIRC, ZFC jest konserwatywny w stosunku do IZF również dla zdań (ZFC jest konserwatywny w stosunku do ZF dla zdań arytmetycznych, a ZF jest konserwatywny w stosunku do IZF), co sugeruje, że istnieje obliczeniowe znaczenie aksjomatu wyboru. Jest to jednak bardzo aktywny obszar badań ( krivine , Berardi i in. )Π2)0

Edycja: Tutaj pojawia się bardzo istotne pytanie dotyczące przepływu matematyki: /mathpro/29577/solved-sequent-calculus-as-programming-language

cody
źródło
1
Czy ta równość jest prawdziwa konstruktywnie?
Geoffrey Irving,
3
@GeoffreyIrving: tak, można całkowicie „wbić” wiarę w klasykę spójność (jeśli nie samo rozumowanie klasyczne per se ) przy użyciu wyłącznie intuicyjnego rozumowania. To była pierwotna motywacja Gödela do tłumaczenia . ¬¬
cody
Co oznacza „może nie mieć normalnej formy podatnej na ekstrakcję świadka”. Czy to tylko semantycznie oznacza, że ​​te terminy mają dno dla semantyki, czy może oznacza coś dziwniejszego?
Jake
3
@Jake: terminy nadal mają normalne formy, ale prawdopodobnie nie takie, których można się spodziewać: np. Dowód ZA¬ZA jest inr (fun x -> callcc(...))mimo, że może być prawdziwy. ZA
cody
Rozumiem. Dzięki! Nadal przetwarzam części twojej odpowiedzi. Nie znam się na hierarchii arytmetycznej, więc przetworzenie zajęło mi trochę więcej.
Jake
8

Zgadzam się z odpowiedzią Andreja i Cody'ego. Myślę jednak, że warto również wspomnieć, dlaczego konstruktywiści powinni dbać o operatory kontroli (call / cc).

¬¬P.P.

Π2)0

Kolejną korzyścią, na którą powinien dbać konstruktywista, jest to, że operatorzy kontroli pokazują sposób, w jaki sposób zbudować rozszerzenie Curry-Howarda intuicyjnej logiki, które jest nadal konstruktywne. Na przykład ograniczenie z prawa eliminacji podwójnej negacji do ΣP.Σ10

Danko Ilik
źródło