La diagonale
Exercice · OCaml (option informatique), chapitre 20 — Calculabilité et décidabilité
Énoncé
Reconstituer en détail la contradiction de diagonale appliquée à elle-même.
Corrigé
let diagonale p =
if arrete p p then (while true do () done) else ()
Notons le programme diagonale. Que fait diagonale D ? Par définition, elle teste arrete D D.
- Cas
arrete D D = true: cela signifie « appliqué à s'arrête ». Or, dans ce cas,diagonale Dentre danswhile true: elle ne s'arrête pas. Contradiction avectrue.
- Cas
arrete D D = false: « appliqué à ne s'arrête pas ». Ordiagonale Dprend alors la brancheelseet s'arrête. Contradiction avecfalse.
arrete ne peut donc renvoyer ni true ni false de façon cohérente : elle ne peut exister.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.