Formal Methods in software development

Slides:



Advertisements
Similar presentations
Model Checking Lecture 4. Outline 1 Specifications: logic vs. automata, linear vs. branching, safety vs. liveness 2 Graph algorithms for model checking.
Advertisements

Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
BDDs & Theorem Proving Binary Decision Diagrams Dr. Eng. Amr T. Abdel-Hamid NETW 703 Winter 2012 Network Protocols Lectures are based on slides by: K.
Planning based on Model Checking Dept. of Information Systems and Applied CS Bamberg University Seminar Paper Svetlana Balinova.
Disjunctive Normal Form CS 680: Formal Methods Jeremy Johnson.
IT University of Copenhagen Lecture 7: BDD Construction and Manipulation 1. BDD construction 2. Boolean operations on BDDs 3. BDD-Based configuration.
Formal Methods of Systems Specification Logical Specification of Hard- and Software Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
© 2011 Carnegie Mellon University Binary Decision Diagrams Part Bug Catching: Automated Program Verification and Testing Sagar Chaki September.
© 2011 Carnegie Mellon University Binary Decision Diagrams Part Bug Catching: Automated Program Verification and Testing Sagar Chaki September.
Binary Decision Diagrams. ROBDDs Slide 2 Example Directed acyclic graph non-terminal node terminal node What function is represented by the graph?
Boolean Algebra.
Spring 07, Feb 13 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Binary Decision Diagrams Vishwani D. Agrawal James.
DATE-2002TED1 Taylor Expansion Diagrams: A Compact Canonical Representation for Symbolic Verification M. Ciesielski, P. Kalla, Z. Zeng B. Rouzeyre Electrical.
ECE Synthesis & Verification - Lecture 18 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Word-level.
Rolf Drechlser’s slides used
1 CSEP590 – Model Checking and Automated Verification Lecture outline for July 16, 2003.
Taylor Expansion Diagrams (TED): Verification EC667: Synthesis and Verification of Digital Systems Spring 2011 Presented by: Sudhan.
ECE Synthesis & Verification - Lecture 10 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Binary.
 2001 CiesielskiBDD Tutorial1 Decision Diagrams Maciej Ciesielski Electrical & Computer Engineering University of Massachusetts, Amherst, USA
ECE 667 Synthesis & Verification - BDD 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Binary Decision Diagrams (BDD)
ENEE244-02xx Digital Logic Design Lecture 10. Announcements HW4 assigned, due 10/9.
IT University of Copenhagen Lecture 8: Binary Decision Diagrams 1. Classical Boolean expression representations 2. If-then-else Normal Form (INF) 3. Binary.
By Tariq Bashir Ahmad Taylor Expansion Diagrams (TED) Adapted from the paper M. Ciesielski, P. Kalla, Z. Zeng, B. Rouzeyre,”Taylor Expansion Diagrams:
Binary Decision Diagrams for First Order Predicate Logic By: Jan Friso Groote Afsaneh Shirazi.
Digitaalsüsteemide verifitseerimise kursus1 Formal verification: BDD BDDs applied in equivalence checking.
Binary Decision Diagrams (BDDs)
Model Checking Lecture 4 Tom Henzinger. Model-Checking Problem I |= S System modelSystem property.
Quantified Formulas - Decision Procedure Daniel Kroening, Ofer Strichman Presented by Changki Hong 07 NOV 08.
NP Complexity By Mussie Araya. What is NP Complexity? Formal Definition: NP is the set of decision problems solvable in polynomial time by a non- deterministic.
CS 267: Automated Verification Lecture 6: Binary Decision Diagrams Instructor: Tevfik Bultan.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson.
On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda Rolf Drechsler Alex Orailoglu Computer Science & Engineering Dept. University.
Disjunctive Normal Form CS 270: Math Foundation of CS Jeremy Johnson.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
Boolean Functions 1 ECE 667 ECE 667 Synthesis and Verification of Digital Circuits Boolean Functions Basics Maciej Ciesielski Univ.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
2009/6/30 CAV Quantifier Elimination via Functional Composition Jie-Hong Roland Jiang Dept. of Electrical Eng. / Grad. Inst. of Electronics Eng.
Binary Decision Diagrams Prof. Shobha Vasudevan ECE, UIUC ECE 462.
IT 60101: Lecture #121 Foundation of Computing Systems Lecture 13 Trees: Part VIII.
How CTL model checking works
CENG 424-Logic for CS Introduction Based on the Lecture Notes of Konstantin Korovin, Valentin Goranko, Russel and Norvig, and Michael Genesereth.
Formal Methods in software development
CTL model checking algorithms
Propositional Calculus: Boolean Functions and Expressions
Planning as model checking, (OBDDs)
Disjunctive Normal Form
Propositional Calculus: Boolean Functions and Expressions
Reconfigurable Computing
ECE 667 Synthesis and Verification of Digital Systems
Propositional Calculus: Boolean Algebra and Simplification
SS 2017 Software Verification CTL model checking, BDDs
Binary Decision Diagrams
Automatic Verification of Industrial Designs
Formal Methods in software development
Disjunctive Normal Form
Computer Security: Art and Science, 2nd Edition
Formal Methods in software development
A logic function f in n inputs x1, x2, ...xn and
Formal methods in software development
Formal Methods in software development
Formal methods in software development
Binary Decision Diagrams
A logic function f in n inputs x1, x2, ...xn and
Formal Methods in software development
Formal Methods in software development
Boolean Algebra for CAD Applications
Switching Lemmas and Proof Complexity
10 Design Verification and Test
Real-Time Systems, COSC , Lecture 18
Presentation transcript:

Formal Methods in software development a.y.2017/2018 Prof. Anna Labella 1/13/2019

OBDD [H-R chap.6] Representing boolean functions A formula can be represented by a boolean function, where its variables are boolean variables, as in circuits. 1/13/2019

OBDD [H-R cap.6] 1/13/2019

Exercises 1/13/2019

Binary decision trees 1/13/2019

Exercises 1/13/2019

Exercises 1/13/2019

BDD Removal of duplicated terminals Removal of redundant tests (they are nomore trees) 1/13/2019

BDD Removal of duplicated non terminals 1/13/2019

BDD Eliminate duplicated terminals Eliminate redundant tests Eliminate duplicated non terminals 1/13/2019

BDD: how do we introduce operations? Composing BDD constants variables ☐ 1 1/13/2019

BDD: sums and products We can substitute terminals by non terminals and compose functions e.g. In the conjunction we substitute 1 by the BDD of the other function In the disjunction we substitute 0 by the BDD of the other function In the negation we swap 1 and 0 1/13/2019

Exercises Let f be represented by describe 1/13/2019

BDD Satisfiability: to reach 1 via a coherent path Validity: it is not possible to reach 0 via a coherent path 1/13/2019

OBDD: ordered binary decision diagrams Equivalence? 1/13/2019

OBDD Normal form: order and then reduce Theorem. We have a unique result Hence there is a canonical form 1/13/2019

OBDD An example: the parity function on 4 variables Repeated variables 1/13/2019 Repeated variables

OBDD 1/13/2019 order without repetitions

OBDD 1/13/2019

OBDD Composition is nomore directly allowed But we have: Absence of redundant variables Test for semantic equivalence with a compatible ordering Test for validity (reducibility to B1) Test for satisfiability (non reducibility to B0) Test for implication (reducibility of f. g to B0) 1/13/2019

Exercises 1/13/2019

OBDD: the algorithm reduce It identifies equal nodes going bottom up 1/13/2019

OBDD: the algorithm reduce 1/13/2019

OBDD: the algorithm apply It exploits operations acting on (op, Bf, Bg) 1/13/2019

OBDD: the algorithm apply Shannon expansion theorem ƒ = x ƒ[0/x] + x ƒ[1/x] In general form ƒ op g = xi ( ƒ[0/xi] op g[0/xi]) + xi ( ƒ[1/xi] op g[1/xi]) This provides a recursive call structure 1/13/2019

OBDD: the algorithm apply 1/13/2019

OBDD: the algorithm apply 1/13/2019

OBDD: the control structure for the algorithm apply 1/13/2019

OBDD: the algorithm apply 1/13/2019

OBDD: the algorithm restrict Given f, restrict(0, x, Bf) computes the reduced OBDD corresponding to f[0/x] Analogously, restrict(0, x, Bf) computes the reduced OBDD corresponding to to f[1/x] restrict(0, x, Bf) works as follows: For each node n labeled 1/13/2019

OBDD: restrict exercise 1/13/2019

OBDD: the algorithm exists  f = f[0/x] + f[1/x]  f = f[0/x] . f[1/x] 1/13/2019

OBDD: the algorithm exists exercise 1/13/2019

OBDD: the algorithm exists exercise 1/13/2019

1/13/2019

Complexity 1/13/2019

Exercises 1/13/2019

1/13/2019