Disjunctive Normal Form

Slides:



Advertisements
Similar presentations
Logical Systems Synthesis.
Advertisements

Disjunctive Normal Form CS 680: Formal Methods Jeremy Johnson.
ECE 301 – Digital Electronics Minterm and Maxterm Expansions and Incompletely Specified Functions (Lecture #6) The slides included herein were taken from.
Logic Gate Level Part 2. Constructing Boolean expression from truth table First method: write nonparenthesized OR of ANDs Each AND is a 1 in the result.
Restricted Satisfiability (SAT) Problem
1 Inference Rules and Proofs Z: Inference Rules and Proofs.
Chapter 9: Boolean Algebra
EE1J2 – Discrete Maths Lecture 5
1 EECC341 - Shaaban #1 Lec # 6 Winter Combinational Circuit Analysis Example Given this logic circuit we can : Find corresponding logic.
Discussion #10 1/16 Discussion #10 Logical Equivalences.
Propositional Calculus Math Foundations of Computer Science.
Propositional Equivalence Goal: Show how propositional equivalences are established & introduce the most important such equivalences.
Propositional Calculus Math Foundations of Computer Science.
Propositional Calculus CS 680: Formal Methods in Verification Computer Systems Jeremy Johnson.
SAT Solver Math Foundations of Computer Science. 2 Boolean Expressions  A Boolean expression is a Boolean function  Any Boolean function can be written.
Normal or Canonical Forms Rosen 1.2 (exercises). Logical Operators  - Disjunction  - Conjunction  - Negation  - Implication p  q   p  q  - Exclusive.
Satisfiability Introduction to Artificial Intelligence COS302 Michael L. Littman Fall 2001.
Systems Architecture I1 Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus so that they.
Normal Forms, Tautology and Satisfiability 2/3/121.
CS1502 Formal Methods in Computer Science
Apr. 3, 2000Systems Architecture I1 Systems Architecture I (CS ) Lecture 3: Review of Digital Circuits and Logic Design Jeremy R. Johnson Mon. Apr.
INTRODUCTION TO ARTIFICIAL INTELLIGENCE COS302 MICHAEL L. LITTMAN FALL 2001 Satisfiability.
Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson.
LDK R Logics for Data and Knowledge Representation Propositional Logic: Reasoning First version by Alessandro Agostini and Fausto Giunchiglia Second version.
Discrete Mathematics CS 2610 September Equal Boolean Functions Two Boolean functions F and G of degree n are equal iff for all (x 1,..x n )  B.
Disjunctive Normal Form CS 270: Math Foundation of CS Jeremy Johnson.
ENGIN112 L6: More Boolean Algebra September 15, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 6 More Boolean Algebra A B.
BOOLEAN ALGEBRA AND LOGIC SIMPLIFICATION
Boolean Expression Evaluation CS 270: Math Foundations of CS Jeremy Johnson.
CHAPTER 1 INTRODUCTION TO DIGITAL LOGIC. De Morgan’s Theorem De Morgan’s Theorem.
DE MORGAN’S THEOREM. De Morgan’s Theorem De Morgan’s Theorem.
The Logic of Boolean Connectives Chapter 4 Language, Proof and Logic.
1 Proving Properties of Recursive Functions and Data Structures CS 270 Math Foundations of CS Jeremy Johnson.
Computer Organization CS345 David Monismith Based upon notes by Dr. Bill Siever and notes from the Patternson and Hennessy Text.
CSIS-110 Introduction to Computer Science
Combinational Circuits Part 1
Truth Table to Statement Form
De Morgan’s Theorem,.
The Foundations: Logic and Proofs
DeMorgan’s Theorem DeMorgan’s 2nd Theorem
Propositional Equivalence
Propositional Calculus: Boolean Functions and Expressions
Thinking Mathematically
Truth Tables and Equivalent Statements
CHAPTER 2 Boolean Algebra
CSE 20: Discrete Mathematics for Computer Science Prof. Shachar Lovett
Discussion #10 Logical Equivalences
Disjunctive Normal Form
Jeremy R. Johnson Wed. Sept. 29, 1999
Propositional Calculus: Boolean Functions and Expressions
Proving Properties of Recursive Functions and Data Structures
Jeremy R. Johnson Anatole D. Ruslanov William M. Mongan
CSE 311 Foundations of Computing I
Propositional Calculus: Boolean Algebra and Simplification
Elementary Metamathematics
Discrete Mathematics CS 2610
CSE 370 – Winter Combinational Logic - 1
Representing Boolean functions
Propositional Equivalences
Boolean Algebra.
TRUTH TABLES continued.
Chapter 2 Introduction to Logic Circuits
Simplification of Boolean Expressions
Chapter 3 Introduction to Logic 2012 Pearson Education, Inc.
Faculty of Cybernetics, Statistics and Economic Informatics
Digital Logic Circuits
Combinational Logic Circuit
Laws & Rules of Boolean Algebra
The Foundations: Logic and Proofs
Boolean Algebra.
Presentation transcript:

Disjunctive Normal Form Math Foundations of Computer Science

Boolean Expressions A Boolean expression is a Boolean function September 4, 1997 Boolean Expressions A Boolean expression is a Boolean function Any Boolean function can be written as a Boolean expression Disjunctive normal form (sums of products) For each row in the truth table where the output is true, write a product such that the corresponding input is the only input combination that is true Not unique E.G. (multiplexor function) s x0 x1 f 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 2 2

Disjunctive Normal Form Theorem. Any boolean expression can be converted to an equivalent boolean exprssion in DNF. Proof. Any boolean expression defined a boolean function. Construct the truth table for the boolean expression and use the procedure on the previous slide to construct a boolean expression in DNF for the function defined by the truth table.

Alternative Proof A recursive conversion algorithm with corresponding inductive proof of correctness. We can assume that constants have been eliminated  First convert to Negative Normal Form (NNF) (not expr) only occurs when expr is a variable Use DeMorgan’s Law and Double Negation Law Then convert to DNF Distribute and over or

Is-NNF (defun is-nnf (expr) (cond ( (is-constant expr) t) ( (is-variable expr) t ) ( (is-not expr) (is-variable (op1 expr)) ) ( (is-or expr) (and (is-nnf (op1 expr)) (is-nnf (op2 expr))) ) ( (is-and expr) (and (is-nnf (op1 expr)) (is-nnf (op2 expr))) ) )

NNF (mutual-recursion (defun nnf-not (expr) (cond ( (is-constant (op1 expr)) expr ) ( (is-variable (op1 expr)) expr ) ( (is-not (op1 expr)) (nnf (op1 (op1 expr))) ) ( (is-or (op1 expr)) (list 'and (nnf (list 'not (op1 (op1 expr)))) (nnf (list 'not (op2 (op1 expr))))) ) ( (is-and (op1 expr)) (list 'or (nnf (list 'not (op1 (op1 expr)))) )

NNF (defun nnf (expr) (cond ( (is-constant expr) expr ) ( (is-variable expr) expr ) ( (is-not expr) (nnf-not expr) ) ( (is-or expr) (list 'or (nnf (op1 expr)) (nnf (op2 expr))) ) ( (is-and expr) (list 'or (nnf (op1 expr)) (nnf (op2 expr))) ) )

Correctness (is-nnf (nnf expr) Structural induction on expr using De Morgan’s laws and Double Negation law (not (and p q))  (or (not p) (not q)) (not (or p q))  (and (not p) (not q)) (not (not p))  p Base case. Expr = var or (not var) Assume true for expr1 and expr2 and show for (not expr), (or expr1 expr2), and (and expr1 expr2) and and or are trivial

Correctness for (not expr) (is-nnf (nnf ‘(not expr)) (nnf ‘(not expr)) (nnf-not ‘(not expr)) Case 1. (nnf-not ‘(not (not expr))) = (nnf expr)) which is correct by induction and double negation Case 2. (nnf-not ‘(not (and expr1 expr2))) = (nnf ‘(or (not expr1) (not expr2))) = (list ‘or (nnf ‘(not expr1)) (nnf ‘(not expr2))) which is correct by induction and De Morgan Case 3. (nnf-not ‘(not (or expr1 expr2)))

Is-DNF (defun is-dnf (expr) (and (is-nnf expr) (no-andor expr)) ) ; no and above or (defun no-andor (expr) (cond ( (is-constant expr) t ) ( (is-variable expr) t ) ( (is-not expr) (no-andor (op1 expr)) ) ( (is-or expr) (and (no-andor (op1 expr)) (no-andor (op2 expr))) ) ( (is-and expr) (and (no-or (op1 expr)) (no-or (op2 expr))) )

Is-DNF (defun no-or (expr) (cond ( (is-constant expr) t) ( (is-variable expr) t ) ( (is-not expr) (no-or (op1 expr)) ) ( (is-or expr) nil ) ( (is-and expr) (and (no-or (op1 expr)) (no-or (op2 expr))) ) )

DNF (defun dnf (expr) (nnf2dnf (nnf expr)) ) (defun nnf2dnf (expr) (cond ( (is-constant expr) expr ) ( (is-variable expr) expr ) ( (is-not expr) expr ) ( (is-or expr) (list 'or (nnf2dnf (op1 expr)) (nnf2dnf (op2 expr))) ) ( (is-and expr) (distrib-andor (nnf2dnf (op1 expr)) (nnf2dnf (op2 expr))) )

Distribute And over Or (and E (or F1 F2)) (and (or E1 E2) F) (or (and E F1) (and E F2)) (and (or E1 E2) F) (or (and E1 F) (and E2 F)) (and (or E1 E2) (or (F1 F2))  (or (and E1 F1) (and E1 F2) (and E2 F1) (and E2 F2)) (or (and E1 F1) (or (and E1 F2) (or (and E2 F1) (and E2 F2))))

DNF ; assume (and (is-dnf expr1) (is-dnf expr2)) ; distribute and over or in (and expr1 expr2) (defun distrib-andor (expr1 expr2) (cond ( (and (not (is-or expr1)) (not (is-or expr2))) (list 'and expr1 expr2) ) ( (and (not (is-or expr1)) (is-or expr2)) (list 'or (distrib-andor expr1 (op1 expr2)) (distrib-andor expr1 (op2 expr2))) ) ( (and (is-or expr1) (not (is-or expr2))) (list 'or (distrib-andor (op1 expr1) expr2) (distrib-andor (op2 expr1) expr2)) ) ( (and (is-or expr1) (is-or expr2)) (list 'or (distrib-andor (op1 expr1) (op1 expr2)) (list 'or (distrib-andor (op1 expr1) (op2 expr2)) (list 'or (distrib-andor (op2 expr1) (op1 expr2)) (distrib-andor (op2 expr1) (op2 expr2))))) ) ) )

Exponential Blowup (x1  y1)    (xn  yn) (x1    xn)    (y1    yn) How many conjunctions in the converted expression?