RESOLVE VERIFICATION: A New Perspective Joan Krone William F. Ogden.

Slides:



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

Brief Introduction to Logic. Outline Historical View Propositional Logic : Syntax Propositional Logic : Semantics Satisfiability Natural Deduction : Proofs.
Computer Science CPSC 322 Lecture 25 Top Down Proof Procedure (Ch 5.2.2)
Translation-Based Compositional Reasoning for Software Systems Fei Xie and James C. Browne Robert P. Kurshan Cadence Design Systems.
Addressing the Challenges of Current Software. Questions to Address Why? What? Where? How?
Certified Typechecking in Foundational Certified Code Systems Susmit Sarkar Carnegie Mellon University.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Formal Semantics of Programming Languages 虞慧群 Topic 5: Axiomatic Semantics.
This research has been funded in part by grants from the U. S. National Science Foundation for the past 20 years. Towards Verified Software: Research and.
LIFE CYCLE MODELS FORMAL TRANSFORMATION
ISBN Chapter 3 Describing Syntax and Semantics.
1 Semantic Description of Programming languages. 2 Static versus Dynamic Semantics n Static Semantics represents legal forms of programs that cannot be.
CS 355 – Programming Languages
An Integration of Program Analysis and Automated Theorem Proving Bill J. Ellis & Andrew Ireland School of Mathematical & Computer Sciences Heriot-Watt.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
May 11, ACL2 Panel: What is the Future of Theorem Proving? Arvind Computer Science & Artificial Intelligence Laboratory.
Proof Points Key ideas when proving mathematical ideas.
C. FlanaganSAS’04: Type Inference Against Races1 Type Inference Against Races Cormac Flanagan UC Santa Cruz Stephen N. Freund Williams College.
VIDE Integrated Environment for Development and Verification of Programs.
Brief Introduction to Logic. Outline Historical View Propositional Logic : Syntax Propositional Logic : Semantics Satisfiability Natural Deduction : Proofs.
Presentation for Proof Assistant course by Nadya Kalabishka
CS 330 Programming Languages 09 / 18 / 2007 Instructor: Michael Eckmann.
So far we have learned about:
CS 330 Programming Languages 09 / 16 / 2008 Instructor: Michael Eckmann.
On the Correctness of Model Transformations Gabor Karsai ISIS/Vanderbilt University.
Describing Syntax and Semantics
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
Mechanized Metatheory for User- Defined Type Extensions Dan Marino, Brian Chin, Todd Millstein UCLA Gang Tan Boston College Robert J. Simmons, David Walker.
ECI 2007: Specification and Verification of Object- Oriented Programs Lecture 0.
Final Exam Review Cummulative Chapters 0, 1, 2, 3, 4, 5 and 7.
Mathematics throughout the CS Curriculum Support by NSF #
Jason Hallstrom (Clemson), Joan Krone (Denison), Joseph E. Hollingsworth (IU Southeast), and Murali Sitaraman(Clemson) This workshop is funded in part.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Computer Science School of Computing Clemson University Discrete Math and Reasoning about Software Correctness Murali Sitaraman
Lecture 16 March 22, 2011 Formal Methods CS 315 Spring Adapted from slides provided by Jason Hallstrom and Murali Sitaraman (Clemson)
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
2.5 Proofs Segments and Angles
Proof-Carrying Code & Proof-Carrying Authentication Stuart Pickard CSCI 297 June 2, 2005.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
Explanation: (They wanted to know…) (I knew…) (So I…) (I found…) Use appropriate mathematical terminology!!! ______________________________________________________________________________.
Computer Science School of Computing Clemson University Discrete Math and Reasoning about Software Correctness Joseph E. Hollingsworth
Formal Verification Lecture 9. Formal Verification Formal verification relies on Descriptions of the properties or requirements Descriptions of systems.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Chapter 3 Part II Describing Syntax and Semantics.
This research is funded in part by grant CCR from the U. S. National Science Foundation. Profiles: A Compositional Mechanism for Performance Specification.
1 Performance Specifications Based upon Complete Profiles Joan Krone William F. Ogden Murali Sitaraman.
An Axiomatic Basis for Computer Programming Robert Stewart.
Lecture 5 1 CSP tools for verification of Sec Prot Overview of the lecture The Casper interface Refinement checking and FDR Model checking Theorem proving.
Copyright © Curt Hill Proofs An Introduction.
1 3 Questions What do we need to do in order to achieve the vision? What is a fuller elaboration of the collection of artifacts required to support the.
SAFE KERNEL EXTENSIONS WITHOUT RUN-TIME CHECKING George C. Necula Peter Lee Carnegie Mellon U.
Computer Science School of Computing Clemson University Mathematical Reasoning with Objects.
© Andrew IrelandGrand Challenges for Computing Research 2004 The Verifying Compiler Andrew Ireland Dependable Systems Group School of Mathematical & Computer.
Faithful mapping of model classes to mathematical structures Ádám Darvas ETH Zürich Switzerland Peter Müller Microsoft Research Redmond, WA, USA SAVCBS.
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
Integrating Math Units and Proof Checking for Specification and Verification SAVCBS Workshop 2008 SIGSOFT 2008 / FSE 16 November 9th, 2008 Hampton Smith.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
COMP 412, FALL Type Systems C OMP 412 Rice University Houston, Texas Fall 2000 Copyright 2000, Robert Cartwright, all rights reserved. Students.
Computer Science School of Computing Clemson University Reasoning with Queues and Web Interface Demo.
Types for Programs and Proofs
Formal Techniques (CS340 © John C. Knight 2004)
Low-Level Program Verification
Chapter 10: Mathematical proofs
Lecture 5 Floyd-Hoare Style Verification
IS 2935: Developing Secure Systems
2-6 Geometric Proof Warm Up Lesson Presentation Lesson Quiz
Mathematical Reasoning
Department of Computer Science Abdul Wali Khan University Mardan
Formal Methods Lecture 16 March 22, 2011 CS 315 Spring 2011
Presentation transcript:

RESOLVE VERIFICATION: A New Perspective Joan Krone William F. Ogden

General Requirements for a Verifying Compiler Sound Language Specification Mechanisms Established Specifiability of Components Mathematical Expressiveness Math Proof System Program Proof System Proof Rules Soundness and Completeness Semantics

Justification Checker Use Case Programmer submits assertive code to Justification Checker. In a few minutes Justification Checker returns: –Correct –Clause that’s Incorrect Programmer fixes code or spec. –Clause that’s correct Programmer adds specification to code or lemma.

Justification Checking Justification Checker can only do obvious math. Examples show that the Justification Checker only needs to do clause refinement. Typical clause: p1  (p2  p3  (p4  p5   ) ) Difficult Math gets done in Math Units. Proofs for Math Units are much more detailed.

Meta_Precis Basic_CPO_Theory; uses Basic_Ordinal_Theory; Def. Chain( ⊑ : (D: MSet) ⊠ D→B ):  (  (D)) = { C:  (D)   x, y: C, x ⊑ y or y ⊑ x }; Corollary 1:  D: MSet,  ⊑ : D ⊠ D→B,   Chain( ⊑ ) and if Is_Reflexive( ⊑ ), then  z: D, {z}  Chain( ⊑ ); Corollary 2:  D: MSet,  ⊑ : D ⊠ D→B,  C: Chain( ⊑ ),  B:  (D), if B  C, then B  Chain( ⊑ ); Def. Is_CPO( ⊑ : (D: MSet) ⊠ D→B ): B = ( Is_Partial_Ordering( ⊑ ) and  C: Chain( ⊑ ),  b: D   x: C, x ⊑ b and  u: D, if  x: C, x ⊑ u, then b ⊑ u ); Corollary 1:  D: MSet, if  ⊑ : D ⊠ D→B  Is_CPO( ⊑ ), then D   ; Corollary 2:  D: MSet,  ⊑ : D ⊠ D→B, if Is_CPO( ⊑ ), then  z: D, {z}  Chain( ⊑ ); Corollary 3:  D: MSet,  ⊑ : D ⊠ D→B,  C: Chain( ⊑ ), if Is_CPO( ⊑ ), then  ! b: D   x: C, x ⊑ b and  u: D, if  x: C, x ⊑ u, then b ⊑ u; Corollary 4:  D: MSet,  ⊑ : D ⊠ D→B, if Is_CPO( ⊑ ), then  ! b: D   u: D, b ⊑ u; Implicit Def.  ( ⊑ : (D: MSet~{  }) ⊠ D→B): D is if Is_CPO( ⊑ ), then  x: D,  ( ⊑ ) ⊑ x and if  Is_CPO( ⊑,  ), then  ( ⊑ ) = ∗ (D);

Proofs Obv_BCPO_Prfs for Basic_CPO_Theory; Def. Chain( ⊑ : (D: MSet) ⊠ D→B ):  (  (D)) = { C:  (D)   x, y: C, x ⊑ y or y ⊑ x }; Corollary 1:  D: MSet,  ⊑ : D ⊠ D→B,   Chain( ⊑ ) and if Is_Reflexive( ⊑ ), then  z: D, {z}  Chain( ⊑ ); Proof Supp D: MSet and ⊑ : D ⊠ D→B Goal   Chain( ⊑ )and if Is_Reflexive( ⊑ ), then  z: D, {z}  Chain( ⊑ ) Goal   Chain( ⊑ ) Goal  x, y: , x ⊑ y or y ⊑ x Supp x, y:  Goal x ⊑ y or y ⊑ x Falseby supp & def.  x ⊑ y or y ⊑ x by contradiction deduction if x, y: , then x ⊑ y or y ⊑ x  x, y: , x ⊑ y or y ⊑ x by universal generalization   Chain( ⊑ ) by def Chain … QED;

Math Constructs Precis’ are analogous to Concepts. Proofs are analogous to Realizations. There will be some built-in Math Units.

Theorem Checker for Math Programmer submits math theory including proofs. The Proof Checker processes them. –If adequate, precis becomes available for the justification checker and other math checking. –If not adequate, programmer adds lemmas or reasons in the proofs.

The Verification Process The Proof Checker takes care of the mathematics, which must be a part of the context for both specifying and correctness checking. The Justification Checker takes care of program correctness.

Thesis Program verification is just proof checking and justification checking!