Outils Pour La Formalisation En Analyse Classique Damien Rouhling
Total Page:16
File Type:pdf, Size:1020Kb
Outils pour la Formalisation en Analyse Classique Une Étude de Cas en Théorie du Contrôle Damien Rouhling Inria Sophia Antipolis Méditerranée Présentée en vue de l’obtention du Devant le jury, composé de : grade de docteur en Informatique d’Université Côte d’Azur. Jesús Aransay Yves Bertot Dirigée par : Yves Bertot. Sylvie Boldo Cyril Cohen Co-encadrée par : Cyril Cohen. Éric Goubault Étienne Lozes Soutenue le : 30 septembre 2019. Lawrence Paulson Outils pour la Formalisation en Analyse Classique Une Étude de Cas en Théorie du Contrôle Jury : Directeurs Yves Bertot, Directeur de Recherche, Inria Sophia Antipolis Méditerranée Cyril Cohen, Chargé de Recherche, Inria Sophia Antipolis Méditerranée Rapporteurs Sylvie Boldo, Directrice de Recherche, Inria Saclay Île de France Lawrence Paulson, Professor, University of Cambridge Examinateurs Jesús Aransay, Profesor Contratado Doctor, Universida de La Rioja Éric Goubault, Professeur, École Polytechnique Étienne Lozes, Professeur, Université de Nice Sophia Antipolis Formalisation Tools for Classical Analysis A Case Study in Control Theory Jury: Advisors Yves Bertot, Directeur de Recherche, Inria Sophia Antipolis Méditerranée Cyril Cohen, Chargé de Recherche, Inria Sophia Antipolis Méditerranée Rapporteurs Sylvie Boldo, Directrice de Recherche, Inria Saclay Île de France Lawrence Paulson, Professor, University of Cambridge Examiners Jesús Aransay, Profesor Contratado Doctor, Universida de La Rioja Éric Goubault, Professeur, École Polytechnique Étienne Lozes, Professeur, Université de Nice Sophia Antipolis Outils pour la Formalisation en Analyse Classique Une Étude de Cas en Théorie du Contrôle Résumé : Il s’agit de mettre à l’épreuve une bibliothèque d’analyse dans l’assistant de preuve Coq au travers d’une étude de cas en théorie du contrôle. Nous formalisons une preuve de stabilité pour le pendule inversé, un exemple classique en théorie du contrôle. Le contrôle du pendule inversé est un défi en raison de sa non-linéarité, à tel point que ce système est souvent utilisé comme référence pour l’essai de nouvelles techniques de contrôle. Durant cette étude de cas, nous identifions des défauts des outils aujourd’hui accessibles pour la formalisation en analyse classique et nous en développons d’autres afin d’atteindre le but de cette étude de cas. En particulier, nous essayons d’imiter le style de preuve sur papier grâce à de nouvelles notations et de nouveaux mécanismes d’inférence. C’est une étape essentielle pour rendre la preuve formelle plus accessible aux mathématiciens. Ensuite, nous développons une nouvelle bibliothèque d’analyse classique en Coq, qui in- tègre ces nouveaux outils et qui essaie de pallier les limitations de la bibliothèque que nous avons testée, en particulier dans le domaine du raisonnement asymptotique. Nous testons aussi cette nouvelle bibliothèque sur la même preuve formelle et tirons des conclusions sur ses forces et faiblesses. Enfin, nous esquissons une nouvelle méthodologie pour répondre aux limitations de notre bibliothèque dans le domaine du calcul. Nous exploitons une technique appelée raffinement afin de refactoriser la méthode de preuve par réflexion, une technique qui automatise les preuves grâce au calcul et qui de plus réduit la taille des termes de preuves. Nous mettons en œuvre cette méthodologie sur l’exemple du raisonnement arithmétique dans les anneaux et expliquons comment ce travail pourrait servir à généraliser des outils déjà existants. Mots clés : Preuve formelle, Coq, analyse classique, théorie du contrôle, pendule inversé, automatisation, calcul. Formalisation Tools for Classical Analysis A Case Study in Control Theory Abstract: In this thesis, we put a library for analysis in the Coq proof assistant to the test through a case study in control theory. We formalise a proof of stability for the inverted pendulum, a standard example in control theory. Controlling the inverted pendulum is challenging because of its non-linearity, so that this system is often used as a benchmark for new control techniques. Through this case study, we identify issues in the tools that are currently available for the formalisation of classical analysis and we develop new ones in order to achieve our formalisation goal. In particular, we try to imitate the pen-and-paper proof style thanks to new notations and inference mechanisms. This is an essential step to make formal proofs more accessible to mathematicians. We then develop a new library for classical analysis in Coq that integrates these new tools and tries to palliate the limitations of the library we tested, especially in the domain of asymptotic reasoning. We also experiment with this new library on the same formal proof and draw lessons on its strengths and weaknesses. Finally, we sketch a new methodology in order to address the limitations of our library in the particular domain of computation. We exploit a technique called refinement to refactor the methodology of proof by reflection, a technique that automates proofs through computation and also reduces the size of proof terms. We implement this methodology on the example of arithmetic reasoning in rings and discuss how this work could be used to generalise existing tools. Keywords: Formal proof, Coq, classical analysis, control theory, inverted pendulum, automation, computation. REMERCIEMENTS – ACKNOWLEDGEMENTS Je ne peux commencer cette thèse sans remercier mes directeurs, Yves Bertot et Cyril Cohen, pour tout le soutien et tous les conseils qu’ils m’ont prodigués au cours de ces trois années de travail ensemble. Merci tout particulièrement pour l’autonomie et la confiance que vous m’avez accordées : j’ai pu librement choisir mon sujet et ma façon de l’aborder. Grâce à vous, je me suis senti déjà reconnu comme un chercheur à part entière et pas seulement comme un esclave – je veux dire, étudiant. Merci à toi, Cyril, pour ton enthousiasme et ton dynamisme. Auprès de toi j’ai appris qu’aucun projet n’est trop grand, aucun obstacle n’est trop difficile à franchir, tant qu’on garde à l’esprit qu’écrire une preuve fastidieuse fait perdre du temps qu’il vaudrait mieux passer à trouver des solutions généralisables. Cette thèse existe aussi grâce à ton courage et à ta fantaisie. Courage de nous lancer dans des projets ambitieux, fantaisie de ne pas reculer devant le déraisonnable, comme ce papier commencé à une semaine de la deadline. Yves, merci pour tes commentaires toujours éclairants, qui m’ont souvent aidé à sortir la tête du guidon et à prendre du recul. Je te remercie aussi pour ces interludes géométriques, pâtissiers ou sous-marins qui m’ont forcé, pour mon plus grand bien, à faire des pauses. Merci surtout pour ton humanité. Je me suis toujours senti écouté, compris et respecté dans mes choix familiaux et professionnels. I would like to thank my jury for accepting to review my work. I am particularly grateful to Sylvie Boldo and Lawrence Paulson, who dared being rap- porteurs even though the summer break would leave them little time to read this thesis and write their reports. Many thanks to Jesús Aransay, Éric Goubault and Étienne Lozes for showing interest in my work and for accepting to participate in this jury. Parce que faire de la recherche en informatique, ce n’est pas seulement jouer avec un ordinateur, mais c’est aussi et surtout interagir avec d’autres chercheurs a priori humains, je remercie toutes les personnes que j’ai rencontrées lors de ce doctorat et qui ont rendu cette interaction possible. xi Je tiens à remercier tous les membres, permanents ou non, de l’équipe Marelle pour l’am- biance chaleureuse à laquelle ils contribuent. Merci en particulier au « club d’échecs » local (Bo- ris, Laurent et Maxime) et au « club d’escalade » local (Benjamin et Enrico) and thanks to those who climbed with us (Anders, Cinzia, Florian, Luc, Matej, Sophie et Vincent). Merci à Cécile et Sophie pour ces pauses goûter toujours riches en discussions intéressantes. Je te remercie, Laurence, pour ta gentillesse tout autant que pour ton caractère sans concessions. Je suis très reconnaissant envers Nathalie, qui se démène pour alléger nos charges administratives et avec qui je partage de nombreuses valeurs. Merci pour tes romans, dont j’attends la suite avec impatience. J’ai aussi une pensée particulière pour José, qui nous a quitté récemment, avec qui j’ai longuement échangé dans le bus en attendant qu’il franchisse les bouchons. Merci à tous ceux qui ont bien voulu m’écouter parler de ma recherche. Merci en particulier à mon comité de suivi doctoral, Xavier Allamigeon et Yves Papegay, pour leurs retours et leurs encouragements. Merci aux équipes Gallinette, Gallium et SpecFun ainsi qu’au projet FastRelax pour leurs invitations qui ont donné lieu à des échanges très intéressants. Je remercie aussi Assia Mahboubi, qui a suivi mon parcours avec attention depuis mon arrivée dans le monde de la recherche et qui, je crois, a eu une grande influence sur ce parcours. Je remercie enfin tous ceux qui m’ont soutenu et encouragé. Merci en particulier à mes amis et ma famille, que j’ai peu vus ces dernières années mais qui comptent beaucoup pour moi. Merci à Antoine, Antonin, Armaël, Bénédicte, Benjamin, Charles, Charlotte, Francis, Ga- briel, Guillaume, Guillaume (le petit qui a grandi), Isaline, Jimmy, Mehdi, Méril, Pierre, Quentin, Régis, Rémi, Sandrine, Victor et aux autres que j’oublie. Je remercie les membres de l’Échiquier Antibois pour leur convivialité et tout ce qu’ils m’ont appris. Je remercie mes parents, qui m’ont appris la valeur du travail et m’ont poussé à suivre mes rêves jusqu’au bout. Merci à toi, Laura, qui me suit sans (trop) ronchonner depuis quelques années déjà. Merci d’être là pour me secouer et m’encourager à tirer le maximum de ce que j’ai déjà accompli. Merci à toi, Alban, pour le bonheur que tu m’apportes et à toi, qui n’es pas encore né, et qui m’en apporteras sans doute tout autant.