Trzeci rozdział CPDT krótko omawia, dlaczego negatywne typy indukcyjne są zabronione w Coq. Gdybyśmy mieliDowodzenie Fałszywy z ujemnymi typami indukcyjnymi w Coq
Inductive term : Set :=
| App : term -> term -> term
| Abs : (term -> term) -> term.
wtedy możemy łatwo zdefiniować funkcję
Definition uhoh (t : term) : term :=
match t with
| Abs f => f t
| _ => t
end.
więc, że termin uhoh (Abs uhoh)
byłoby nie kończący, z której „będziemy w stanie udowodnić każde twierdzenie”.
Rozumiem część nieterminacyjną, ale nie rozumiem, w jaki sposób możemy to udowodnić. Jak udowodnić, False
przy użyciu term
, jak zdefiniowano powyżej?