Formal Methods in software development

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Copyright 2000 Cadence Design Systems. Permission is granted to reproduce without modification. Introduction An overview of formal methods for hardware.
Modeling Software Systems Lecture 2 Book: Chapter 4.
1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential.
Auto-Generation of Test Cases for Infinite States Reactive Systems Based on Symbolic Execution and Formula Rewriting Donghuo Chen School of Computer Science.
Micromodels of Software
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
1 Model checking. 2 And now... the system How do we model a reactive system with an automaton ? It is convenient to model systems with Transition systems.
An Introduction to the Model Verifier verds Wenhui Zhang September 15 th, 2010.
Temporal Logic and the NuSMV Model Checker CS 680 Formal Methods Jeremy Johnson.
Rigorous Software Development CSCI-GA Instructor: Thomas Wies Spring 2012 Lecture 11.
Chair of Software Engineering Software Verification Stephan van Staden Lecture 10: Model Checking.
SYMBOLIC MODEL CHECKING: STATES AND BEYOND J.R. Burch E.M. Clarke K.L. McMillan D. L. Dill L. J. Hwang Presented by Rehana Begam.
Model Checking. Used in studying behaviors of reactive systems Typically involves three steps: Create a finite state model (FSM) of the system design.
Lecture 4&5: Model Checking: A quick introduction Professor Aditya Ghose Director, Decision Systems Lab School of IT and Computer Science University of.
Discrete Mathematics Lecture 2 Alexander Bukharovich New York University.
CS 330 Programming Languages 09 / 18 / 2007 Instructor: Michael Eckmann.
Temporal Logic of Actions (TLA) Leslie Lamport
Review: forward E { P } { P && E } TF { P && ! E } { P 1 } { P 2 } { P 1 || P 2 } x = E { P } { \exists … }
ESE601: Hybrid Systems Introduction to verification Spring 2006.
Verification technique on SA applications using Incremental Model Checking 컴퓨터학과 신영주.
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
Introduction to Software Testing Chapter 9.4 Model-Based Grammars Paul Ammann & Jeff Offutt
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
CS6133 Software Specification and Verification
Formal Verification Lecture 9. Formal Verification Formal verification relies on Descriptions of the properties or requirements Descriptions of systems.
Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson.
CS6133 Software Specification and Verification
4.1 Proofs and Counterexamples. Even Odd Numbers Find a property that describes each of the following sets E={…, -4, -2, 0, 2, 4, 6, …} O={…, -3, -1,
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.
lamsweerde Chap.4: Formal Requirements Specification © 2009 John Wiley and Sons Fundamentals of RE Chapter 4 Requirements.
1 First order theories (Chapter 1, Sections 1.4 – 1.5) From the slides for the book “Decision procedures” by D.Kroening and O.Strichman.
This Week Lecture on relational semantics Exercises on logic and relations Labs on using Isabelle to do proofs.
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
Sum of Arithmetic Sequences. Definitions Sequence Series.
Lecture 041 Predicate Calculus Learning outcomes Students are able to: 1. Evaluate predicate 2. Translate predicate into human language and vice versa.
1 Introduction to Abstract Mathematics Chapter 3: The Logic of Quantified Statements. Predicate Calculus Instructor: Hayk Melikya 3.1.
Π-AAL: An Architecture Analysis Language for Formally Specifying and Verifying Structural and Behavioral Properties of Software Architectures Presented.
IS 2620: Developing Secure Systems Formal Verification/Methods Lecture 9 March 15, 2012.
6/12/20161 a.a.2015/2016 Prof. Anna Labella Formal Methods in software development.
Counterexample-Guided Abstraction Refinement By Edmund Clarke, Orna Grumberg, Somesh Jha, Yuan Lu, and Helmut Veith Presented by Yunho Kim Provable Software.
Presentation Title 2/4/2018 Software Verification using Predicate Abstraction and Iterative Refinement: Part Bug Catching: Automated Program Verification.
Quick Course Overview Quick review of logic and computational problems
Formal methods: Lecture
tautology checking continued
Propositional Calculus: Boolean Functions and Expressions
ARTIFICIAL INTELLIGENCE
Formal Methods in Software Engineering 1
Semantics In propositional logic, we associate atoms with propositions about the world. We specify the semantics of our logic, giving it a “meaning”. Such.
Propositional Calculus: Boolean Algebra and Simplification
Lecture 5 Floyd-Hoare Style Verification
IS 2935: Developing Secure Systems
Formal Methods in software development
Formal Methods in software development
Formal Methods in software development
MA/CSSE 474 More Math Review Theory of Computation
Formal Methods in software development
Logics for Data and Knowledge Representation
An explicit state model checker
Formal Methods in software development
Classifying Real Numbers
Search techniques.
Formal Methods in software development
Formal Methods in software development
Translating Linear Temporal Logic into Büchi Automata
The Zoo of Software Security Techniques
Introduction to verification
Dichotomies in CSP Karl Lieberherr inspired by the paper:
Formal Methods in software development
Formal Methods in software development
Presentation transcript:

Formal Methods in software development a.y.2016/2017 Prof. Anna Labella 12/5/2018

Semantics syntactical data F functional symbols- constants P predicate symbols An interpretation M a non empty set (domain) A F  a set of functions fM on A (An) P  a set of relations PM on A (An) 12/5/2018

Semantics A subset is the interpretation of a 1-ary predicate A n-ary relation is the interpretation of a n-ary predicate 12/5/2018

An example: arithmetics syntactical data F: f1(-,-), f2(-,-), f0(-), c P: - = -, P1(-,-) An interpretation M Natural numbers (domain) Functions : - + -, - . -, s(-), 0 Predicates: - = -, - ≤ - 12/5/2018

Semantics environments Assigning values l: var  elements of A 12/5/2018

Semantics Summing up, we are given with 12/5/2018

An example: arithmetics 2 f1(c,x)=x always true in the interpretation f2(c,x)=x sometimes true sometimes false in the interpretation depending on the assignment x(f1(c,x)=x) true in the interpretation x(f2(c,x)=x) true in the interpretation x(f2(c,x)=x) false in the interpretation x(f1(c,x)=f1(c,x)) valid 12/5/2018

Semantics An interpretation M is a model of  M |=l  : 12/5/2018

Semantics: satisfiability 12/5/2018

Exercises 12/5/2018

Semantics: validity is valid if for every intepretation and for every environment M |=  12/5/2018

Properties Soundness  |-   M |=  Completeness M |=    |-  Indecidability Compactness Expressivity 12/5/2018

Second order logic Existential second order logic Universal second order logic Peano’s arithmetics 12/5/2018

Specification, verification and logics [H-R ch.3] Logic provides: A framework for modelling systems A specification language for describing properties to be verified A verification method to ascertain whether the description of the system satisfies the properties 12/5/2018

Possibilities of approaching model verification Proof-based Γ |-- φ Γ is the description while φ is the property to be satisfied Degree of automation: Fully automatic Full behaviour Sequential Reactive …. A priori Model based M |= φ M is a finite model (only one) Manual One property Concurrent Terminating ….. A posteriori 12/5/2018

We are possibly dealing with Γ |-- φ Γ |= φ M |= φ 12/5/2018

We are possibly dealing with Γ |-- φ Γ |= φ M |= φ 12/5/2018

We are possibly dealing with Γ |-- φ Γ |= φ M |= φ 12/5/2018

Model Checking Concurrent systems Reactive systems Temporal aspects Automatic Based on a builded model Verifying satisfiability of properties A posteriori Provides a counterexample Concurrent systems Reactive systems Temporal aspects 12/5/2018

A formula can change its truth value A model M is a transition system We model our system using the description language of the model checker We code the property to be verified in the same language and the model checker should say whether M,s |= φ or not for a given state s In this last case it is often possible to have a counterexample 12/5/2018

Models and states A model M is a transition system A model M is an abstraction: it can describe very different things We have states and and transitions between them. An assignment statement can make the model move from one state to another one We can think of a transition system as a set S of states together with a binary relation    S ✕ S and a labeling function L: S  P(atoms) 12/5/2018

A transition system 1 12/5/2018

A transition system 2 unwinding 12/5/2018