Download Le Coq` Art (V8)
Transcript
16.3. ** RÉCURSION GÉNÉRALE PAR ITÉRATION 469 intros n m h. unfold div_it; case (div_it_terminates n m h). intros v Hex1; case (div_it_terminates (n-m) m h). intros v’ Hex2. elim Hex2; elim Hex1; intros p Heq1 p’ Heq2. rewrite <- Heq1 with (k := S (S (max p p’)))(g := fun x y:nat ⇒ v). rewrite <- Heq2 with (k := S (max p p’)) (g := fun x y:nat ⇒ v). reflexivity. eauto with arith. eauto with arith. Qed. 16.3.4 Utilisation de l’équation de point fixe Maintenant que nous disposons de l’équation de point fixe, il est assez aisé de démontrer que notre fonction de division satisfait la spécification usuelle de la division. Nous ne montrons ici que la première partie de la spécification. Cette démonstration se fait par récurrence bien fondée sur l’argument qui doit décroître entre chaque appel. Après l’étape de récurrence, la démonstration suit la structure de la fonction. Theorem div_it_correct1 : ∀ (m n:nat)(h:0 < n), m = fst (div_it m n h) * n + snd (div_it m n h). Proof. intros m; elim m using (well_founded_ind lt_wf). intros m’ Hrec n h; rewrite div_it_fix_eqn. case (le_gt_dec n m’); intros H; trivial. pattern m’ at 1; rewrite (le_plus_minus n m’); auto. pattern (m’-n) at 1. rewrite Hrec with (m’-n) n h; auto with arith. case (div_it (m’-n) n h); simpl; auto with arith. Qed. Exercice 16.16 * Démontrer la deuxième partie de la correction de div_it : ∀ (m n:nat)(h:0 < n), snd (div_it m n h) < n. 16.3.5 Discussion La technique présentée dans cette section permet de travailler séparément sur l’algorithme (représenté par la fonctionnelle F), la preuve de terminaison de cet algorithme (représenté par la construction de la fonction f_terminates), et la vérification que la fonction satisfait sa spécification, où l’équation de point fixe joue un rôle important. Nous avons donné entièrement les démonstrations
Related documents
Le Coq` Art (V8)
Pool Valet Installation Manual
Assistants de preuve
Lettre aux actionnaires N7 FR V5.indd
Matita Tutorial - Dipartimento di Informatica
MYWIHGQN \12. File 111011011 work/Pace Manager
Preuves Constructives
Manual/PartI/Your First Animation in 30 plus 30 Minutes Part I Your
User Manual Carbo 1000
Interface Wi-Fi ECODAN
E! @ @ - Chinavasion
MARS CLIMATE DATABASE v5.0 USER MANUAL