Interactive Theorem Proving in Higher-Order Logics
|
|
- Emerald Lloyd
- 5 years ago
- Views:
Transcription
1 Interactive Theorem Proving in Higher-Order Logics Partly based on material by Mike Gordon, Tobias Nipkow, and Andrew Pitts Jasmin Blanchette
2 Automatic Interactive
3 What are proof assistants? Proof assistants (or interactive theorem provers) are programs with a graphical user interface designed for proving logical formulas. The logical formulas may represent mathematical theorems but also the correctness of hardware or software. Proof assistants help catch almost all flaws in pen-andpaper proofs, but they are tedious to use.
4 What are they based on? Different proof assistants are based on different logics. Some logics are more expressive (flexible) than others; others are easier to automate. less expressive easier to automate First-Order Logic Higher-Order Logic more expressive harder to automate Set Theory Type Theory
5 Why should we trust them? Some proof assistants are designed around a small inference kernel, with simple logical primitives. Some generate detailed proof objects, which can be rechecked independently by small programs. And some just have to be trusted.
6 What are the main systems? Small kernel Proof objects First-Order Logic ACL2 x x Higher-Order Logic HOL4 HOL Light Isabelle/HOL PVS x x x ( x ) x ( x ) x ( x ) Set Theory Isabelle/ZF Mizar x ( x ) x x Type Theory Agda Coq Lean Matita x x ( x ) x x x x x
7 Are proof assistants toys? Mathematics Hardware Software Programming languages Four-color theorem Feit-Thompson theorem Kepler conjecture AMD Intel Compiler Operating system Program semantics courses POPL conference Coq Coq HOL Light & Isabelle/HOL ACL2 HOL Light Coq Isabelle/HOL Coq & Isabelle/HOL Coq & Agda
8 Are proof assistants toys? Automated reasoning Completeness of FOL SAT proof checkers SAT solver with 2WL Resolution Superposition Coq, Isabelle/HOL, Mizar,... ACL2, Coq, Isabelle/HOL Isabelle/HOL Isabelle/HOL Isabelle/HOL
9 What do proofs look like? Tactical proofs apply tactics to the proof goal to produce a new proof goal, proceeding in a backward fashion. Declarative proofs state intermediate properties, proceeding in a forward fashion.
10 What do proofs look like? Let us prove A and B implies B and A using tactics. Goal:ss A and B implies B and A Tactic:s rule and-left Goal: ss A, B implies B and A Tactic:s rule and-right Goals:s A, B implies B and A, B implies A Tactics: rule implies-trivial rule implies-trivial No goals left
11 What do proofs look like? Let us prove A and B implies B and A declaratively. proof assume A and B from A and B have A by (rule and-get-left) from A and B have B by (rule and-get-right) from B, A show B and A by (rule and-right) qed
12 Can proofs be automated? Most proof assistants offer a variety of general and specialized automatic tactics. The Simplifier rewrites by applying equations left-to-right; e.g. the equation x + 0 = x can be used to simplify the goal < 3 to 2 < 3. The Arithmetic Procedure can prove formulas involving linear arithmetic, e.g. 2 < 3, k > n or k = 0 or [k n and k 0]. The General Reasoner performs a systematic, bounded proof search, applying rules like and-left and and-right.
13 Can proofs be automated? In addition, automatic theorem provers can be invoked via tools such as Sledgehammer for Isabelle/HOL and HOLyHammer for HOL Light and HOL4. These provers perform a systematic search in first-order logic and are designed to be very efficient. There are also integrations of computer algebra systems.
14 Does there exist a function f from reals to reals such that for all x and y, f(x + y 2 ) f(x) y? let lemma = prove (`!f:real->real. ~(!x y. f(x + y * y) - f(x) >= y)`, REWRITE_TAC[real_ge] THEN REPEAT STRIP_TAC THEN SUBGOAL_THEN `!n x y. &n * y <= f(x + &n * y * y) - f(x)` MP_TAC THENL [MATCH_MP_TAC num_induction THEN SIMP_TAC[REAL_MUL_LZERO; REAL_ADD_RID] THEN REWRITE_TAC[REAL_SUB_REFL; REAL_LE_REFL; GSYM REAL_OF_NUM_SUC] THEN GEN_TAC THEN REPEAT(MATCH_MP_TAC MONO_FORALL THEN GEN_TAC) THEN FIRST_X_ASSUM(MP_TAC o SPECL [`x + &n * y * y`; `y:real`]) THEN SIMP_TAC[REAL_ADD_ASSOC; REAL_ADD_RDISTRIB; REAL_MUL_LID] THEN REAL_ARITH_TAC; X_CHOOSE_TAC `m:num` (SPEC `f(&1) - f(&0):real` REAL_ARCH_SIMPLE) THEN DISCH_THEN(MP_TAC o SPECL [`SUC m EXP 2`; `&0`; `inv(&(suc m))`]) THEN REWRITE_TAC[REAL_ADD_LID; GSYM REAL_OF_NUM_SUC; GSYM REAL_OF_NUM_POW] THEN REWRITE_TAC[REAL_FIELD `(&m + &1) pow 2 * inv(&m + &1) = &m + &1`; REAL_FIELD `(&m + &1) pow 2 * inv(&m + &1) * inv(&m + &1) = &1`] THEN ASM_REAL_ARITH_TAC]);; John Harrison
15 Does there exist a function f from reals to reals such that for all x and y, f(x + y 2 ) f(x) y? [1] f(x + y 2 ) f(x) y for any x and y (given) [2] f(x + n y 2 ) f(x) n y for any x, y, and natural number n (by an easy induction using [1] for the step case) [3] f(1) f(0) m + 1 for any natural number m (set n = (m + 1) 2, x = 0, y = 1/(m + 1) in [2]) [4] Contradiction of [3] and the Archimedean property of the reals John Harrison
16 intermediate properties manual generated automatically
17
18
19
20
21
22 Proof assistants Automatic provers = Isabelle Isabelle vs. Vampire well suited for large formalizations but require intensive manual labor Sledgehammer fully automatic but no proof management
23 superposition select lemmas + translate to FOL = Isabelle HOL reconstruct proof SMT
24 superposition SMT refutational resolution rule term ordering equality reasoning redundancy criterion E, SPASS, Vampire, refutational SAT solver + congruence closure + quantifier instantiation + other theories (e.g. LIA, LRA) CVC4, verit, Yices, Z3,
25 How many hammers are there? pre-sledgehammer Otter in ACL2 Bliksem in Coq Gandalf in HOL98 DISCOUNT, SPASS, etc., in ILF Otter, SPASS, etc., in KIV LEO, SPASS, etc., in ΩMEGA E, Vampire, etc., in Naproche... post-sledgehammer HOLyHammer for HOLs MizAR for Mizar SMTCoq/CVC4Coq for Coq SMT integration in TLAPS...
26 Developing proofs without Sledgehammer is like walking as opposed to running. Tobias Nipkow Larry Paulson I have recently been working on a new development. Sledgehammer has found some simply incredible proofs. I would estimate the improvement in productivity as a factor of at least three, maybe five. Sledgehammers have led to visible success. Fully automated procedures can prove 47% of the HOL Light/Flyspeck libraries, with comparable rates in Isabelle. These automation rates represent an enormous saving in human labor. Thomas Hales
27 productivity teaching revolution: Isar + auto + induct + Sledgehammer lemma search higher-order (induction) other logical mismatches too much search, not enough computation/intuition end-game/transparency what about nontheorems?
28 What if the formula is wrong? Counterexample generators automatically test the goal with different values. They are useful to detect errors early, whether they are in the formula to prove or in the concepts on which it builds. lemma i j and n m implies in + jm im + jn nitpick Counterexample: i = n = 0 and j = m = 1
29
30 Under the hood HOL FORL SAT Isabelle Nitpick.Kodkod...SAT solver
31 = Isabelle HOL
32 What is HOL? HOL = higher-order logic = Church s simple theory of types + polymorphism = logic of Gordon s HOL88 and successors = logic of HOL Light, HOL Zero, ProofPower HOL = logic of PVS (+ dependent types) = logic of Isabelle/HOL (+ type classes)
33 Syntax of types ::= ( ) bool nat int... base types 0 a 0 b... type variables ) functions pairs (ASCII: *) list lists set sets... user-defined types Convention: 1 ) 2 ) 3 1 ) ( 2 ) 3 ) 33
34 Syntax of terms t ::= (t) a constant or variable (identifier) tt function application x. t function abstraction... lots of syntactic sugar Convention: ft 1 t 2 t 3 ((f t 1 ) t 2 ) t 3 34
35 Isabelle s metalogic V V The HOL types and terms are part of the metalogic. Alpha-, beta-, eta-equivalence is built-in: V (lx. t[x]) (ly. t[y]) a (lx. t[x]) u t[u] b t s t (lx s. tx) h 35
36 Notations Implication and function arrows associate to the right: a b c means a (b c) The rule format is sometimes used instead of, e.g.: a c b 36
37 Typing rules Terms must be well typed (the argument of every function call must be of the right type). ` x s : s ` c s : s ` t : t ` t : s! t ` u : s ` lx s. t : s! t ` tu: t 37
38 Type inference Isabelle computes types of variables (and polymorphic constants) automatically. In the presence of overloaded functions, this is not always possible. Users can provide type annotations inside the terms: e.g. f (x :: nat) 38
39 Currying "Thou shalt curry thy functions." Curried: f :: 1 ) 2 ) Tupled: f 0 :: 1 2 ) Currying allows partial applications: e.g. (op +) 1 39
40 Metalogical propositions Propositions have type prop (intuitionistic). Built-in operators: =) prop prop prop implication V (a prop) prop universal quantification a a prop equality V 40
41 The HOL object logic Propositions have type bool (classical). The familiar operators are defined on bool (False, True, =,,,,,,, ). is syntactic sugar for =. Trueprop is a special implicit constant that converts a bool to a prop. e.g. a b c is really Trueprop (a b) Trueprop c 41
42 Predefined syntactic sugar Infix: +,,, Mixfix: if then else, case of,... Prefix binds more strongly than infix: Prefix binds more strongly than infix: fx+ y (f x)+y 6 f (x + y) Enclose if and case in parentheses: (if then else ) 42
43 Theory = Isabelle file theory MyTh imports T 1...T n begin (definitions, theorems, proofs,...) end Types and terms must be enclosed in quotes ("), except for single identifiers. 43
44 Extensions Definitional New types are carved out of an old type. New constants are defined in terms of old ones. Axiomatic Locales New types are declared and characterized by axioms. New constants are introduced by axioms. Parameterized by types, terms, and assumptions. Assumptions discharged upon instantiation. 44
45 Definitional Type Constructors typedef a dlists = {xs : a list distinct xs} (co)datatype, quotient_type are built on typedef (Term) Constants definition id :: a => a where id x = x (co)inductive, fun, prim(co)rec, corec, lift_definition are built on definition
46 Axiomatic Type Constructors typedecl a dlist (Term) Constants axiomatization Abs_dlist :: a list => a dlist and Rep_dlist :: a dlist => a list where Abs_Rep: distinct xs ==> Rep (Abs xs) = xs
47 Locales They combine type parameters term parameters assumptions. locale semigroup = fixes f :: a => a => a (infixl "*" 70) assumes assoc: a * b * c = a * (b * c) begin end They are not part of Isabelle s kernel.
48 Proof styles Tactical (apply-style) Tactics directly modify the proof state. Backward: reduction of goal to True. Declarative (Isar-style) Textual, linearized natural deduction. Forward: intermediate steps towards final goal. 48
49 Apply-style proofs apply method apply (method arg1 argn) by method done Main methods: simp auto blast metis arith rule Also: try0 and try tools 49
50 Isar-style proofs proof method [or -] fix x 1 x n assume A 1 A n have P 1 by (method ) have P k by (method ) show Q by (method ) qed Instead of by: nested proof block. Instead of have: obtain y 1 y m where P. 50
51 Extensional equality is axiomatized, the other logical constants are definable. True := ((λx. x) = (λx. x)) All := (λp. P = (λx. True)) x. P x : All (λx. P x)
52 Demo
53 In conclusion Proof assistants are wonderful and dreadful. In some areas (esp. of computer science), they are more wonderful than dreadful. (And they are very addictive.) They can serve as the glue between automatic theorem provers, computer algebra systems, and the human. Exhortation: Try them out, and see for yourself if they make sense for your research.
Isabelle/HOL:Selected Features and Recent Improvements
/: Selected Features and Recent Improvements webertj@in.tum.de Security of Systems Group, Radboud University Nijmegen February 20, 2007 /:Selected Features and Recent Improvements 1 2 Logic User Interface
More informationOverview. A Compact Introduction to Isabelle/HOL. Tobias Nipkow. System Architecture. Overview of Isabelle/HOL
Overview A Compact Introduction to Isabelle/HOL Tobias Nipkow TU München 1. Introduction 2. Datatypes 3. Logic 4. Sets p.1 p.2 System Architecture Overview of Isabelle/HOL ProofGeneral Isabelle/HOL Isabelle
More informationAutomatic Proof and Disproof in Isabelle/HOL
Automatic Proof and Disproof in Isabelle/HOL Jasmin Blanchette, Lukas Bulwahn, Tobias Nipkow Fakultät für Informatik TU München 1 Introduction 2 Isabelle s Standard Proof Methods 3 Sledgehammer 4 Quickcheck:
More informationLost in translation. Leonardo de Moura Microsoft Research. how easy problems become hard due to bad encodings. Vampire Workshop 2015
Lost in translation how easy problems become hard due to bad encodings Vampire Workshop 2015 Leonardo de Moura Microsoft Research I wanted to give the following talk http://leanprover.github.io/ Automated
More informationIntegration of SMT Solvers with ITPs There and Back Again
Integration of SMT Solvers with ITPs There and Back Again Sascha Böhme and University of Sheffield 7 May 2010 1 2 Features: SMT-LIB vs. Yices Translation Techniques Caveats 3 4 Motivation Motivation System
More informationCoq, a formal proof development environment combining logic and programming. Hugo Herbelin
Coq, a formal proof development environment combining logic and programming Hugo Herbelin 1 Coq in a nutshell (http://coq.inria.fr) A logical formalism that embeds an executable typed programming language:
More informationIsabelle Tutorial: System, HOL and Proofs
Isabelle Tutorial: System, HOL and Proofs Burkhart Wolff Université Paris-Sud What we will talk about What we will talk about Isabelle with: Brief Revision Advanced Automated Proof Techniques Structured
More informationIntroduction to dependent types in Coq
October 24, 2008 basic use of the Coq system In Coq, you can play with simple values and functions. The basic command is called Check, to verify if an expression is well-formed and learn what is its type.
More informationOn Agda JAIST/AIST WS CVS/AIST Yoshiki Kinoshita, Yoriyuki Yamagata. Agenda
On Agda 2009.3.12 JAIST/AIST WS CVS/AIST Yoshiki Kinoshita, Yoriyuki Yamagata Agenda On Agda Agda as a programming language Agda as a proof system Further information. 2 1 Agenda On Agda Agda as a programming
More informationtype classes & locales
Content Rough timeline Intro & motivation, getting started [1] COMP 4161 NICTA Advanced Course Advanced Topics in Software Verification Gerwin Klein, June Andronick, Toby Murray type classes & locales
More informationProgramming and Proving in
Programming and Proving in = λ β Isabelle HOL α Tobias Nipkow Fakultät für Informatik Technische Universität München 1 Notation Implication associates to the right: A = B = C means A = (B = C) Similarly
More informationTheorem Proving Principles, Techniques, Applications Recursion
NICTA Advanced Course Theorem Proving Principles, Techniques, Applications Recursion 1 CONTENT Intro & motivation, getting started with Isabelle Foundations & Principles Lambda Calculus Higher Order Logic,
More informationFunctional Programming and Modeling
Chapter 2 2. Functional Programming and Modeling 2.0 2. Functional Programming and Modeling 2.0 Overview of Chapter Functional Programming and Modeling 2. Functional Programming and Modeling 2.1 Overview
More informationHOL DEFINING HIGHER ORDER LOGIC LAST TIME ON HOL CONTENT. Slide 3. Slide 1. Slide 4. Slide 2 WHAT IS HIGHER ORDER LOGIC? 2 LAST TIME ON HOL 1
LAST TIME ON HOL Proof rules for propositional and predicate logic Safe and unsafe rules NICTA Advanced Course Forward Proof Slide 1 Theorem Proving Principles, Techniques, Applications Slide 3 The Epsilon
More informationCOMP 4161 Data61 Advanced Course. Advanced Topics in Software Verification. Gerwin Klein, June Andronick, Christine Rizkallah, Miki Tanaka
COMP 4161 Data61 Advanced Course Advanced Topics in Software Verification Gerwin Klein, June Andronick, Christine Rizkallah, Miki Tanaka 1 COMP4161 c Data61, CSIRO: provided under Creative Commons Attribution
More informationPrograms and Proofs in Isabelle/HOL
Programs and Proofs in Isabelle/HOL Makarius Wenzel http://sketis.net March 2016 = Isabelle λ β α Introduction What is Isabelle? Hanabusa Itcho : Blind monks examining an elephant Introduction 2 History:
More informationSpecification, Verification, and Interactive Proof
Specification, Verification, and Interactive Proof SRI International May 23, 2016 PVS PVS - Prototype Verification System PVS is a verification system combining language expressiveness with automated tools.
More informationBasic Foundations of Isabelle/HOL
Basic Foundations of Isabelle/HOL Peter Wullinger May 16th 2007 1 / 29 1 Introduction into Isabelle s HOL Why Type Theory Basic Type Syntax 2 More HOL Typed λ Calculus HOL Rules 3 Example proof 2 / 29
More informationOrganisatorials. About us. Binary Search (java.util.arrays) When Tue 9:00 10:30 Thu 9:00 10:30. COMP 4161 NICTA Advanced Course
Organisatorials COMP 4161 NICTA Advanced Course When Tue 9:00 10:30 Thu 9:00 10:30 Where Tue: Law 163 (F8-163) Thu: Australian School Business 205 (E12-205) Advanced Topics in Software Verification Rafal
More informationTheorem proving. PVS theorem prover. Hoare style verification PVS. More on embeddings. What if. Abhik Roychoudhury CS 6214
Theorem proving PVS theorem prover Abhik Roychoudhury National University of Singapore Both specification and implementation can be formalized in a suitable logic. Proof rules for proving statements in
More informationStatic and User-Extensible Proof Checking. Antonis Stampoulis Zhong Shao Yale University POPL 2012
Static and User-Extensible Proof Checking Antonis Stampoulis Zhong Shao Yale University POPL 2012 Proof assistants are becoming popular in our community CompCert [Leroy et al.] sel4 [Klein et al.] Four-color
More informationFirst Order Logic in Practice 1 First Order Logic in Practice John Harrison University of Cambridge Background: int
First Order Logic in Practice 1 First Order Logic in Practice John Harrison University of Cambridge http://www.cl.cam.ac.uk/users/jrh/ Background: interaction and automation Why do we need rst order automation?
More informationEmbedding logics in Dedukti
1 INRIA, 2 Ecole Polytechnique, 3 ENSIIE/Cedric Embedding logics in Dedukti Ali Assaf 12, Guillaume Burel 3 April 12, 2013 Ali Assaf, Guillaume Burel: Embedding logics in Dedukti, 1 Outline Introduction
More informationFormally Certified Satisfiability Solving
SAT/SMT Proof Checking Verifying SAT Solver Code Future Work Computer Science, The University of Iowa, USA April 23, 2012 Seoul National University SAT/SMT Proof Checking Verifying SAT Solver Code Future
More informationFrom Types to Sets in Isabelle/HOL
From Types to Sets in Isabelle/HOL Extented Abstract Ondřej Kunčar 1 and Andrei Popescu 1,2 1 Fakultät für Informatik, Technische Universität München, Germany 2 Institute of Mathematics Simion Stoilow
More informationFunctional Programming with Isabelle/HOL
Functional Programming with Isabelle/HOL = Isabelle λ β HOL α Florian Haftmann Technische Universität München January 2009 Overview Viewing Isabelle/HOL as a functional programming language: 1. Isabelle/HOL
More informationFirst-Class Type Classes
First-Class Type Classes Matthieu Sozeau Joint work with Nicolas Oury LRI, Univ. Paris-Sud - Démons Team & INRIA Saclay - ProVal Project Gallium Seminar November 3rd 2008 INRIA Rocquencourt Solutions for
More informationc constructor P, Q terms used as propositions G, H hypotheses scope identifier for a notation scope M, module identifiers t, u arbitrary terms
Coq quick reference Meta variables Usage Meta variables Usage c constructor P, Q terms used as propositions db identifier for a hint database s string G, H hypotheses scope identifier for a notation scope
More informationCoq quick reference. Category Example Description. Inductive type with instances defined by constructors, including y of type Y. Inductive X : Univ :=
Coq quick reference Category Example Description Meta variables Usage Meta variables Usage c constructor P, Q terms used as propositions db identifier for a hint database s string G, H hypotheses scope
More informationBuilt-in Module BOOL. Lecture Note 01a
Built-in Module BOOL Lecture Note 01a Topics! Built-in Boolean Algebra module BOOL and the equivalence of two boolean expressions (or SAT problems)! Study important concepts about CafeOBJ system through
More information3.4 Deduction and Evaluation: Tools Conditional-Equational Logic
3.4 Deduction and Evaluation: Tools 3.4.1 Conditional-Equational Logic The general definition of a formal specification from above was based on the existence of a precisely defined semantics for the syntax
More informationAutomated Theorem Proving in a First-Order Logic with First Class Boolean Sort
Thesis for the Degree of Licentiate of Engineering Automated Theorem Proving in a First-Order Logic with First Class Boolean Sort Evgenii Kotelnikov Department of Computer Science and Engineering Chalmers
More informationProvably Correct Software
Provably Correct Software Max Schäfer Institute of Information Science/Academia Sinica September 17, 2007 1 / 48 The Need for Provably Correct Software BUT bugs are annoying, embarrassing, and cost gazillions
More informationComputing Fundamentals 2 Introduction to CafeOBJ
Computing Fundamentals 2 Introduction to CafeOBJ Lecturer: Patrick Browne Lecture Room: K408 Lab Room: A308 Based on work by: Nakamura Masaki, João Pascoal Faria, Prof. Heinrich Hußmann. See notes on slides
More informationVerification of an LCF-Style First-Order Prover with Equality
Verification of an LCF-Style First-Order Prover with Equality Alexander Birch Jensen, Anders Schlichtkrull, and Jørgen Villadsen DTU Compute, Technical University of Denmark, 2800 Kongens Lyngby, Denmark
More informationProgramming and Proving in Isabelle/HOL
Programming and Proving in Isabelle/HOL Tobias Nipkow Fakultät für Informatik Technische Universität München 2013 MOD Summer School 1 Notation Implication associates to the right: A = B = C means A = (B
More informationMathematics for Computer Scientists 2 (G52MC2)
Mathematics for Computer Scientists 2 (G52MC2) L07 : Operations on sets School of Computer Science University of Nottingham October 29, 2009 Enumerations We construct finite sets by enumerating a list
More informationIsabelle s meta-logic. p.1
Isabelle s meta-logic p.1 Basic constructs Implication = (==>) For separating premises and conclusion of theorems p.2 Basic constructs Implication = (==>) For separating premises and conclusion of theorems
More informationConcrete Semantics. A Proof Assistant Approach. Tobias Nipkow Fakultät für Informatik Technische Universität München
Concrete Semantics A Proof Assistant Approach Tobias Nipkow Fakultät für Informatik Technische Universität München 2014-1-26 1 Part I Isabelle 2 Chapter 2 Programming and Proving 3 1 Overview of Isabelle/HOL
More informationWhy3 where programs meet provers
Why3 where programs meet provers Jean-Christophe Filliâtre CNRS KeY Symposium 2017 Rastatt, Germany October 5, 2017 history started in 2001, as an intermediate language in the process of verifying C and
More informationAdam Chlipala University of California, Berkeley ICFP 2006
Modular Development of Certified Program Verifiers with a Proof Assistant Adam Chlipala University of California, Berkeley ICFP 2006 1 Who Watches the Watcher? Program Verifier Might want to ensure: Memory
More informationAutomated Discovery of Conditional Lemmas in Hipster!
! Automated Discovery of Conditional Lemmas in Hipster!! Master of Science Thesis in Computer Science (Algorithms, Languages and Logic)!! IRENE LOBO VALBUENA! Chalmers University of Technology University
More informationProgramming and Proving in Isabelle/HOL
Tobias Nipkow Programming and Proving in Isabelle/HOL = Isabelle λ β α February 12, 2013 Contents 1 Introduction 1 2 Programming and Proving 3 21 Basics 3 22 Types bool, nat and list 5 23 Type and function
More informationFormal Verification in Industry
Formal Verification in Industry 1 Formal Verification in Industry John Harrison Intel Corporation The cost of bugs Formal verification Machine-checked proof Automatic and interactive approaches HOL Light
More informationRockwell Collins Evolving FM Methodology
Rockwell Collins Evolving FM Methodology Konrad Slind Trusted Systems Group Rockwell Collins January 25, 2014 Collaborators Rockwell Collins: Andrew Gacek, David Hardin, Darren Cofer, John Backes, Luas
More informationLogical Verification Course Notes. Femke van Raamsdonk Vrije Universiteit Amsterdam
Logical Verification Course Notes Femke van Raamsdonk femke@csvunl Vrije Universiteit Amsterdam autumn 2008 Contents 1 1st-order propositional logic 3 11 Formulas 3 12 Natural deduction for intuitionistic
More informationDeductive Program Verification with Why3, Past and Future
Deductive Program Verification with Why3, Past and Future Claude Marché ProofInUse Kick-Off Day February 2nd, 2015 A bit of history 1999: Jean-Christophe Filliâtre s PhD Thesis Proof of imperative programs,
More informationHigher-Order Logic. Specification and Verification with Higher-Order Logic
Higher-Order Logic Specification and Verification with Higher-Order Logic Arnd Poetzsch-Heffter (Slides by Jens Brandt) Software Technology Group Fachbereich Informatik Technische Universität Kaiserslautern
More informationThe Isabelle/Isar Reference Manual
= Isabelle λ β Isar α The Isabelle/Isar Reference Manual Makarius Wenzel With Contributions by Clemens Ballarin, Stefan Berghofer, Jasmin Blanchette, Timothy Bourke, Lukas Bulwahn, Amine Chaieb, Lucas
More informationCMSC 330: Organization of Programming Languages. Formal Semantics of a Prog. Lang. Specifying Syntax, Semantics
Recall Architecture of Compilers, Interpreters CMSC 330: Organization of Programming Languages Source Scanner Parser Static Analyzer Operational Semantics Intermediate Representation Front End Back End
More informationPROGRAMMING IN HASKELL. Chapter 2 - First Steps
PROGRAMMING IN HASKELL Chapter 2 - First Steps 0 The Hugs System Hugs is an implementation of Haskell 98, and is the most widely used Haskell system; The interactive nature of Hugs makes it well suited
More informationProgramming Languages Third Edition
Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand
More informationPreuves Interactives et Applications
Preuves Interactives et Applications Christine Paulin & Burkhart Wolff http://www.lri.fr/ paulin/preuvesinteractives Université Paris-Saclay HOL and its Specification Constructs 10/12/16 B. Wolff - M2
More informationDeductive Program Verification with Why3
Deductive Program Verification with Why3 Jean-Christophe Filliâtre CNRS Mathematical Structures of Computation Formal Proof, Symbolic Computation and Computer Arithmetic Lyon, February 2014 definition
More informationCoq with Classes. Matthieu Sozeau. Journées PPS 2011 September 5th 2011 Trouville, France. Project Team πr 2 INRIA Paris
Coq with Classes Matthieu Sozeau Project Team πr 2 INRIA Paris Journées PPS 2011 September 5th 2011 Trouville, France This talk A quick overview of Coq Elaboration Type Classes Matthieu Sozeau - Coq with
More informationarxiv: v1 [cs.lo] 11 Nov 2010
Verifying Safety Properties With the TLA + Proof System Kaustuv Chaudhuri 1, Damien Doligez 2, Leslie Lamport 3, and Stephan Merz 4 arxiv:1011.2560v1 [cs.lo] 11 Nov 2010 1 Overview 1 INRIA Saclay, France,kaustuv.chaudhuri@inria.fr
More informationA Verified SAT Solver Framework with Learn, Forget, Restart, and Incrementality
J. Autom. Reasoning manuscript No. (will be inserted by the editor) A Verified SAT Solver Framework with Learn, Forget, Restart, and Incrementality Jasmin Christian Blanchette Mathias Fleury Peter Lammich
More informationThe design of a programming language for provably correct programs: success and failure
The design of a programming language for provably correct programs: success and failure Don Sannella Laboratory for Foundations of Computer Science School of Informatics, University of Edinburgh http://homepages.inf.ed.ac.uk/dts
More informationProbabilistic Parsing of Mathematics
Probabilistic Parsing of Mathematics Jiří Vyskočil Josef Urban Czech Technical University in Prague, Czech Republic Cezary Kaliszyk University of Innsbruck, Austria Outline Why and why not current formal
More informationIntroduction to OCaml
Fall 2018 Introduction to OCaml Yu Zhang Course web site: http://staff.ustc.edu.cn/~yuzhang/tpl References Learn X in Y Minutes Ocaml Real World OCaml Cornell CS 3110 Spring 2018 Data Structures and Functional
More informationAn LCF-Style Interface between HOL and First-Order Logic
An LCF-Style Interface between HOL and First-Order Logic Joe Hurd Computer Laboratory University of Cambridge, joe.hurd@cl.cam.ac.uk 1 Introduction Performing interactive proof in the HOL theorem prover
More informationIsabelle Primer for Mathematicians
Isabelle Primer for Mathematicians B. Grechuk Abstract This is a quick introduction to the Isabelle/HOL proof assistant, aimed at mathematicians who would like to use it for the formalization of mathematical
More informationProgramming and Proving in Isabelle/HOL
Tobias Nipkow Programming and Proving in Isabelle/HOL = Isabelle λ β HOL α October 8, 2017 Contents 1 Introduction............................................... 1 2 Programming and Proving.................................
More informationFormal Systems and their Applications
Formal Systems and their Applications Dave Clarke (Dave.Clarke@cs.kuleuven.be) Acknowledgment: these slides are based in part on slides from Benjamin Pierce and Frank Piessens 1 Course Overview Introduction
More informationPropositional Logic Formal Syntax and Semantics. Computability and Logic
Propositional Logic Formal Syntax and Semantics Computability and Logic Syntax and Semantics Syntax: The study of how expressions are structured (think: grammar) Semantics: The study of the relationship
More informationCS152: Programming Languages. Lecture 11 STLC Extensions and Related Topics. Dan Grossman Spring 2011
CS152: Programming Languages Lecture 11 STLC Extensions and Related Topics Dan Grossman Spring 2011 Review e ::= λx. e x e e c v ::= λx. e c τ ::= int τ τ Γ ::= Γ, x : τ (λx. e) v e[v/x] e 1 e 1 e 1 e
More informationInductive Definitions, continued
1 / 27 Inductive Definitions, continued Assia Mahboubi Jan 7th, 2016 2 / 27 Last lecture Introduction to Coq s inductive types: Introduction, elimination and computation rules; Twofold implementation :
More informationA Case Study of Co-induction in Isabelle 1
A Case Study of Co-induction in Isabelle 1 Jacob Frost Computer Laboratory University of Cambridge e-mail:jacob.frost@cl.cam.ac.uk February 1995 1 Supported by ESPRIT Basic Research Project 6453, Types
More informationλ calculus is inconsistent
Content Rough timeline COMP 4161 NICTA Advanced Course Advanced Topics in Software Verification Gerwin Klein, June Andronick, Toby Murray λ Intro & motivation, getting started [1] Foundations & Principles
More informationPartiality and Recursion in Interactive Theorem Provers - An Overview
Partiality and Recursion in Interactive Theorem Provers - An Overview Ana Bove, Alexander Krauss, Matthieu Sozeau To cite this version: Ana Bove, Alexander Krauss, Matthieu Sozeau. Partiality and Recursion
More informationWhy. an intermediate language for deductive program verification
Why an intermediate language for deductive program verification Jean-Christophe Filliâtre CNRS Orsay, France AFM workshop Grenoble, June 27, 2009 Jean-Christophe Filliâtre Why tutorial AFM 09 1 / 56 Motivations
More informationDatatype declarations
Datatype declarations datatype suit = HEARTS DIAMONDS CLUBS SPADES datatype a list = nil (* copy me NOT! *) op :: of a * a list datatype a heap = EHEAP HEAP of a * a heap * a heap type suit val HEARTS
More informationNumerical Computations and Formal Methods
Program verification Formal arithmetic Decision procedures Proval, Laboratoire de Recherche en Informatique INRIA Saclay IdF, Université Paris Sud, CNRS October 28, 2009 Program verification Formal arithmetic
More informationThe Lean Theorem Prover (system description)
The Lean Theorem Prover (system description) Leonardo de Moura 1, Soonho Kong 2, Jeremy Avigad 2, Floris van Doorn 2 and Jakob von Raumer 2* 1 Microsoft Research leonardo@microsoft.com 2 Carnegie Mellon
More informationTypes Summer School Gothenburg Sweden August Dogma oftype Theory. Everything has a type
Types Summer School Gothenburg Sweden August 2005 Formalising Mathematics in Type Theory Herman Geuvers Radboud University Nijmegen, NL Dogma oftype Theory Everything has a type M:A Types are a bit like
More informationCOMP 4161 NICTA Advanced Course. Advanced Topics in Software Verification. Toby Murray, June Andronick, Gerwin Klein
COMP 4161 NICTA Advanced Course Advanced Topics in Software Verification Toby Murray, June Andronick, Gerwin Klein λ 1 Last time... λ calculus syntax free variables, substitution β reduction α and η conversion
More informationInductive datatypes in HOL. lessons learned in Formal-Logic Engineering
Inductive datatypes in HOL lessons learned in Formal-Logic Engineering Stefan Berghofer and Markus Wenzel Institut für Informatik TU München = Isabelle λ β HOL α 1 Introduction Applications of inductive
More informationPRocH: Proof Reconstruction for HOL Light
PRocH: Proof Reconstruction for HOL Light Cezary Kaliszyk and Josef Urban 1 University of Innsbruck, Austria 2 Radboud University Nijmegen Abstract. PRocH 3 is a proof reconstruction tool that imports
More informationA Verified Compiler from Isabelle/HOL to CakeML
A Verified Compiler from Isabelle/HOL to CakeML Lars Hupel and Tobias Nipkow Technische Universität München lars.hupel@tum.de, nipkow@in.tum.de Abstract. Many theorem provers can generate functional programs
More informationAn Introduction to Programming and Proving in Agda (incomplete draft)
An Introduction to Programming and Proving in Agda (incomplete draft) Peter Dybjer January 29, 2018 1 A first Agda module Your first Agda-file is called BoolModule.agda. Its contents are module BoolModule
More informationIntroduction to Co-Induction in Coq
August 2005 Motivation Reason about infinite data-structures, Reason about lazy computation strategies, Reason about infinite processes, abstracting away from dates. Finite state automata, Temporal logic,
More informationFormal proofs and certified computation in Coq
Formal proofs and certified computation in Coq Érik Martin-Dorel http://erik.martin-dorel.org Équipe ACADIE, Laboratoire IRIT Université Toulouse III - Paul Sabatier French Symposium on Games 26 30 May
More informationSMT-LIB for HOL. Daniel Kroening Philipp Rümmer Georg Weissenbacher Oxford University Computing Laboratory. ITP Workshop MSR Cambridge 25 August 2009
1 / 13 SMT-LIB for HOL Daniel Kroening Philipp Rümmer Georg Weissenbacher Oxford University Computing Laboratory ITP Workshop MSR Cambridge 25 August 2009 2 / 13 The SMT-LIB Standard SMT Satisfiability
More informationThe Isar Proof Language in 2016
The Isar Proof Language in 2016 Makarius Wenzel sketis.net August 2016 = Isabelle λ β Isar α Introduction History of Isar 1999: first usable version primary notion of proof document (not proof script )
More informationMeta programming on the proof level
Acta Univ. Sapientiae, Informatica, 1, 1 (2009) 15 34 Meta programming on the proof level Gergely Dévai Eötvös Loránd University, Faculty of Informatics, Department of Programming Languages and Compilers
More informationAppendix G: Some questions concerning the representation of theorems
Appendix G: Some questions concerning the representation of theorems Specific discussion points 1. What should the meta-structure to represent mathematics, in which theorems naturally fall, be? There obviously
More informationLambda Calculus and Type Inference
Lambda Calculus and Type Inference Björn Lisper Dept. of Computer Science and Engineering Mälardalen University bjorn.lisper@mdh.se http://www.idt.mdh.se/ blr/ October 13, 2004 Lambda Calculus and Type
More informationContext aware Calculation and Deduction
Context aware Calculation and Deduction Ring Equalities via Gröbner Bases in Isabelle Amine Chaieb and Makarius Wenzel Technische Universität München Institut für Informatik, Boltzmannstraße 3, 85748 Garching,
More informationSOFTWARE VERIFICATION AND COMPUTER PROOF (lesson 1) Enrico Tassi Inria Sophia-Antipolis
SOFTWARE VERIFICATION AND COMPUTER PROOF (lesson 1) Enrico Tassi Inria Sophia-Antipolis Who am I? 1. I'm a researcher at Inria 2. I work on proof assistants, the kind of tools that we will be using for
More information10 Years of Partiality and General Recursion in Type Theory
10 Years of Partiality and General Recursion in Type Theory Ana Bove Chalmers University of Technology DTP 10 July 9th 2010 Claims and Disclaims I know that I know nothing Socrates Ana Bove DTP 10 July
More informationFAKULTÄT FÜR INFORMATIK. Synthesis of Robust, Semi-Intelligble Isar Proofs from ATP Proofs
FAKULTÄT FÜR INFORMATIK DER TECHNISCHEN UNIVERSITÄT MÜNCHEN Bachelor Thesis in Computer Science Synthesis of Robust, Semi-Intelligble Isar Proofs from ATP Proofs Steffen Juilf Smolka FAKULTÄT FÜR INFORMATIK
More informationCS558 Programming Languages
CS558 Programming Languages Winter 2017 Lecture 7b Andrew Tolmach Portland State University 1994-2017 Values and Types We divide the universe of values according to types A type is a set of values and
More informationRefinements for free! 1
Refinements for free! Refinements for free! 1 Cyril Cohen joint work with Maxime Dénès and Anders Mörtberg University of Gothenburg and Inria Sophia-Antipolis May 8, 2014 1 This work has been funded by
More informationAn Industrially Useful Prover
An Industrially Useful Prover J Strother Moore Department of Computer Science University of Texas at Austin July, 2017 1 Recap Yesterday s Talk: ACL2 is used routinely in the microprocessor industry to
More informationACL2 Challenge Problem: Formalizing BitCryptol April 20th, John Matthews Galois Connections
ACL2 Challenge Problem: Formalizing BitCryptol April 20th, 2005 John Matthews Galois Connections matthews@galois.com Roadmap SHADE verifying compiler Deeply embedding Cryptol semantics in ACL2 Challenge
More informationDeductive Verification in Frama-C and SPARK2014: Past, Present and Future
Deductive Verification in Frama-C and SPARK2014: Past, Present and Future Claude Marché (Inria & Université Paris-Saclay) OSIS, Frama-C & SPARK day, May 30th, 2017 1 / 31 Outline Why this joint Frama-C
More informationAssistant for Language Theory. SASyLF: An Educational Proof. Corporation. Microsoft. Key Shin. Workshop on Mechanizing Metatheory
SASyLF: An Educational Proof Assistant for Language Theory Jonathan Aldrich Robert J. Simmons Key Shin School of Computer Science Carnegie Mellon University Microsoft Corporation Workshop on Mechanizing
More informationSMTCoq: A plug-in for integrating SMT solvers into Coq
SMTCoq: A plug-in for integrating SMT solvers into Coq Burak Ekici 1, Alain Mebsout 1, Cesare Tinelli 1, Chantal Keller 2, Guy Katz 3, Andrew Reynolds 1, and Clark Barrett 3 1 The University of Iowa, USA
More informationLecture 2: SML Basics
15-150 Lecture 2: SML Basics Lecture by Dan Licata January 19, 2012 I d like to start off by talking about someone named Alfred North Whitehead. With someone named Bertrand Russell, Whitehead wrote Principia
More informationThis is already grossly inconvenient in present formalisms. Why do we want to make this convenient? GENERAL GOALS
1 THE FORMALIZATION OF MATHEMATICS by Harvey M. Friedman Ohio State University Department of Mathematics friedman@math.ohio-state.edu www.math.ohio-state.edu/~friedman/ May 21, 1997 Can mathematics be
More information