Myślałem o dowodach i natknąłem się na ciekawą obserwację. Tak więc dowody są równoważne programom za pomocą izomorfizmu Curry'ego-Howarda, a dowody kołowe odpowiadają nieskończonej rekurencji. Wiemy jednak z problemu zatrzymania, że ogólne testowanie, czy dowolny program powróci na zawsze, jest nierozstrzygalne. Czy Curry-Howard oznacza, że nie ma „kontrolera dowodu”, który mógłby ustalić, czy dowód używa rozumowania kołowego?
Zawsze uważałem, że dowody powinny składać się z łatwych do sprawdzenia kroków (które odpowiadają zastosowaniu reguł wnioskowania), a sprawdzenie wszystkich kroków daje pewność, że wniosek jest następujący. Ale teraz zastanawiam się: może tak naprawdę niemożliwe jest napisanie takiego sprawdzania dowodów, ponieważ nie ma sposobu, aby obejść problem zatrzymania i wykryć okrągłe rozumowanie?
źródło
Function
lubProgram Fixpoint
konstrukcji, aby udowodnić, że jakaś funkcja jest całkowita, jeśli sprawdzanie totalności zawiedzie. Prostym przykładem jest funkcja merge-sort na listach. Należy ręcznie udowodnić, że dzielimy listy (o długości> 1) na ściśle mniejsze listy podrzędne.Program
i tym podobne są czerwone śledzie. Nie zmieniają teorii. To, co robią, to cukier składniowy, aby użyć miary jako dowodu: zamiast rozumować, że obiekt, którym jesteś zainteresowany, staje się mniejszy, dodajesz poziom pośredni: oblicz inny obiekt staje się mniejszy (np. Pewien rozmiar) i udowodnij, że jest zmniejsza się ZobaczWf
bibliotekę.