History of Interactive Theorem Proving
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Samuel Eilenberg Assistant Professorships
Faculty of Mathematics, Informatics and Mechanics Dean, Professor Paweł Strzelecki Samuel Eilenberg Assistant Professorships Four academic positions in the group of researchers and lecturers are vailable at the Faculty of Mathematics, Informatics and Mechanics Pursuant to the Law on Higher Education and Science, the Univeristy of Warsaw invites the applications for four positions of Samuel Eilenberg Assistant Professorships. Samuel Eilenberg (1913-1998) obtained his PhD degree in Mathematics at the University of Warsaw in 1936 under the supervision of Kazimierz Kuratowski and Karol Borsuk. He spent most of his career in the USA as a professor at Columbia Univeristy. He exerted a critical influence on contemporary mathematics and theoretical computer science; he was a co- founder of modern topology, category theory, homological algebra, and automata theory. His scientific development epitomizes openness to new ideas and readiness to face demanding intellectual challenges. Terms of employment: starting date October 1, 2020; full time job, competitive salary, fixed term employment contract for 2 or 4 years (to be decided with successful applicants). The candidates will concentrate on intensive research and will have reduced teaching duties (120 teaching hours per academic year). Requirements. Successful candidates for Samuel Eilenberg Professorships should have: 1. a PhD degree in mathematics, computer science or related fields obtained in the past 5 years; 2. significant papers in mathematics or computer science, published in refereed, globally recognized journals or confer- ences; 3. teaching experience and willingness to undertake organizational activities related to teaching; 4. significant international experience (internships or post-doctoral fellowships, projects etc.). Candidates obtain extra points for: • research fellowships outside Poland within the last two years; • high pace of scientific development that is confirmed by high quality papers; a clear concept of maintaining this development is required. -
Theorem Proving for Verification
Theorem Proving for Verification the Early Days J Strother Moore Department of Computer Sciences University of Texas at Austin 1 Prologue When I look at the state of our science today, I am amazed and proud of how far we've come and what is routinely possible today with mechanized verification. But how did we get here? 2 A personal perspective on the journey University of Xerox PARC Edinburgh & SRI ’74−81 ’70−73 UT Austin MIT & CLI ’66−70 Dickinson, Texas −, 1966 3 Hope Park Square, Edinburgh, 1970 4 Hope Park Square, Edinburgh, 1970 Rod Burstall Donald Michie Bernard Meltzer Bob Kowalski Pat Hayes 5 Hope Park Square, Edinburgh, 1970 Rod Burstall Donald Michie Bernard Meltzer Bob Kowalski Pat Hayes Gordon Plotkin 1968 6 Hope Park Square, Edinburgh, 1970 Rod Burstall Donald Michie Bernard Meltzer Bob Kowalski Pat Hayes Gordon Plotkin 1968 Mike Gordon 1970 J Moore 1970 7 Hope Park Square, Edinburgh, 1970 Rod Burstall Donald Michie Bernard Meltzer Bob Kowalski Pat Hayes Gordon Plotkin 1968 Mike Gordon 1970 J Moore 1970 Bob Boyer 1971 Alan Bundy 1971 8 Hope Park Square, Edinburgh, 1970 Rod Burstall Donald Michie Bernard Meltzer Bob Kowalski Pat Hayes Gordon Plotkin 1968 Mike Gordon 1970 J Moore 1970 Bob Boyer 1971 Alan Bundy 1971 Robin Milner 1973 9 Our Computing Resources 64KB of RAM, paper tape input 10 11 Instead of debugging a program, one should prove that it meets its specifications, and this proof should be checked by a computer program. | John McCarthy, \A Basis for a Mathematical Theory of Computation," 1961 12 Theorem Proving in 1970 -
Specifying Verified X86 Software from Scratch
Specifying verified x86 software from scratch Mario Carneiro Carnegie Mellon University, Pittsburgh, PA, USA [email protected] Abstract We present a simple framework for specifying and proving facts about the input/output behavior of ELF binary files on the x86-64 architecture. A strong emphasis has been placed on simplicity at all levels: the specification says only what it needs to about the target executable, the specification is performed inside a simple logic (equivalent to first-order Peano Arithmetic), and the verification language and proof checker are custom-designed to have only what is necessary to perform efficient general purpose verification. This forms a part of the Metamath Zero project, to build a minimal verifier that is capable of verifying its own binary. In this paper, we will present the specification of the dynamic semantics of x86 machine code, together with enough information about Linux system calls to perform simple IO. 2012 ACM Subject Classification Theory of computation → Program verification; Theory of com- putation → Abstract machines Keywords and phrases x86-64, ISA specification, Metamath Zero, self-verification Digital Object Identifier 10.4230/LIPIcs.ITP.2019.19 Supplement Material The formalization is a part of the Metamath Zero project at https://github. com/digama0/mm0. Funding This material is based upon work supported by AFOSR grant FA9550-18-1-0120 and a grant from the Sloan Foundation. Acknowledgements I would like to thank my advisor Jeremy Avigad for his support and encourage- ment, and for his reviews of early drafts of this work. 1 Introduction The field of software verification is on the verge of a breakthrough. -
Lemma Functions for Frama-C: C Programs As Proofs
Lemma Functions for Frama-C: C Programs as Proofs Grigoriy Volkov Mikhail Mandrykin Denis Efremov Faculty of Computer Science Software Engineering Department Faculty of Computer Science National Research University Ivannikov Institute for System Programming of the National Research University Higher School of Economics Russian Academy of Sciences Higher School of Economics Moscow, Russia Moscow, Russia Moscow, Russia [email protected] [email protected] [email protected] Abstract—This paper describes the development of to additionally specify loop invariants and termination an auto-active verification technique in the Frama-C expression (loop variants) in case the function under framework. We outline the lemma functions method analysis contains loops. Then the verification instrument and present the corresponding ACSL extension, its implementation in Frama-C, and evaluation on a set generates verification conditions (VCs), which can be of string-manipulating functions from the Linux kernel. separated into categories: safety and behavioral ones. We illustrate the benefits our approach can bring con- Safety VCs are responsible for runtime error checks for cerning the effort required to prove lemmas, compared known (modeled) types, while behavioral VCs represent to the approach based on interactive provers such as the functional correctness checks. All VCs need to be Coq. Current limitations of the method and its imple- mentation are discussed. discharged in order for the function to be considered fully Index Terms—formal verification, deductive verifi- proved (totally correct). This can be achieved either by cation, Frama-C, auto-active verification, lemma func- manually proving all VCs discharged with an interactive tions, Linux kernel prover (i. e., Coq, Isabelle/HOL or PVS) or with the help of automatic provers. -
The Metamathematics of Putnam's Model-Theoretic Arguments
The Metamathematics of Putnam's Model-Theoretic Arguments Tim Button Abstract. Putnam famously attempted to use model theory to draw metaphysical conclusions. His Skolemisation argument sought to show metaphysical realists that their favourite theories have countable models. His permutation argument sought to show that they have permuted mod- els. His constructivisation argument sought to show that any empirical evidence is compatible with the Axiom of Constructibility. Here, I exam- ine the metamathematics of all three model-theoretic arguments, and I argue against Bays (2001, 2007) that Putnam is largely immune to meta- mathematical challenges. Copyright notice. This paper is due to appear in Erkenntnis. This is a pre-print, and may be subject to minor changes. The authoritative version should be obtained from Erkenntnis, once it has been published. Hilary Putnam famously attempted to use model theory to draw metaphys- ical conclusions. Specifically, he attacked metaphysical realism, a position characterised by the following credo: [T]he world consists of a fixed totality of mind-independent objects. (Putnam 1981, p. 49; cf. 1978, p. 125). Truth involves some sort of correspondence relation between words or thought-signs and external things and sets of things. (1981, p. 49; cf. 1989, p. 214) [W]hat is epistemically most justifiable to believe may nonetheless be false. (1980, p. 473; cf. 1978, p. 125) To sum up these claims, Putnam characterised metaphysical realism as an \externalist perspective" whose \favorite point of view is a God's Eye point of view" (1981, p. 49). Putnam sought to show that this externalist perspective is deeply untenable. To this end, he treated correspondence in terms of model-theoretic satisfaction. -
Better SMT Proofs for Easier Reconstruction Haniel Barbosa, Jasmin Blanchette, Mathias Fleury, Pascal Fontaine, Hans-Jörg Schurr
Better SMT Proofs for Easier Reconstruction Haniel Barbosa, Jasmin Blanchette, Mathias Fleury, Pascal Fontaine, Hans-Jörg Schurr To cite this version: Haniel Barbosa, Jasmin Blanchette, Mathias Fleury, Pascal Fontaine, Hans-Jörg Schurr. Better SMT Proofs for Easier Reconstruction. AITP 2019 - 4th Conference on Artificial Intelligence and Theorem Proving, Apr 2019, Obergurgl, Austria. hal-02381819 HAL Id: hal-02381819 https://hal.archives-ouvertes.fr/hal-02381819 Submitted on 26 Nov 2019 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. Better SMT Proofs for Easier Reconstruction Haniel Barbosa1, Jasmin Christian Blanchette2;3;4, Mathias Fleury4;5, Pascal Fontaine3, and Hans-J¨orgSchurr3 1 University of Iowa, 52240 Iowa City, USA [email protected] 2 Vrije Universiteit Amsterdam, 1081 HV Amsterdam, the Netherlands [email protected] 3 Universit´ede Lorraine, CNRS, Inria, LORIA, 54000 Nancy, France fjasmin.blanchette,pascal.fontaine,[email protected] 4 Max-Planck-Institut f¨urInformatik, Saarland Informatics Campus, Saarbr¨ucken, Germany fjasmin.blanchette,[email protected] 5 Saarbr¨ucken Graduate School of Computer Science, Saarland Informatics Campus, Saarbr¨ucken, Germany [email protected] Proof assistants are used in verification, formal mathematics, and other areas to provide trust- worthy, machine-checkable formal proofs of theorems. -
Enhancement of Properties in Mizar
Enhancement of properties in Mizar Artur Korniªowicz Institute of Computer Science, University of Bialystok, Bialystok, Poland ABSTRACT A ``property'' in the Mizar proof-assistant is a construction that can be used to register chosen features of predicates (e.g., ``reflexivity'', ``symmetry''), operations (e.g., ``involutiveness'', ``commutativity'') and types (e.g., ``sethoodness'') declared at the definition stage. The current implementation of Mizar allows using properties for notions with a specific number of visible arguments (e.g., reflexivity for a predicate with two visible arguments and involutiveness for an operation with just one visible argument). In this paper we investigate a more general approach to overcome these limitations. We propose an extension of the Mizar language and a corresponding enhancement of the Mizar proof-checker which allow declaring properties of notions of arbitrary arity with respect to explicitly indicated arguments. Moreover, we introduce a new property—the ``fixedpoint-free'' property of unary operations—meaning that the result of applying the operation to its argument always differs from the argument. Results of tests conducted on the Mizar Mathematical Library are presented. Subjects Digital Libraries, Theory and Formal Methods, Programming Languages Keywords Formal verification, Mizar proof-assistant, Mizar Mathematical Library INTRODUCTION Classical mathematical papers consist of sequences of definitions and justified facts classified into several categories like: theorems, lemmas, corollaries, and so on, often interspersed with some examples and descriptions. Submitted 25 June 2020 Mathematical documents prepared using various proof-assistants (e.g., Isabelle (Isabelle, Accepted 29 October 2020 2020), HOL Light (HOL Light, 2020), Coq (Coq, 2020), Metamath (Metamath, 2020), Published 30 November 2020 Lean (Lean, 2020), and Mizar (Mizar, 2020)) can also contain other constructions that are Corresponding author Artur Korniªowicz, processable by dedicated software. -
Adolf Lindenbaum: Notes on His Life, with Bibliography and Selected References
CORE Metadata, citation and similar papers at core.ac.uk Provided by Springer - Publisher Connector Log. Univers. 8 (2014), 285–320 c 2014 The Author(s). This article is published with open access at Springerlink.com 1661-8297/14/030285-36, published online December 3, 2014 DOI 10.1007/s11787-014-0108-2 Logica Universalis Adolf Lindenbaum: Notes on his Life, with Bibliography and Selected References Jan Zygmunt and Robert Purdy Abstract. Notes on the life of Adolf Lindenbaum, a complete bibliography of his published works, and selected references to his unpublished results. Mathematics Subject Classification. 01A60, 01A70, 01A73, 03-03. Keywords. Adolf Lindenbaum, biography, bibliography, unpublished works. This paper is dedicated to Adolf Lindenbaum (1904–1941)—Polish- Jewish mathematician and logician; a member of the Warsaw school of mathe- matics under Waclaw Sierpi´nski and Stefan Mazurkiewicz and school of math- ematical logic under JanLukasiewicz and Stanislaw Le´sniewski;1 and Alfred Tarski’s closest collaborator of the inter-war period. Our paper is divided into three main parts. The first part is biograph- ical and narrative in character. It gathers together what little is known of Lindenbaum’s short life. The second part is a bibliography of Lindenbaum’s published output, including his public lectures. Our aim there is to be complete and definitive. The third part is a list of selected references in the literature attesting to his unpublished results2 and delineating their extent. Just to confuse things, we name the second and third parts of our paper, respectively, “Bibliography Part One” and “Bibliography Part Two”. Why, we no longer remember. -
Category Theory and Lambda Calculus
Category Theory and Lambda Calculus Mario Román García Trabajo Fin de Grado Doble Grado en Ingeniería Informática y Matemáticas Tutores Pedro A. García-Sánchez Manuel Bullejos Lorenzo Facultad de Ciencias E.T.S. Ingenierías Informática y de Telecomunicación Granada, a 18 de junio de 2018 Contents 1 Lambda calculus 13 1.1 Untyped λ-calculus . 13 1.1.1 Untyped λ-calculus . 14 1.1.2 Free and bound variables, substitution . 14 1.1.3 Alpha equivalence . 16 1.1.4 Beta reduction . 16 1.1.5 Eta reduction . 17 1.1.6 Confluence . 17 1.1.7 The Church-Rosser theorem . 18 1.1.8 Normalization . 20 1.1.9 Standardization and evaluation strategies . 21 1.1.10 SKI combinators . 22 1.1.11 Turing completeness . 24 1.2 Simply typed λ-calculus . 24 1.2.1 Simple types . 25 1.2.2 Typing rules for simply typed λ-calculus . 25 1.2.3 Curry-style types . 26 1.2.4 Unification and type inference . 27 1.2.5 Subject reduction and normalization . 29 1.3 The Curry-Howard correspondence . 31 1.3.1 Extending the simply typed λ-calculus . 31 1.3.2 Natural deduction . 32 1.3.3 Propositions as types . 34 1.4 Other type systems . 35 1.4.1 λ-cube..................................... 35 2 Mikrokosmos 38 2.1 Implementation of λ-expressions . 38 2.1.1 The Haskell programming language . 38 2.1.2 De Bruijn indexes . 40 2.1.3 Substitution . 41 2.1.4 De Bruijn-terms and λ-terms . 42 2.1.5 Evaluation . -
A Type and Scope Safe Universe of Syntaxes with Binding: Their Semantics and Proofs
ZU064-05-FPR jfp19 26 March 2020 16:6 Under consideration for publication in J. Functional Programming 1 A Type and Scope Safe Universe of Syntaxes with Binding: Their Semantics and Proofs GUILLAUME ALLAIS, ROBERT ATKEY University of Strathclyde (UK) JAMES CHAPMAN Input Output HK Ltd. (HK) CONOR MCBRIDE University of Strathclyde (UK) JAMES MCKINNA University of Edinburgh (UK) Abstract Almost every programming language’s syntax includes a notion of binder and corresponding bound occurrences, along with the accompanying notions of α-equivalence, capture-avoiding substitution, typing contexts, runtime environments, and so on. In the past, implementing and reasoning about programming languages required careful handling to maintain the correct behaviour of bound variables. Modern programming languages include features that enable constraints like scope safety to be expressed in types. Nevertheless, the programmer is still forced to write the same boilerplate over again for each new implementation of a scope safe operation (e.g., renaming, substitution, desugaring, printing, etc.), and then again for correctness proofs. We present1 an expressive universe of syntaxes with binding and demonstrate how to (1) implement scope safe traversals once and for all by generic programming; and (2) how to derive properties of these traversals by generic proving. Our universe description, generic traversals and proofs, and our examples have all been formalised in Agda and are available in the accompanying material available online at https://github.com/gallais/generic-syntax. 1 Introduction In modern typed programming languages, programmers writing embedded DSLs (Hudak (1996)) and researchers formalising them can now use the host language’s type system to help them. -
The Method of Proof Analysis: Background, Developments, New Directions
The Method of Proof Analysis: Background, Developments, New Directions Sara Negri University of Helsinki JAIST Spring School 2012 Kanazawa, March 5–9, 2012 Motivations and background Overview Hilbert-style systems Gentzen systems Axioms-as-rules Developments Proof-theoretic semantics for non-classical logics Basic modal logic Intuitionistic and intermediate logics Intermediate logics and modal embeddings Gödel-Löb provability logic Displayable logics First-order modal logic Transitive closure Completeness, correspondence, decidability New directions Social and epistemic logics Knowability logic References What is proof theory? “The main concern of proof theory is to study and analyze structures of proofs. A typical question in it is ‘what kind of proofs will a given formula A have, if it is provable?’, or ‘is there any standard proof of A?’. In proof theory, we want to derive some logical properties from the analysis of structures of proofs, by anticipating that these properties must be reflected in the structures of proofs. In most cases, the analysis will be based on combinatorial and constructive arguments. In this way, we can get sometimes much more information on the logical properties than with semantical methods, which will use set-theoretic notions like models,interpretations and validity.” (H. Ono, Proof-theoretic methods in nonclassical logic–an introduction, 1998) Challenges in modal and non-classical logics Difficulties in establishing analyticity and normalization/cut-elimination even for basic modal systems. Extension of proof-theoretic semantics to non-classical logic. Generality of model theory vs. goal directed developments in proof theory for non-classical logics. Proliferation of calculi “beyond Gentzen systems”. Defeatist attitudes: “No proof procedure suffices for every normal modal logic determined by a class of frames.” (M. -
Why Dependent Types Matter
Why Dependent Types Matter Thorsten Altenkirch Conor McBride James McKinna The University of Nottingham The University of St Andrews {txa,ctm}@cs.nott.ac.uk [email protected] Abstract We exhibit the rationale behind the design of Epigram, a dependently typed programming language and interactive program development system, using refinements of a well known program—merge sort—as a running example. We discuss its relationship with other proposals to introduce aspects of dependent types into functional programming languages and sketch some topics for further work in this area. 1. Introduction Types matter. That’s what they’re for—to classify data with respect to criteria which matter: how they should be stored in memory, whether they can be safely passed as inputs to a given operation, even who is allowed to see them. Dependent types are types expressed in terms of data, explicitly relating their inhabitants to that data. As such, they enable you to express more of what matters about data. While conventional type systems allow us to validate our programs with respect to a fixed set of criteria, dependent types are much more flexible, they realize a continuum of precision from the basic assertions we are used to expect from types up to a complete specification of the program’s behaviour. It is the programmer’s choice to what degree he wants to exploit the expressiveness of such a powerful type discipline. While the price for formally certified software may be high, it is good to know that we can pay it in installments and that we are free to decide how far we want to go.