Verification of Sequential Imperative Programs in Isabelle/HOL

Total Page:16

File Type:pdf, Size:1020Kb

Verification of Sequential Imperative Programs in Isabelle/HOL f f f f f f f f f f f f f f f f f f f f Verification of Sequential Imperative Programs in Isabelle/HOL Norbert Schirmer Lehrstuhl fur¨ Software & Systems Engineering Institut fur¨ Informatik Technische Universitat¨ Munchen¨ Lehrstuhl fur¨ Software & Systems Engineering Institut fur¨ Informatik Technische Universitat¨ Munchen¨ Verification of Sequential Imperative Programs in Isabelle/HOL Norbert Schirmer Vollstandiger¨ Abdruck der von der Fakultat¨ fur¨ Informatik der Technischen Universitat¨ Munchen¨ zur Erlangung des akademischen Grades eines Doktors der Naturwissenschaften (Dr. rer. nat.) genehmigten Dissertation. Vorsitzender: Univ.-Prof. Dr. Helmut Seidl Prufer¨ der Dissertation: 1. Univ.-Prof. Tobias Nipkow, Ph.D. 2. Univ.-Prof. Dr. Wolfgang J. Paul Universitat¨ des Saarlandes Die Dissertation wurde am 31.10.2005 bei der Technischen Universitat¨ Munchen¨ eingereicht und durch die Fakultat¨ fur¨ Informatik am 21.04.2006 angenommen. i Kurzfassung Ziel der Dissertation ist es, eine Verifikationsumgebung fur¨ sequentielle imperative Programme zu schaffen. Zunachst¨ wird unabhangig¨ von einer konkreten Program- miersprache ein allgemeines Sprachmodell entwickelt, das ausdrucksstark genug ist um alle gangigen¨ Programmiersprachkonzepte abzudecken: Gegenseitig rekur- sive Prozeduren, abrupte Terminierung und Ausnahmebehandlung, Laufzeitfeh- ler, lokale und globale Variablen, Zeiger und Halde, Ausdrucke¨ mit Seiteneffekten, Zeiger auf Prozeduren, partielle Applikation, dynamischer Methoden Aufruf und unbeschrankter¨ Indeterminismus. Fur¨ dieses Sprachmodell wird eine Hoare Logik sowohl fur¨ partielle alsauch fur¨ totale Korrektheit entwickelt. Darauf aufbauend wird ein Verifikations-Bedingungs- Generator implementiert. Die Hoare Logik erlaubt die Integration von statischer Programmanalyse und Software Model Checkern in die Verifikation. Desweiteren wird eine Teilsprache von C in die Verifikationsumgebung eingebet- tet, um die Durchgangigkeit¨ zu einer realen Programmiersprache zu demonstrieren. Die gesamte Entwicklung wurde im Theorembeweiser Isabelle durchgefuhrt.¨ Dadurch wird zum einen die Korrektheit maschinell sichergestellt und zum anderen steht nun fur¨ die Verifikation von Programmen die reichhaltige Infrastruktur einer vollwertigen und universellen Beweisumgebung zur Verfugung.¨ ii iii Abstract The purpose of this thesis is to create a verification environment for sequential imper- ative programs. First a general language model is proposed, which is independent of a concrete programming language but expressive enough to cover all common language features: mutually recursive procedures, abrupt termination and excep- tions, runtime faults, local and global variables, pointers and heap, expressions with side effects, pointers to procedures, partial application and closures, dynamic method invocation and also unbounded nondeterminism. For this language a Hoare logic for both partial and total correctness is developed and on top of it a verification condition generator is implemented. The Hoare logic is designed to allow the integration of program analysis or software model checking into the verification. To demonstrate the continuity to a real programming language a subset of C is embedded into the verification environment. The whole work is developed in the theorem prover Isabelle. Therefore the correctness is machine-checked and in addition the rich infrastructure of the general purpose theorem prover Isabelle can be employed for the verification of imperative programs. iv v Funk is, what you don’t play. — Maceo Parker Acknowledgements I thank Tobias Nipkow for supervising this thesis and giving me the opportunity to work in his research group. I thank Wolfgang J. Paul for acting as referee and initiating the Verisoft project. I am indebted to Amine Chaieb, Gerwin Klein, Martin Strecker and Martin Wildmoser for reading and commenting on drafts of this thesis. I also thank all the former and current members of the Isabelle team in Munich for the friendly and relaxed working atmosphere, where there is always time for a coffee break and discussions: Clemens Ballarin (for his wise advise), Gertrud Bauer, Stefan Berghofer (for all his support with Isabelle), Amine Chaieb, Florian Haft- mann, Gerwin Klein (for collaboration and friendship even across the continents), Alexander Krauss, Farhad Mehta, Steven Obua (for his power), David von Oheimb, Leonor Prensa-Nieto, Sebastian Skalberg, Martin Strecker (for introducing me to theorem proving and answering all my questions), Tjark Weber, Markus Wenzel (for his ideal quest for proper solutions), and Martin Wildmoser. I thank my parents Anneliese and Jorg,¨ and my girlfriend Sarah Erath for their love and support. vi Contents 1 Introduction 1 1.1 Motivation .................................. 1 1.2 Contributions ................................ 3 1.3 Related Work ................................ 4 1.4 Overview ................................... 6 1.5 Preliminaries on Isabelle .......................... 7 2 The Simpl language 15 2.1 Abstract Syntax ............................... 16 2.2 Semantics .................................. 17 2.3 Termination ................................. 19 2.4 Derived Language Features ........................ 19 2.4.1 State Space Representation .................... 20 2.4.1.1 State as Function ..................... 21 2.4.1.2 State as Tuple ....................... 22 2.4.1.3 State as Record ...................... 23 2.4.2 Concrete Syntax for Simpl ..................... 24 2.4.3 Expressions with Side Effects ................... 25 2.4.4 Abrupt Termination ........................ 25 2.4.5 Blocks and Procedures with Parameters ............ 26 2.4.6 Dynamic Procedure Calls ..................... 28 2.4.7 Closures ............................... 28 2.4.8 Arrays ................................ 30 2.4.9 Heap and Pointers ......................... 30 2.4.9.1 Split Heap Approach .................. 30 2.4.9.2 Memory Management ................. 32 2.5 Conclusion .................................. 33 3 Hoare Logic for Simpl 35 3.1 Partial Correctness ............................. 38 3.1.1 “The” Consequence Rule ..................... 40 3.1.2 Recursive Procedures ....................... 45 3.1.3 Soundness ............................. 46 3.1.4 Completeness ............................ 50 3.2 Total Correctness .............................. 55 3.2.1 Soundness .............................. 57 3.2.2 Completeness ............................ 59 3.3 Conclusion .................................. 70 viii Contents 4 Utilising the Hoare Logic 73 4.1 Loops ..................................... 74 4.2 Expressions with Side Effects ....................... 76 4.3 Blocks ..................................... 76 4.4 Procedures .................................. 77 4.5 Abrupt Termination ............................. 82 4.6 Heap ..................................... 84 4.7 Dynamic Procedure Call .......................... 88 4.8 Closures ................................... 91 4.9 Introducing Annotations ......................... 95 4.10 Conclusion .................................. 96 5 Interfacing Program Analysis 99 5.1 Stripping Guards .............................. 100 5.2 Marking Guards ............................... 103 5.3 Discharging Guards ............................. 104 5.4 Adding Guards ............................... 106 5.5 Conclusion .................................. 107 6 Compositionality 109 6.1 Exploiting Structural Subtyping ...................... 109 6.2 Lifting Hoare Triples ............................ 110 6.3 Example ................................... 115 6.4 Conclusion .................................. 117 7 The C0 Language 119 7.1 Abstract Syntax ............................... 121 7.1.1 Names ................................ 121 7.1.2 Types ................................ 121 7.1.3 Values ................................ 122 7.1.4 Expressions ............................. 123 7.1.5 Statements .............................. 124 7.1.6 Programs .............................. 124 7.2 Semantics .................................. 125 7.2.1 State ................................. 125 7.2.2 Expression Evaluation ....................... 126 7.2.3 Left-Expression Evaluation and Assignment .......... 130 7.2.4 Big-Step Semantics ......................... 132 7.2.5 Termination ............................. 134 7.2.6 Typing ................................ 135 7.2.7 Definite Assignment ........................ 140 7.2.8 Wellformed Programs ....................... 142 7.2.9 Type Safety ............................. 142 7.3 Conclusion .................................. 145 8 Embedding C0 into Simpl 147 8.1 Splitting Types and Values ......................... 152 8.2 Expressions ................................. 156 8.3 Left-Expressions ............................... 168 8.4 Assignments ................................. 171 Contents ix 8.5 Execution ................................... 181 8.6 Termination ................................. 186 8.7 Hoare Triples ................................ 191 8.8 Example ................................... 194 8.9 Conclusion .................................. 214 9 Conclusion and Outlook 215 9.1 Practical Experiences ............................ 215 9.1.1 Normalisation of Binary Decision Diagrams .......... 215 9.1.2 C0 Verification in Verisoft ..................... 217 9.1.3 Memory Management of L4 Kernel, with Refinement ..... 218 9.2 State Space Representation Revisited .................. 219 9.3 Contributions ...............................
Recommended publications
  • Safety and Conservativity of Definitions in HOL and Isabelle/HOL
    This is a repository copy of Safety and conservativity of definitions in HOL and Isabelle/HOL. White Rose Research Online URL for this paper: http://eprints.whiterose.ac.uk/161207/ Version: Published Version Article: Kunčar, O. and Popescu, A. orcid.org/0000-0001-8747-0619 (2018) Safety and conservativity of definitions in HOL and Isabelle/HOL. Proceedings of the ACM on Programming Languages, 2 (POPL). 24. ISSN 2475-1421 https://doi.org/10.1145/3158112 Reuse This article is distributed under the terms of the Creative Commons Attribution (CC BY) licence. This licence allows you to distribute, remix, tweak, and build upon the work, even commercially, as long as you credit the authors for the original work. More information and the full terms of the licence here: https://creativecommons.org/licenses/ Takedown If you consider content in White Rose Research Online to be in breach of UK law, please notify us by emailing [email protected] including the URL of the record and the reason for the withdrawal request. [email protected] https://eprints.whiterose.ac.uk/ Safety and Conservativity of Definitions in HOL and Isabelle/HOL ONDŘEJ KUNČAR, Technische Universität München, Germany ANDREI POPESCU, Middlesex University London, United Kingdom and Institute of Mathematics Simion Stoilow of the Romanian Academy, Romania Deinitions are traditionally considered to be a safe mechanism for introducing concepts on top of a logic known to be consistent. In contrast to arbitrary axioms, deinitions should in principle be treatable as a form of abbreviation, and thus compiled away from the theory without losing provability.
    [Show full text]
  • Submission Data for 2020-2021 CORE Conference Ranking Process International Joint Conference on Automated Reasoning
    Submission Data for 2020-2021 CORE conference Ranking process International Joint Conference on Automated Reasoning Franz Baader, Viorica Sofronie-Stokkermans Conference Details Conference Title: International Joint Conference on Automated Reasoning Acronym : IJCAR Rank: A* Requested Rank Rank: A* Recent Years Proceedings Publishing Style Proceedings Publishing: series Link to most recent proceedings: https://link.springer.com/conference/ijcar Further details: The proceedings are published in Springer Lecture Notes in Computer Science (LNCS) subseries Lecture Notes in Artificial Intelligence (LNAI). The proceedings usually contain regular papers and system descriptions accepted at the main conference. (IJCAR 2020 also contained a small number of short papers, which were clearly marked as short papers.) Most Recent Years Most Recent Year Year: 2018 URL: http://ijcar2018.org Location: Oxford, UK Papers submitted: 108 Papers published: 46 Acceptance rate: 43 Source for numbers: http://ijcar.org//conferences General Chairs Name: Ian Horrocks Affiliation: University of Oxford, UK Gender: M H Index: 96 GScholar url: https://scholar.google.com/citations?hl=en&user=0ypdmcYAAAAJ DBLP url: https://dblp.org/pid/h/IanHorrocks.html Program Chairs Name: Didier Galmiche Affiliation: UniversitÃľ de Lorraine, France Gender: M H Index: 19 (according to Semantic Scholar) GScholar url: https://scholar.google.com/scholar?hl=de&as_sdt=0%2C5&q=Didier+Galmiche&oq= DBLP url: https://dblp.org/pid/82/76.html 1 Second Most Recent Year Year: 2016 URL: https://www.uc.pt/en/congressos/ijcar2016
    [Show full text]
  • Towards a Practical, Verified Kernel
    Towards a Practical, Verified Kernel Kevin Elphinstone∗ Gerwin Klein∗ PhilipDerrin TimothyRoscoe† Gernot Heiser∗‡ National ICT Australia§ Abstract properties such as guaranteed termination of system calls, and the kernel never throwing an internal exception. In the paper we examine one of the issues in designing, Successful OS kernels have generally been the result of specifying, implementing and formally verifying a small careful attention to performance issues, and repeatedly it- operating system kernel — how to provide a productive erating bottom-up implementations of low-level function- and iterative developmentmethodology for both operating ality, in some cases changing high-level interfaces and system developers and formal methods practitioners. functionality to accommodate implementation constraints We espouse the use of functional programming lan- and performance goals. This is, unfortunately, in conflict guages as a medium for prototyping that is readily with formal methods, which typically work by top-down amenable to formalisation with a low barrier to entry for refining models of system properties, and rarely deal with kernel developers, and report early experience in the pro- low-level implementation features. cess of designing and building seL4: a new, practical, and This paper describes our approach to resolving this ten- formally verified microkernel. sion, and reports on our experience so far in applying it to seL4. We use a high-level language (Literate Haskell) to simultaneously develop a specification of the kernel and a 1 Introduction reference implementation for evaluation and testing. The implementation can be used in conjunction with a sim- We describe our approachto constructing seL4 — a useful ulator such as QEMU for running real application bina- yet formally verified operating system kernel, by means of ries, while the specification generates input to an interac- a novel development process which aims to reconcile the tive theorem prover (Isabelle) for formal proof of proper- conflicting methodologies of kernel developers and for- ties.
    [Show full text]
  • Curriculum Vitae of Danny Dorling
    January 2021 1993 to 1996: British Academy Fellow, Department of Geography, Newcastle University 1991 to 1993: Joseph Rowntree Foundation Curriculum Vitae Fellow, Many Departments, Newcastle University 1987 to 1991: Part-Time Researcher/Teacher, Danny Dorling Geography Department, Newcastle University Telephone: +44(0)1865 275986 Other Posts [email protected] skype: danny.dorling 2020-2023 Advisory Board Member: ‘The political economies of school exclusion and their consequences’ (ESRC project ES/S015744/1). Current appointment: Halford Mackinder 2020-Assited with the ‘Time to Care’ Oxfam report. Professor of Geography, School of 2020- Judge for data visualisation competition Geography and the Environment, The Nuffield Trust, the British Medical Journal, the University of Oxford, South Parks Road, British Medical Association and NHS Digital. Oxford, OX1 3QY 2019- Judge for the annual Royal Geographical th school 6 form essay competition. 2019 – UNDP (United Nations Development Other Appointments Programme) Human Development Report reviewer. 2019 – Advisory Broad member: Sheffield Visiting Professor, Department of Sociology, University Nuffield project on an Atlas of Inequality. Goldsmiths, University of London, 2013-2016. 2019 – Advisory board member - Glasgow Centre for Population Health project on US mortality. Visiting Professor, School of Social and 2019- Editorial Board Member – Bristol University Community Medicine, University of Bristol, UK Press, Studies in Social Harm Book Series. 2018 – Member of the Bolton Station Community Adjunct Professor in the Department of Development Partnership. Geography, University of Canterbury, NZ 2018-2022 Director of the Graduate School, School of Geography and the Environment, Oxford. 2018 – Member of the USS review working group of the Council of the University of Oxford.
    [Show full text]
  • 2017 Edition 35 the Master
    Clare News 2017 EDITION 35 THE MASTER In this issue Welcome from the Master Page 3 Achievements and Honours Page 5 Old Court Page 6 College News Page 10 Student Life Page 17 Sport Page 21 Page 22 Editor: Hannah Sharples Alumni Stories Design: www.cantellday.co.uk Photography: Hannah Sharples, Fellows’ Research Page 28 Helen Knowles Front Cover image: Nick Rutter Samuel Blythe Society Page 33 Contact: Publications Page 34 The Editor – Clare News, Clare College, Social Media Page 38 Trinity Lane, Cambridge CB2 1TL +44 (0)1223 333218 A Year in Clare Page 39 [email protected] www.clarealumni.com © Clare College 2017-18. All rights reserved. Forthcoming events are listed on the back cover 2 CLARE NEWS SUMMER 2014 THE MASTER Welcome from the Master I am delighted to present the latest edition of Clare News. As you will see from our contributors, a Clare education can take you far across the globe, and it is always a pleasure to keep our alumni and friends updated on what has been happening in College. Clare has had another excellent year, both Jane is a Senior Social Development Adviser academically and otherwise. One current at the UK Government’s Department for Clare Fellow and two alumnae of the International Development (DFID), and she College were this year elected to the Royal was awarded an OBE in the Queen’s 2015 Society, the self-governing Fellowship of Birthday Honours. During her time at DFID the most eminent scientists, engineers Jane’s work has included urban poverty, and technologists from the UK and the social exclusion, fragile states, and ending Commonwealth.
    [Show full text]
  • Hoare Logics for Recursive Procedures and Unbounded Nondeterminism
    Hoare Logics for Recursive Procedures and Unbounded Nondeterminism Tobias Nipkow Fakult¨atf¨urInformatik, Technische Universit¨atM¨unchen http://www.in.tum.de/~nipkow/ Abstract. This paper presents sound and complete Hoare logics for partial and total correctness of recursive parameterless procedures in the context of unbounded nondeterminism. For total correctness, the litera- ture so far has either restricted recursive procedures to be deterministic or has studied unbounded nondeterminism only in conjunction with loops rather than procedures. We consider both single procedures and systems of mutually recursive procedures. All proofs have been checked with the theorem prover Isabelle/HOL. 1 Introduction Hoare logic has been studied extensively since its inception [8], both for its the- oretical interest and its practical relevance. Strangely enough, procedures have not been treated with adequate attention: many proof systems involving proce- dures are unsound, incomplete, or ignore completeness altogether (see [2,21] for details). In particular the combination of procedures with (unbounded) nonde- terminism was an open issue altogether. Let us briefly review the history of Hoare logics for deterministic languages with procedures. The system proposed by Hoare [9] was later shown to be sound and complete by Olderog [21]. Apt [2] presents sound and complete systems both for partial correctness (following Gorelick [6]) and for total correctness (following and completing Soko lowski [25]). The one for total correctness is later found to be unsound by America and de Boer [1], who modify the system and give new soundness and completeness proofs. A new twist is added by Kleymann (n´eSchreiber) [24] who uses a little known consequence rule due to Morris [14] to subsume the three adaption rules by America and de Boer.
    [Show full text]
  • Formalising Ordinal Partition Relations Using Isabelle/HOL Mirna Džamonja, Lawrence Paulson, Angeliki Koutsoukou-Argyraki
    Formalising Ordinal Partition Relations Using Isabelle/HOL Mirna Džamonja, Lawrence Paulson, Angeliki Koutsoukou-Argyraki To cite this version: Mirna Džamonja, Lawrence Paulson, Angeliki Koutsoukou-Argyraki. Formalising Ordinal Partition Relations Using Isabelle/HOL. Experimental Mathematics, Taylor & Francis, In press. hal-03203361 HAL Id: hal-03203361 https://hal.archives-ouvertes.fr/hal-03203361 Submitted on 20 Apr 2021 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Formalising Ordinal Partition Relations Using Isabelle/HOL Mirna Džamonja ([email protected]) IRIF CNRS-Université de Paris 6 Rue Nicole-Reine Lepaute 75013 Paris, France Angeliki Koutsoukou-Argyraki ([email protected]) and Lawrence C. Paulson FRS ([email protected]) Computer Laboratory, University of Cambridge 15 JJ Thomson Avenue, Cambridge CB3 0FD, UK April 20, 2021 Abstract This is an overview of a formalisation project in the proof assistant Isabelle/HOL of a number of research results in infinitary combina- torics and set theory (more specifically in ordinal partition relations) by Erdős–Milner, Specker, Larson and Nash-Williams, leading to Lar- son’s proof of the unpublished result by E.C. Milner asserting that for all m N, ωω (ωω, m).
    [Show full text]
  • Symbolic Proofs for Lattice-Based Cryptography
    Symbolic Proofs for Lattice-Based Cryptography Gilles Barthe∗ Xiong Fany Joshua Ganchery Benjamin Gregoire´ z Charlie Jacommex Elaine Shiy June 14, 2019 Abstract Symbolic methods have been used extensively for proving security of cryptographic protocols in the Dolev-Yao model, and more recently for proving security of cryptographic primitives and constructions in the computational model. However, existing methods for proving security of cryptographic construc- tions in the computational model often require significant expertise and interaction, or are fairly limited in scope and expressivity. This paper introduces a symbolic approach for proving security of cryptographic constructions based on the Learning With Errors assumption (Regev, STOC 2005). Such constructions are instances of lattice-based cryptography and are extremely important due to their potential role in post-quantum cryp- tography. Following (Barthe, Gregoire´ and Schmidt, CCS 2015), our approach combines a computa- tional logic and deducibility problems—a standard tool for representing the adversary’s knowledge, the Dolev-Yao model. The computational logic is used to capture (indistinguishability-based) security no- tions and drive the security proofs whereas deducibility problems are used as side-conditions to control that rules of the logic are applied correctly. We then use AutoLWE, an implementation of the logic, to deliver very short or even automatic proofs of several emblematic constructions, including CPA- PKE (Gentry et al., STOC 2008), (Hierarchical) Identity-Based Encryption (Agrawal et al. Eurocrypt 2010), Inner Product Encryption (Agrawal et al. Asiacrypt 2011), CCA-PKE (Micciancio et al., Eu- rocrypt 2012). The main technical novelty beyond AutoLWE is a set of (semi-)decision procedures for deducibility problems, using extensions of Grobner¨ basis computations for subalgebras in the (non- )commutative setting (instead of ideals in the commutative setting).
    [Show full text]
  • Introduction to Milestones in Interactive Theorem Proving
    Noname manuscript No. (will be inserted by the editor) Introduction to Milestones in Interactive Theorem Proving Jeremy Avigad · Jasmin Christian Blanchette · Gerwin Klein · Lawrence Paulson · Andrei Popescu · Gregor Snelting Received: date / Accepted: date On March 8, 2018, Tobias Nipkow celebrated his sixtieth birthday. In anticipation of the occasion, in January 2016, two of his former students, Gerwin Klein and Jasmin Blanchette, and one of his former postdocs, Andrei Popescu, approached the editorial board of the Journal of Automated Reasoning with a proposal to publish a surprise Festschrift issue in his honor. The e-mail was sent to twenty-six members of the board, leaving out one, for reasons that will become clear in a moment. It is a sign of the love and respect that Tobias commands from his colleagues that within two Jeremy Avigad Department of Philosophy Carnegie Mellon University [email protected] Jasmin Christian Blanchette Theoretical Computer Science Vrije Universiteit Amsterdam [email protected] Gerwin Klein Trustworthy Systems Research Group Data61, CSIRO [email protected] Lawrence Paulson Computer Laboratory University of Cambridge [email protected] Andrei Popsecu School of Science and Technology Middlesex University London [email protected] Gregor Snelting Department of Computer Science Karlsruhe Institute of Technology [email protected] 2 Avigad, Blanchette, Klein, Paulson, Popescu, and Snelting days every recipient of the e-mail had responded favorably and enthusiastically to the proposal. There were only two problems that had to be addressed, and the subsequent dis- cussion focused on them. The first problem was that Tobias — the one member of the editorial board who was omitted from the mailing list — was actually the editor-in- chief of the journal.
    [Show full text]
  • Formalización De Fundaciones De La Matemática Y Compiladores
    FORMALIZACIÓNDEFUNDACIONESDELAMATEMÁTICAY COMPILADORESCORRECTOSPORCONSTRUCCIÓN emmanuel gunther director: dr. miguel m. pagano En cumplimiento de los requisitos para adquirir el grado de Doctor en Ciencias de la Computación Facultad de Matemática, Astronomía, Física y Computación Universidad Nacional de Córdoba Formalización de Fundaciones de la Matemática y Compiladores Correctos por Construcción por Emmanuel Gunther se distribuye ba- jo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional All human activity is prompted by desire. There is a wholly fallacious theory advanced by some earnest moralists to the effect that it is possible to resist desire in the interests of duty and moral principle. (Bertrand Russell) RESUMEN El desarrollo de las teorías fundacionales de la Matemática apare- cidas en el siglo XX ha dado lugar a numerosos avances científicos en lógica y en ciencias de la computación. La teoría de conjuntos pro- puesta inicialmente por Georg Cantor a finales del siglo XIX y luego axiomatizada por Zermelo y Fraenkel para evitar paradojas constitu- ye una de las teorías fundacionales más estudiadas y aceptadas por la comunidad científica. Paralelamente a ésta se desarrolló la teoría de tipos a partir de las primeras propuestas realizadas por Bertrand Russell, luego con el cálculo lambda simplemente tipado de Alonzo Church y más adelante con Per Martin-Löf, entre otros. La teoría de tipos abrió el camino a una prolífica área de estudio en ciencias de la computación: por un lado los lenguajes de programación pueden expresar propiedades de corrección en el tipado de los programas, y por otro permiten escribir formalmente resultados matemáticos que pueden chequearse automáticamente, lo que se conoce como formali- zación de matemática.
    [Show full text]
  • Formalisation and Execution of Linear Algebra: Theorems and Algorithms
    Formalisation and execution of Linear Algebra: theorems and algorithms Jose Divas´onMallagaray Dissertation submitted in partial fulfilment of the requirements for the degree of Doctor of Philosophy Supervisors: Dr. D. Jes´usMar´ıaAransay Azofra Dr. D. Julio Jes´usRubio Garc´ıa Departamento de Matem´aticas y Computaci´on Logro~no,June 2016 Examining Committee Dr. Francis Sergeraert (Universit´eGrenoble Alpes) Prof. Dr. Lawrence Charles Paulson (University of Cambridge) Dr. Laureano Lamb´an (Universidad de La Rioja) External Reviewers Dr. Johannes H¨olzl (Technische Universit¨atM¨unchen) Ass. Prof. Dr. Ren´eThiemann (Universit¨atInnsbruck) This work has been partially supported by the research grants FPI-UR-12, ATUR13/25, ATUR14/09, ATUR15/09 from Universidad de La Rioja, and by the project MTM2014-54151-P from Ministerio de Econom´ıay Competitividad (Gobierno de Espa~na). Abstract This thesis studies the formalisation and execution of Linear Algebra algorithms in Isabelle/HOL, an interactive theorem prover. The work is based on the HOL Multivariate Analysis library, whose matrix representation has been refined to datatypes that admit a representation in functional programming languages. This enables the generation of programs from such verified algorithms. In par- ticular, several well-known Linear Algebra algorithms have been formalised in- volving both the computation of matrix canonical forms and decompositions (such as the Gauss-Jordan algorithm, echelon form, Hermite normal form, and QR decomposition). The formalisation of these algorithms is also accompanied by the formal proofs of their particular applications such as calculation of the rank of a matrix, solution of systems of linear equations, orthogonal matrices, least squares approximations of systems of linear equations, and computation of determinants of matrices over B´ezoutdomains.
    [Show full text]
  • Isabelle and Security
    Isabelle and Security Jasmin Christian Blanchette1;2 and Andrei Popescu3 1 Inria Nancy & LORIA, Villers-lès-Nancy, France 2 Max-Planck-Institut für Informatik, Saarbrücken, Germany 3 Department of Computer Science, School of Science and Technology, Middlesex University, UK Abstract. Isabelle/HOL is a general-purpose proof assistant based on higher- order logic. Its main strengths are its simple-yet-expressive logic and its proof au- tomation. Security researchers make up a significant fraction of Isabelle’s users. In the past few years, many exciting developments have taken place, connecting programming languages, operating system kernels, and security. 1 Isabelle Isabelle [26, 27] is a generic theorem prover developed since the 1980s under the lead- ership of Lawrence Paulson (University of Cambridge), Tobias Nipkow (Technische Universität München), and Makarius Wenzel. Its built-in metalogic is a fragment of higher-order logic. The HOL object logic is a more elaborate version of higher-order logic, complete with the familiar connectives and quantifiers. Isabelle/HOL is the most developed instance of Isabelle. HOL is not quite as powerful as set theory or type theory (e.g., Coq’s calculus of inductive constructions), but it can comfortably accommodate most applications, whether they are oriented toward mathematics or computer science. Isabelle adheres to the tradition initiated in the 1970s by the LCF system: All infer- ences are derived by a small trusted kernel; types and functions are defined rather than axiomatized to guard against inconsistencies. High-level specification mechanisms let users define important classes of types and functions safely. When the user introduces a new (co)datatype or (co)recursive function, the system internally synthesizes an elab- orate construction, from which it derives the characteristic (co)datatype properties and (co)recursive specifications as theorems.
    [Show full text]