next up previous
suivant: La théorie Hoare.thy monter: TP précédent: L'interprète ML

Démontrer un théorème

La fonction Goal permet d'établir un but à démontrer: le but est donné dans une chaine de caractère qui sera analysée.

Exemple:

ML> Goal "(n::int) + 1 <= 0 ==> n < 0";

La réponse d'ISABELLE est d'afficher l'état courant de la preuve. Tant que la preuve n'est pas terminée, l'état courant ressemble à ça:

Level ...
G
1 .G1
2. G2
...
n. Gn
où les Gi, i = 1,2,...,n sont les sous-buts restant à démontrer.

Pour faire la preuve d'un but, il faut utiliser une "tactique". La tactique que nous emploierons principalement est la tactique Auto_tac qui signifie "résoudre automatiquement" (mais isabelle fournit d'autres tactiques pour les cas difficiles). On essaie une tactique en tapant by(...) avec le nom de la tactique entre les parenthèses. Ici:

by(Auto_tac);

Nous obtenons la réponse No subgoals ! qui signifie que la preuve est terminée (et donc que le théorème est démontré).



Eric Violard 2006-11-30