Jared Davis CyberTrust Meeting March 1, 2006

Slides:



Advertisements
Similar presentations
Automated Theorem Proving Lecture 1. Program verification is undecidable! Given program P and specification S, does P satisfy S?
Advertisements

Computer Science CPSC 322 Lecture 25 Top Down Proof Procedure (Ch 5.2.2)
Introduction to Proofs
Static and User-Extensible Proof Checking Antonis StampoulisZhong Shao Yale University POPL 2012.
Methods of Proof Chapter 7, second half.. Proof methods Proof methods divide into (roughly) two kinds: Application of inference rules: Legitimate (sound)
Methods of Proof Chapter 7, Part II. Proof methods Proof methods divide into (roughly) two kinds: Application of inference rules: Legitimate (sound) generation.
Logic.
Proofs, Recursion and Analysis of Algorithms Mathematical Structures for Computer Science Chapter 2 Copyright © 2006 W.H. Freeman & Co.MSCS SlidesProofs,
VeriML: Revisiting the Foundations of Proof Assistants Zhong Shao Yale University MacQueen Fest May 13, 2012 (Joint work with Antonis Stampoulis)
Proof methods Proof methods divide into (roughly) two kinds: –Application of inference rules Legitimate (sound) generation of new sentences from old Proof.
CPSC 322, Lecture 20Slide 1 Propositional Definite Clause Logic: Syntax, Semantics and Bottom-up Proofs Computer Science cpsc322, Lecture 20 (Textbook.
Methods of Proof Chapter 7, second half.
Proof by Deduction. Deductions and Formal Proofs A deduction is a sequence of logic statements, each of which is known or assumed to be true A formal.
Multiplying, Dividing, and Simplifying Radicals
VeriML DARPA CRASH Project Progress Report Antonis Stampoulis October 5 th, 2012 A language-based, dependently-typed, user-extensible approach to proof.
The Forward-Backward Method The First Method To Prove If A, Then B.
Slide 1 Propositional Definite Clause Logic: Syntax, Semantics and Bottom-up Proofs Jim Little UBC CS 322 – CSP October 20, 2014.
1 MVD 2010 University of Iowa New York University Comparing Proof Systems for Linear Real Arithmetic Using LFSC Andrew Reynolds September 17, 2010.
Activity 1-19: The Propositional Calculus
CSE Winter 2008 Introduction to Program Verification January 31 proofs through simplification.
© Copyright 2008 STI INNSBRUCK Intelligent Systems Propositional Logic.
Inference in First Order Logic. Outline Reducing first order inference to propositional inference Unification Generalized Modus Ponens Forward and backward.
1 Propositional Logic Limits The expressive power of propositional logic is limited. The assumption is that everything can be expressed by simple facts.
CS104:Discrete Structures Chapter 2: Proof Techniques.
Metalogic Soundness and Completeness. Two Notions of Logical Consequence Validity: If the premises are true, then the conclusion must be true. Provability:
Certifying and Synthesizing Membership Equational Proofs Patrick Lincoln (SRI) joint work with Steven Eker (SRI), Jose Meseguer (Urbana) and Grigore Rosu.
Code Simplicity: Software Design In Open Source Projects Max Kanat-Alexander
Primbs, MS&E345 1 Measure Theory in a Lecture. Primbs, MS&E345 2 Perspective  -Algebras Measurable Functions Measure and Integration Radon-Nikodym Theorem.
Proof And Strategies Chapter 2. Lecturer: Amani Mahajoub Omer Department of Computer Science and Software Engineering Discrete Structures Definition Discrete.
Chapter 1 Logic and Proof.
Top tips and techniques
Shouldn’t we have started with this?!?
The Foundations: Logic and Proofs
Trigonometric Identities
EA C461 Artificial Intelligence
From Classical Proof Theory to P vs. NP
Logical Inference 2 Rule-based reasoning
Skipton Girls’ High School
Announcements No office hours today!
Solving Systems of Equations in Two Variables; Applications
Integration by Inspection & Substitution
Computer Science cpsc322, Lecture 20
Introduction To Logarithms
Chapter 3 The Real Numbers.
Logical Inference 2 Rule-based reasoning
Testing the Software with Blinders on
Jared Davis The University of Texas at Austin April 6, 2006
Fast Action Links extension A love letter to CiviCRM
Introduction To Logarithms
Hypothesis Testing for Proportions
The Equal Sign and Integers
Trigonometric Identities
EPISTEMIC LOGIC.
Introduction To Logarithms
Solving Radical Equations
Warm Up If a text question asks you what a word means, how do you find the answer? What strategies can you use? If a question says “mostly about”, what.
The Foundations: Logic and Proofs
CSCE 315 – Programming Studio, Fall 2017 Tanzir Ahmed
Section 10.2: Tests of Significance
Assignment-2 due now Enterprise Architecture Conference Sat. Oct 27
Midterm Discussion.
Copyright © Cengage Learning. All rights reserved.
Introduction to Philosophy Lecture 3a Evaluating an argument
Computer Science cpsc322, Lecture 20
Methods of Proof Chapter 7, second half.
This Lecture Substitution model
Propositional Logic: Methods of Proof (Part II)
Introducing Natural Deduction
Chapter 5 Computer Security
Presentation transcript:

Jared Davis CyberTrust Meeting March 1, 2006 __ __ __ __ / \ / \ (__) | | ____ ___ __ ____ / \/ \ __ | | / _ | \ \ __ / / / _ | / /\ /\ \ | | | | / / | | \ ' ' / / / | | / / \__/ \ \ | | | | \ \_| | \ /\ / \ \_| | /__/ \__\ |__| |__| \____| \/ \/ \____| ~ ~~ \ ~ ~ ~_~~ ~/~ /~ | ~|~ | ~| ~ /~_ ~|~ ~ ~\ ~\~ ~ ~ ~ |~~ ~ ~ ~ \~ \~ / ~\~ / ~/ ~ |~ | ~| ~ ~/~/ | |~ ~~/ ~\/ ~~ ~ / / | |~ ~ ~ ~ ~ \ ~\/ ~ \~ ~/ ~~ ~__| |~ ~ ~ \_~ ~ ~ .__~ ~\ ~\ ~_| ~ ~ ~~ ~~ ~ ~\ ~ /~ ~ ~ ~ ~ __~ | ~ ~ \~__~| ~/__~ ~\__~ ~~___~| ~ ~ ~ ~~ ~ \~_/ ~_~/ ~ ~ ~(__~ ~|~_| ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ in twenty minutes Jared Davis CyberTrust Meeting March 1, 2006

How can we trust ACL2? 190,000 lines of Lisp (7.9 MB) Extensive use of program mode Hugely complex proof search Rewriter includes integrated arithmetic and type reasoning, backward and forward chaining rules, and can call on user-written extensions (meta rules), etc.

Oh, please! Careful authors with domain expertise Massive regression suite to test against Many users working on non-trivial projects Soundness bugs are rare, tend to be esoteric Certainly a whole lot better than hand proofs

On the other hand... Extending ACL2 requires its authors You or I need to “make a case” for why you need something new Soundness bug might be exploited to make false claims about some artifact Probably only intentionally, but maybe even unintentionally

Milawa A small, trusted core proof checker That really deals with formal proofs Written in its own logic Which makes provability an idea we can talk about concretely With extensions that add capabilities Like evaluation, rewriting, etc.

Soundness of Extensions Extensions written in the same logic We can reason about them We can prove they are sound Example: tautology checking (tautologyp F) checks if F is a tautology Goal: (tautologyp F) -> (provablep F)

Reflection “F is provable” is a proof of F Allows us to use our extensions Example: Suppose (tautologyp F) is true. Since (tautologyp F) -> (provablep F), it follows that (provablep F) is true. By reflection, I conclude F is true.

Implementing Milawa Rigorously define the Milawa logic Mostly done (still need definitions) Implement the core proof checker Mostly done (everything but reflection) Implement some useful extensions So far, I have tautology checking, substitution of equals for equals, evaluation of ground terms, and basic rewriting

The Hard Part Verify one of these extensions using only the core proof checker Its rules of inference are extremely limited How can we reasonably construct the formal proofs we need? I am focusing on tautology checking (TC) to begin with.

My Approach I implemented the core checker as an ACL2 program. I have an ACL2 proof of TC's soundness. The logics are very similar I can see now what lemmas I will need for the “real” proof. This is like sketching a proof before trying to push it through ACL2.

Attack From Both Sides Simplify the ACL2 proof so that fewer features of ACL2 are used. For example, I have already eliminated all type reasoning, linear arithmetic, and forward chaining rules. Create functions to assist with building formal proofs. For example, I have a function which will build a proof of a ground term's evaluation, a rewriter's simplification, etc.

Rinse and Repeat Prove the soundness of TC. Move on to the next extension. But now we can use TC in our proofs, so our job will be somewhat easier. Work through the remaining extensions At each step, we obtain a more capable program, which is nevertheless trustworthy

The Final Product A reasonably sophisticated proof checker That we can really trust That can be extended by users in complicated ways That is easy to port ACL2 proofs to?