Digital Logic Design: a rigorous approach c

Similar documents
Comp487/587 - Boolean Formulas

Logic as a Tool Chapter 1: Understanding Propositional Logic 1.1 Propositions and logical connectives. Truth tables and tautologies

Propositional Logic: Part II - Syntax & Proofs 0-0

CSCE 222 Discrete Structures for Computing. Propositional Logic. Dr. Hyunyoung Lee. !!!!!! Based on slides by Andreas Klappenecker

Digital Logic Design: a rigorous approach c

Tecniche di Verifica. Introduction to Propositional Logic

3 Propositional Logic

A brief introduction to Logic. (slides from

Propositional Logic and Semantics

EECS 1028 M: Discrete Mathematics for Engineers

Lecture 2. Logic Compound Statements Conditional Statements Valid & Invalid Arguments Digital Logic Circuits. Reading (Epp s textbook)

3. Only sequences that were formed by using finitely many applications of rules 1 and 2, are propositional formulas.

Packet #1: Logic & Proofs. Applied Discrete Mathematics

Natural Deduction for Propositional Logic

CHAPTER 10. Gentzen Style Proof Systems for Classical Logic

Unit 1. Propositional Logic Reading do all quick-checks Propositional Logic: Ch. 2.intro, 2.2, 2.3, 2.4. Review 2.9

Chapter 2 Propositional Logic: Formulas, Models, Tableaux

Syntax of propositional logic. Syntax tree of a formula. Semantics of propositional logic (I) Subformulas

Truth-Functional Logic

02 Propositional Logic

Introduction to Theoretical Computer Science

Natural Deduction. Formal Methods in Verification of Computer Systems Jeremy Johnson

UNIT-I: Propositional Logic

Mathematics 114L Spring 2018 D.A. Martin. Mathematical Logic

Topic 1: Propositional logic

Chapter 11: Automated Proof Systems

Propositional Logic Language

Propositional and Predicate Logic - V

Propositional Language - Semantics

3 The Semantics of the Propositional Calculus

The Importance of Being Formal. Martin Henz. February 5, Propositional Logic

Propositional Logic. Yimei Xiang 11 February format strictly follow the laws and never skip any step.

Review CHAPTER. 2.1 Definitions in Chapter Sample Exam Questions. 2.1 Set; Element; Member; Universal Set Partition. 2.

Propositional and Predicate Logic - II

Compound Propositions

Applied Logic. Lecture 1 - Propositional logic. Marcin Szczuka. Institute of Informatics, The University of Warsaw

An Introduction to Modal Logic III

LING 106. Knowledge of Meaning Lecture 3-1 Yimei Xiang Feb 6, Propositional logic

The Modal Logic of Pure Provability

Propositional logic (revision) & semantic entailment. p. 1/34

CSE 20: Discrete Mathematics

Discrete Mathematics and Its Applications

Chapter 3: Propositional Calculus: Deductive Systems. September 19, 2008

Boolean Algebra and Digital Logic

Language of Propositional Logic

Propositional logic ( ): Review from Mat 1348

1. Prove: A full m- ary tree with i internal vertices contains n = mi + 1 vertices.

Slide Set 3. for ENEL 353 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary

Logic. Definition [1] A logic is a formal language that comes with rules for deducing the truth of one proposition from the truth of another.

Herbrand Theorem, Equality, and Compactness

A statement is a sentence that is definitely either true or false but not both.

Chapter 4: Classical Propositional Semantics

Math 267a - Propositional Proof Complexity. Lecture #1: 14 January 2002

The semantics of propositional logic

Announcements. CS311H: Discrete Mathematics. Propositional Logic II. Inverse of an Implication. Converse of a Implication

Boolean Algebra CHAPTER 15

Madhavan Mukund Chennai Mathematical Institute

Examples: P: it is not the case that P. P Q: P or Q P Q: P implies Q (if P then Q) Typical formula:

Propositional Logic: Equivalence

Department of Computer Science University at Albany, State University of New York Solutions to Sample Discrete Mathematics Examination II (Fall 2007)

Chapter 1, Section 1.1 Propositional Logic

Conjunction: p q is true if both p, q are true, and false if at least one of p, q is false. The truth table for conjunction is as follows.

Propositional Logic: Syntax

Lecture 3: Semantics of Propositional Logic

Part I: Propositional Calculus

Logic for Computer Science - Week 5 Natural Deduction

Digital Logic (2) Boolean Algebra

Propositional Logic. Testing, Quality Assurance, and Maintenance Winter Prof. Arie Gurfinkel

Boolean algebra. Examples of these individual laws of Boolean, rules and theorems for Boolean algebra are given in the following table.

Packet #2: Set Theory & Predicate Calculus. Applied Discrete Mathematics

First-Order Logic. 1 Syntax. Domain of Discourse. FO Vocabulary. Terms

Propositional Logic: Models and Proofs

Introduction to Metalogic

Propositional Logics and their Algebraic Equivalents

1.1 Statements and Compound Statements

CITS2211 Discrete Structures. Propositional Logic

2. The Logic of Compound Statements Summary. Aaron Tan August 2017

COS 140: Foundations of Computer Science

Filtrations and Basic Proof Theory Notes for Lecture 5

Propositional Logic. CS 3234: Logic and Formal Systems. Martin Henz and Aquinas Hobor. August 26, Generated on Tuesday 31 August, 2010, 16:54

Part 1: Propositional Logic

CSC Discrete Math I, Spring Propositional Logic

Lecture Notes on Inductive Definitions

Lecture 4: Proposition, Connectives and Truth Tables

Logic. Propositional Logic: Syntax. Wffs

Logic Part I: Classical Logic and Its Semantics

Exercises 1 - Solutions

Propositional Logic Part 1

PROPOSITIONAL LOGIC. VL Logik: WS 2018/19

Logic and Proofs. (A brief summary)

Chapter 11: Automated Proof Systems (1)

Knowledge representation DATA INFORMATION KNOWLEDGE WISDOM. Figure Relation ship between data, information knowledge and wisdom.

Logic. Propositional Logic: Syntax

CDM Propositional Logic

Chapter 4: Computation tree logic

More Propositional Logic Algebra: Expressive Completeness and Completeness of Equivalences. Computability and Logic

10 Propositional logic

Chapter 2: Switching Algebra and Logic Circuits

Review of Predicate Logic

CS 173 Lecture 2: Propositional Logic

Transcription:

Digital Logic Design: a rigorous approach c Chapter 6: Propositional Logic Guy Even Moti Medina School of Electrical Engineering Tel-Aviv Univ. November 4, 2015 Book Homepage: http://www.eng.tau.ac.il/~guy/even-medina 1/51

building blocks of Boolean formulas The building blocks of a Boolean formula are constants, variables, and connectives. 1 A constant is either 0 or 1. As in the case of bits, we interpret a 1 as true and a 0 as a false. The terms constant and bit are synonyms; the term bit is used in Boolean functions and in circuits while the term constants is used in Boolean formulas. 2 A variable is an element in a set of variables. We denote the set of variables by U. The set U does not contain constants. Variables are usually denoted by upper case letters. 3 Connectives are used to build longer formulas from shorter ones. We denote the set of connectives by C. 2/51

logical connectives We consider unary, binary, and higher arity connectives. 1 There is only one unary connective called negation. Negation of a variable A is denoted by not(a), A, or Ā. 2 There are several binary connectives, the most common are and (denoted also by or ) and or (denoted also by or +). A binary connective is applied to two formulas. We later show the relation between binary connectives and Boolean functions B : {0,1} 2 {0,1}. 3 A connective has arity j if it is applied to j formulas. The arity of negation is 1, the arity of and is 2, etc. 3/51

parse trees We use parse trees to define Boolean formulas. Definition A parse tree is a pair (G,π), where G = (V,E) is a rooted tree and π : V {0,1} U C is a labeling function that satisfies: 1 A leaf is labeled by a constant or a variable. Formally, if v V is a leaf, then π(v) {0,1} U. 2 An interior vertex v is labeled by a connective whose arity equals the in-degree of v. Formally, if v V is an interior vertex, then π(v) C is a connective with arity deg in (v). We usually use only unary and binary connectives. Thus, unless stated otherwise, a parse tree has an in-degree of at most two. 4/51

example: parse tree and or X 0 Y Figure: A parse tree that corresponds to the Boolean formula ((X or 0) and ( Y)). The rooted trees that are hanging from the root of the parse tree (the and connective) are bordered by dashed rectangles. 5/51

Boolean formulas A Boolean formula is a string containing constants, variables, connectives, and parenthesis. Every parse tree defines a Boolean formula. This definition is constructive and the Boolean formula is obtained by an inorder traversal of the parse tree. A subformula ϕ i of a Boolean formula ϕ is the Boolean formula that is obtained by an inorder traversal of a subtree in the parse tree. 6/51

Examples of Good and Bad Formulas (A and B) (A or B) A or or B) not a Boolean formula! ((A and B) or (A and C) or 1). If ϕ and ψ are Boolean formulas, then (ϕ or ψ) is a Boolean formula. If ϕ is a Boolean formula, then ( ϕ) is a Boolean formula. We will stick to parse trees, and now show how they are parsed to generate valid Boolean formulas. 7/51

Algorithm 1 INORDER(G, π) - An algorithm for generating the Boolean formula corresponding to a parse tree (G,π), where G = (V,E) is a rooted tree with in-degree at most 2 and π : V {0,1} U C is a labeling function. 1 Base Case: If V = 1 then return π(v) (where v V is the only node in V) 2 Reduction Rule: 1 If deg in (r(g)) = 1, then 1 Let G 1 = (V 1,E 1) denote the rooted tree hanging from r(g). 2 Let π 1 denote the restriction of π to V 1. 3 α INORDER(G 1,π 1). 4 Return ( α). 2 If deg in (r(g)) = 2, then 1 Let G 1 = (V 1,E 1) and G 2 = (V 2,E 2) denote the rooted subtrees hanging from r(g). 2 Let π i denote the restriction of π to V i. 3 α INORDER(G 1,π 1). 4 β INORDER(G 2,π 2). 5 Return (α π(r(g)) β).

notation Let BF(U,C) denote the set of Boolean formulas over the set of variables U and the set of connectives C. To simplify notation, we abbreviate BF(U,C) by BF when the sets of variables and connectives are known. 9/51

examples Some of the connectives have several notations. The following formulas are the same, i.e. string equality. (A+B) = (A B) = (A or B), (A B) = (A B) = (A and B), ( B) = (not(b)) = ( B), (A xor B) = (A B), ((A C) ( B)) = ((A+C) ( B)). We sometimes omit parentheses from formulas if their parse tree is obvious. When parenthesis are omitted, one should use precedence rules as in arithmetic, e.g., a b +c d = ((a b)+(c d)). 10/51

the implication connective The implication connective is denoted by. X Y X Y 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 Table: The truth table representation and the multiplication table of the implication connective. Lemma A B is true iff A B. 11/51

more on the implication connective The implication connective is not commutative, namely, (0 1) (1 0). This connective is called implication since it models the natural language templates Y if X and if X then Y. Note that X Y is always 1 if X = 0. 12/51

connectives nand nor nand(a, B) nor(a, B) = not(and(a,b)), = not(or(a,b)). 13/51

truth tables X Y X nand Y 0 0 1 1 0 1 0 1 1 1 1 0 nand 0 1 0 1 1 1 1 0 X Y X nor Y 0 0 1 1 0 0 0 1 0 1 1 0 nor 0 1 0 1 0 1 0 0 14/51

the equivalence connective The equivalence connective is denoted by. (p q) abbreviates ((p q) and (q p)). X Y X Y 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 (X Y) = { 1 if X = Y 0 if X Y. 15/51

order matters! or not X 0 Y Figure: A parse tree that corresponds to the Boolean formula ((X or 0) ( Y)). The root is labeled by an implication connective. The rooted trees hanging from the root are encapsulated by dashed rectangles. 16/51

Syntax vs. Semantics Each connective has two roles: Syntax: building block for Boolean formulas ( glue ). Semantics: define truth value by a Boolean function. To emphasize the semantics role, we denote the Boolean function of a k-arity connective c by B c : {0,1} k {0,1}. Example Band(b 1,b 2 ) = b 1 b 2. Bnot(b) = 1 b. more notation: The function B X associated with a variable X is the identity function B X (b) = b. The function B σ associated with a constant σ {0,1} is the constant function B σ (b) = σ. 17/51

truth assignments Definition An assignment is a function τ : U {0,1}, where U is the set of variables. Our goal is to extend every assignment τ : U {0,1} to a function ˆτ : BF(U,C) {0,1} 18/51

extending truth assignments to formulas The extension ˆτ : BF {0,1} of an assignment τ : U {0,1} is defined as follows. Definition Let p BF be a Boolean formula generated by a parse tree (G,π). Then, ˆτ(p) = EVAL(G,π,τ), where EVAL is listed in the next slide. 19/51

Algorithm 2 EVAL(G,π,τ) - evaluate the truth value of the Boolean formula generated by the parse tree (G,π), where (i) G = (V,E) is a rooted tree with in-degree at most 2, (ii) π : V {0,1} U C, and (iii) τ : U {0,1} is an assignment. 1 Base Case: If V = 1 then 1 Let v V be the only node in V. 2 π(v) is a constant: If π(v) {0,1} then return (π(v)). 3 π(v) is a variable: return (τ(π(v)). 2 Reduction Rule: 1 If deg in (r(g)) = 1, then (in this case π(r(g)) = not) 1 Let G 1 = (V 1,E 1) denote the rooted tree hanging from r(g). 2 Let π 1 denote the restriction of π to V 1. 3 σ EVAL(G 1,π 1,τ). 4 Return (not(σ)). 2 If deg in (r(g)) = 2, then 1 Let G 1 = (V 1,E 1) and G 2 = (V 2,E 2) denote the rooted subtrees hanging from r(g). 2 Let π i denote the restriction of π to V i. 3 σ 1 EVAL(G 1,π 1,τ). 4 σ 2 EVAL(G 2,π 2,τ). 5 Return (B π(r(g)) (σ 1,σ 2)).

Evaluations vs. Representing a Function Evaluation: Fix a truth assignment τ : U {0,1}. Extended τ to every Boolean formula p BF. Formula as a function: Fix a Boolean formula p. Consider all possible truth assignments τ : U {0,1}. 21/51

satisfiability and logical equivalence Definition Let p denote a Boolean formula. 1 p is satisfiable if there exists an assignment τ such that ˆτ(p) = 1. 2 p is a tautology if ˆτ(p) = 1 for every assignment τ. Definition Two formulas p and q are logically equivalent if ˆτ(p) = ˆτ(q) for every assignment τ. 22/51

Examples 1 Show that ϕ = (X Y) is satisfiable. 2 Let ϕ = (X X). Show that ϕ is a tautology. τ(x) not(τ(x)) ˆτ(X X) 0 1 1 1 0 1 23/51

more examples Let ϕ = (X Y), and let ψ = ( X Y +X Ȳ). Show that ϕ and ψ are equivalent. We show that ˆτ(ϕ) = ˆτ(ψ) for every assignment τ. We do that by enumerating all the 2 U assignments. τ(x) τ(y) and(not(τ(x)),τ(y)) and(τ(x),not(τ(y))) ˆτ(ϕ) ˆτ(ψ) 0 0 0 0 0 0 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 0 0 0 Table: There are two variables, hence the enumeration consists of 2 2 = 4 assignments. The columns that correspond to ˆτ(ϕ) and ˆτ(ψ) are identical, hence ϕ and ψ are equivalent. 24/51

Satisfiability and Tautologies Lemma Let ϕ BF, then ϕ is satisfiable ( ϕ) is not a tautology. Proof. The proof is as follows. ϕ is satisfiable τ : ˆτ(ϕ) = 1 τ : not(ˆτ(ϕ)) = 0 τ : ˆτ( (ϕ)) = 0 ( ϕ) is not a tautology. 25/51

Every Boolean formula representes a function Assume that U = {X 1,...,X n }. Definition Given a binary vector v = (v 1,...,v n ) {0,1} n, the assignment τ v : {X 1,...,X n } {0,1} is defined by τ v (X i ) = v i. Definition A Boolean formula p over the variables U = {X 1,...,X n } defines the Boolean function B p : {0,1} n {0,1} by Example B p (v 1,...v n ) = ˆτ v (p). p = X 1 X 2 B p (0,0) = 0, B p (0,1) = 1,... 26/51

a tautology induces a constant function Claim A Boolean formula p is a tautology if and only if the Boolean function B p is identically one, i.e., B p (v) = 1, for every v {0,1} n. Proof. p is a tautology τ : ˆτ(p) = 1 v {0,1} n : ˆτ v (p) = 1 v {0,1} n : B p (v) = 1. 27/51

what about a satisfiable formula? Claim A Boolean formula p is a satisfiable if and only if the Boolean function B p is not identically zero, i.e., there exists a vector v {0,1} n such that B p (v) = 1. Proof. p is a satisfiable τ : ˆτ(p) = 1 v {0,1} n : ˆτ v (p) = 1 v {0,1} n : B p (v) = 1. 28/51

equivalent formulas Claim Two Boolean formulas p and q are logically equivalent if and only if the Boolean functions B p and B q are identical, i.e., B p (v) = B q (v), for every v {0,1} n. Proof. p and q are logically equivalent τ : ˆτ(p) = ˆτ(q) v {0,1} n : ˆτ v (p) = ˆτ v (q) v {0,1} n : B p (v) = B q (v). 29/51

Example: Composition of Boolean formulas If ϕ = (α 1 and α 2 ), then B ϕ (v) = ˆτ v (ϕ) = ˆτ v (α 1 and α 2 ) = Band(ˆτ v (α 1 ),ˆτ v (α 2 )) = Band(B α1 (v),b α2 (v)). Thus, we can express complicated Boolean functions by composing long Boolean formulas. 30/51

Composition of Boolean formulas Lemma If ϕ = α 1 α 2 for a binary connective, then v {0,1} n : B ϕ (v) = B (B α1 (v),b α2 (v)). 31/51

equivalence and tautology Claim Two Boolean formulas p and q are logically equivalent if and only if the formula (p q) is a tautology. 32/51

substitution Substitution is used to compose large formulas from smaller ones. For simplicity, we deal with substitution in formulas over two variables; the generalization to formulas over any number of variables is straightforward. 1 ϕ BF({X 1,X 2 },C), 2 α 1,α 2 BF(U,C). 3 (G ϕ,π ϕ ) denotes the parse tree of ϕ. Definition Substitution of α i in ϕ yields the Boolean formula ϕ(α 1,α 2 ) BF(U,C) that is generated by the parse tree (G,π) defined as follows. For each leaf of v G ϕ that is labeled by a variable X i, replace the leaf v by a new copy of (G αi,π αi ). 33/51

example: substitution + not X1 X2 X 0 Y + not X 0 Y Figure: ϕ, α 1, α 2, ϕ(α 1,α 2 ) 34/51

more on substitution Substitution can be obtain by applying a simple find-and-replace, where each instance of variable X i is replaced by a copy of the formula α i, for i {1,2}. One can easily generalize substitution to formulas ϕ BF({X 1,...,X k },C) for any k > 2. In this case, ϕ(α 1,...,α k ) is obtained by replacing every instance of X i by α i. 35/51

truth values and substitution Lemma For every assignment τ : U {0,1}, ˆτ(ϕ(α 1,α 2 )) = B ϕ (ˆτ(α 1 ),ˆτ(α 2 )). (1) 36/51

substitution preserves logical equivalence Let ϕ BF({X 1,X 2 },C), α 1,α 2 BF(U,C), ϕ BF({X 1,X 2 }, C), α 1, α 2 BF(U, C). Corollary If α i and α i are logically equivalent, and ϕ and ϕ are logically equivalent, then ϕ(α 1,α 2 ) and ϕ( α 1, α 2 ) are logically equivalent. Example ϕ = (X 1 X 2 ) ϕ = X 1 + X 2 α 1 = A B α 1 =Ā+B α 2 = C D α 2 = (C D) 37/51

Complete Sets of Connectives Every Boolean formula can be interpreted as Boolean function. In this section we deal with the following question: Which sets of connectives enable us to express every Boolean function? Definition A Boolean function B : {0,1} n {0,1} is expressible by BF({X 1,...,X n },C) if there exists a formula p BF({X 1,...,X n },C) such that B = B p. Definition A set C of connectives is complete if every Boolean function B : {0,1} n {0,1} is expressible by BF({X 1,...,X n },C). 38/51

Completeness of {, and, or} Theorem The set C = {,and,or} is a complete set of connectives. Proof Outline: Induction on n (the arity of Boolean function). 1 Induction basis for n = 1. 2 Induction step for B : {0,1} n {0,1} define: g(v 1,...,v n 1 ) = B(v 1,...,v n 1,0), h(v 1,...,v n 1 ) = B(v 1,...,v n 1,1). 3 By induction hyp. r,q BF({X 1,...,X n 1 },C) : h = B r and B q = g 4 Prove that B p = B for formula p defined by p = (q X n )+(r X n ) 39/51

example: changing connectives Let C = {and,xor}. We wish to find a formula β BF({X,Y,Z},C) that is logically equivalent to the formula β = (X Y)+Z. Parse β: ϕ(α 1,α 2 ) with α 1 = (X Y) and α 2 = Z. Verify that ϕ BF({X 1,X 2 },C) defined as follows is logically equivalent to ϕ = (X 1 +X 2 ). ϕ = X 1 X 2 (X 1 X 2 ). Apply substitution to define β = ϕ(α 1,α 2 ), thus β = ϕ(α 1,α 2 ) = α 1 α 2 (α 1 α 2 ) = (X Y) Z ((X Y) Z) You can check that ϕ(α 1,α 2 ) is indeed logically equivalent to β. 40/51

Theorem: changing connectives Theorem If the Boolean functions in {not, and, or} are expressible by formulas in BF({X 1,X 2 }, C), then C is a complete set of connectives. Proof Outline: 1 Express β BF({X 1,...,X n },C) by a logically equivalent formula β BF({X 1,...,X n }, C). 2 How? induction on the parse tree that generates β. 41/51

Important Tautologies Theorem The following Boolean formulas are tautologies. 1 law of excluded middle: X + X 2 double negation: X ( X) 3 modus ponens: (((X Y) X) Y) 4 contrapositive: (X Y) (Ȳ X) 5 material implication: (X Y) ( X +Y). 6 distribution: X (Y +Z) (X Y +X Z). 42/51

Substitution in Tautologies Recall the lemma: Lemma For every assignment τ : U {0,1}, ˆτ(ϕ(α 1,α 2 )) = B ϕ (ˆτ(α 1 ),ˆτ(α 2 )). (2) question Let α 1 and α 2 be any Boolean formulas. 1 Consider the Boolean formula ϕ = α 1 +not(α 1 ). Prove or refute that ϕ is a tautology. 2 Consider the Boolean formula ϕ = (α 1 α 2 ) (not(α 1 )+α 2 ). Prove or refute that ϕ is a tautology. 43/51

De Morgan s Laws Theorem (De Morgan s Laws) The following two Boolean formulas are tautologies: 1 ( (X +Y)) ( X Ȳ). 2 ( (X Y)) ( X +Ȳ). 44/51

De Morgan Dual Given a Boolean Formula ϕ BF(U,{,, }), apply the following replacements : X i X i X i X i What do you get? Example is replaced by ϕ = (X 1 + X 2 ) ( X 2 +X 3 ) dual(ϕ) = ( X 1 X 2 )+(X 2 X 3 ). What is the relation between ϕ and dual(ϕ)? 45/51

De Morgan Dual We define the De Morgan Dual using a recursive algorithm. 46/51

Algorithm 3 DM(ϕ) - An algorithm for computing the De Morgan dual of a Boolean formula ϕ BF({X 1,...,X n },{,or,and}). 1 Base Cases: 1 If ϕ = 0, then return 1. If ϕ = 1, then return 0. 2 If ϕ = ( 0), then return 0. If ϕ = ( 1), then return 1. 3 If ϕ = X i, then return ( X i ). 4 If ϕ = ( X i ), then return X i. 2 Reduction Rules: 1 If ϕ = ( ϕ 1 ), then return ( DM(ϕ 1 )). 2 If ϕ = (ϕ 1 ϕ 2 ), then return (DM(ϕ 1 )+DM(ϕ 2 )). 3 If ϕ = (ϕ 1 +ϕ 2 ), then return (DM(ϕ 1 ) DM(ϕ 2 )). Example DM(X ( Y)).

De Morgan Dual Exercise Prove that DM(ϕ) BF. The dual can be obtained by applying replacements to the labels in the parse tree of ϕ or directly to the characters of the string ϕ. Theorem For every Boolean formula ϕ, DM(ϕ) is logically equivalent to ( ϕ). Corollary For every Boolean formula ϕ, DM(DM(ϕ)) is logically equivalent to ϕ. Nice trick, but is it of any use?! 48/51

Negation Normal Form A formula is in negation normal form if negation is applied only directly to variables or constants. Definition A Boolean formula ϕ BF({X 1,...,X n },{,or,and}) is in negation normal form if the parse tree (G,π) of ϕ satisfies the following condition. If a vertex in G is labeled by negation (i.e., π(v) = ), then v is a parent of a leaf. Example (X 1 +X 2 ) and ( X 1 X 2 ). (X 1 X 2 ) and ( X 1 +X 2 ). 49/51

Negation Normal Form Definition A Boolean formula ϕ BF({X 1,...,X n },{,or,and}) is in negation normal form if the parse tree (G,π) of ϕ satisfies the following condition. If a vertex in G is labeled by negation (i.e., π(v) = ), then v is a parent of a leaf. Lemma If ϕ is in negation normal form, then so is DM(ϕ). We present an algorithm NNF(ϕ) that transforms a Boolean formula ϕ into a logically equivalent formula in negation normal form. 50/51

Algorithm 4 NNF(ϕ) - An algorithm for computing the negation normal form of a Boolean formula ϕ BF({X 1,...,X n },{,or,and}). 1 Base Cases: If ϕ {0,1,X i,( X i ), 0, 1}, then return ϕ. 2 Reduction Rules: 1 If ϕ = ( ϕ 1 ), then return DM(NNF(ϕ 1 )). 2 If ϕ = (ϕ 1 ϕ 2 ), then return (NNF(ϕ 1 ) NNF(ϕ 2 )). 3 If ϕ = (ϕ 1 +ϕ 2 ), then return (NNF(ϕ 1 )+NNF(ϕ 2 )). Theorem Let ϕ BF({X 1,...,X n },{,or,and}). Then, NNF(ϕ) is logically equivalent to ϕ and in negation normal form.