1 Boolean Algebra 1. Boolean Algebra

1. Boolean Algebra
Fachgebiet Rechnersysteme
1
1 Boolean Algebra
1.
Verification Technology
Content
1.1 Boolean algebra basics (recap)
1 2 Reasoning about Boolean expressions
1.2
1. Boolean Algebra

2
The problem of logic verification: Show that two circuits
p
the same boolean function,, or: Show that a
implement
circuit correctly implements a specification
a
b
a
a
b
=1
1
g
&
g
&
&
b
&
1. Boolean Algebra
3
1.1 Boolean algebra basics
1.1 Boolean Algebra Basics

Gate representation
AND-operation (conjunction)
a
0
0
1
1
b ab
0 0
1 0
0 0
1 1
 0-dominance
0d i
a
b
a
b
a
b
German (old)
&
IEEEstandard
US-standard
(old)
1. Boolean Algebra
4
1.1 Boolean algebra basics

Gate representation
OR-operation (disjunction)
a b a b
0 0
0
0 1
1
1 0
1
1 1
1
 1-dominance
a
b
a
b
a
b
German ((old))
1
IEEEstandard
US-standard
(old)
1. Boolean Algebra
5
1.1 Boolean algebra basics

NOT-operation (negation, complement)
Gate representation
a
a
0
1
1
0
a
a
a
German ((old))
1
IEEEStandard
US-standard
(old)
1. Boolean Algebra
6
1.1 Boolean algebra basics

More notations ...
a•b
ab
a&b
a+b
ab
a | b
a
a
a'
Propositional Calculus
1. Boolean Algebra
7
1.1 Boolean algebra basics

More operations:
 (E)XOR  (exclusive-or,
(exclusive-or unequal,
unequal addition modulo 2)
Definition: a  b  a  b  a  b
a
0
0
1
1
b a b
0
0
1
1
0
1
1
0
Gate representation
a
b

a
=1
b
a
b
German (old)
IEEEstandard
US-standard
(old)
1. Boolean Algebra
8
1.1 Boolean algebra basics
 NAND
G t representation
Gate
t ti
a b (a  b)
0
0
1
1
0
1
0
1
1
1
1
0
a
b
a
b
a
b
German (old)
&
IEEEstandard
US-standard
(old)
1. Boolean Algebra
9
1.1 Boolean algebra basics
 NOR
Gate representation
a b (a  b)
0
0
1
1
0
1
0
1
1
0
0
0
a
b
a
b
a
b
German (old)
1
IEEE
IEEEstandard
US-standard
( ld)
(old)
1. Boolean Algebra
10
1.1 Boolean algebra basics
 Implikation :
a b  a b
 Equivalence  (equality):
a  b  a b  a  b
— The equivalence-function equals one iff the
arguments have equal values
— The
Th exor-function
f
ti equals
l one iff the
th arguments
t
have unequal values
— Generally: a  b = (a  b)
1. Boolean Algebra
11
1.1 Boolean algebra basics

Boolean functions
— Traffic-light checker: inputs: r red,
red g green,
green e
yellow
r e g p?
0 0 0
0 0 1
0 1 0
0 1 1
23 = 8 cases
1 0 0
1 0 1
1 1 0
1 1 1
r
e
g
TrafficLight
Checker
p
1. Boolean Algebra
12
1.1 Boolean algebra basics

r, e, g are Boolean variables
 B = {0
{0, 1} is the set of Boolean values
 A Boolean function in n variables is a mapping
F: Bn  B
 Such a function models a circuit with n inputs
and one output, in the example we have
B3  B
r
e
g
TrafficLight
Checker
p
1. Boolean Algebra
13
1.1 Boolean algebra basics
2 3 2 2 212 0
x 3 x 2 x 1x 0 f
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
Representation of Boolean
functions by means of
function tables and Veitch(Karnaugh-) maps
x3
0
x0
0
1
4
112
0
1
11
15
1
0
3
17
1
02
06
0
13
15
14
x2
8
9
0
11
0
10
x1
1. Boolean Algebra
14
1.1 Boolean algebra basics

Boolean terms are textual representations of Boolean
g,
functions,, e.g.,
a  b  c + c a  (e + b)

The syntax of Boolean terms:
 The constants 0 and 1 are Boolean terms
 Literals (variables and complemented variables) are
Boolean terms, for instance, a and a
 If a and b are Boolean terms then so are
(a  b),
(a + b),
a
1. Boolean Algebra
1.1 Boolean algebra basics

Product-terms (products, cubes) are conjunctions of
literals
 Each variable occurs only once
— Example: x
x•y•z
y z or xyz for short
 Special case: Minterm (product-term in all variables)
 Sum
Sum-terms
terms (clauses) are disjunctions of literals
 Special case: Maxterm (sum-term in all variables)
15
1. Boolean Algebra
1.1 Boolean algebra basics

A Sum-of-Products (sop) (also called a disjunctive normal
j
of products
p
form,, dnf)) is a disjunction
— Example: cyz + d + ax

A Product-of-Sums (pos) (also called a conjunctive normal
form, cnf) is a conjunction of sums
— Example: (c + x + b)(s + x)(a + x)
16
1. Boolean Algebra
17
1.1 Boolean algebra basics

The Rules of Boolean Algebra:
(T1) x + 0 = x
(T1')) x • 1 = x
(T1
Identity
(T2) x + 1 = 1
(T2') x • 0 = 0
0/1-Element
(T3) x + x = x
(T3') x • x = x
Idempotence
(T4) x = x
(T4') 1 = 0
Involution
(T5) x + x = 1
(T5') x • x = 0
Complement
1. Boolean Algebra
18
1.1 Boolean algebra basics
((T6)) x + y = y + x
((T6')) x • y = y • x
Commutativity
y
(T7) (x + y) + z = x + (y + z) = x + y + z
(T7')) (x • y) • z = x • (y • z) = x • y • z
(T7
Associativity
(T8) x•y + x•z = x•(y + z)
(T8') (x + y)•(x + z) = x + y•z
Distributivity
(T9) (x + y) = x • y
De Morgan's
Morgan s
Law
(T9')) (x • y) = x + y
(T9
(T10) (x
( 1 +...+
+ + xn )=
) x1 •...• xn
((T10')) (x
( 1 •...• xn ))= x1 +...+ xn
Generalized
G
li d
De Morgan's
Law
1. Boolean Algebra
19
1.1 Boolean algebra basics
((T11)) x + x•y
y=x+y
((T11')) x•(x
( + y) = x•y
y
Absorption
(T12) x + x•y = x
(T12') x•(x + y) = x
 Very important for the simplification of terms
and circuits! Example:
x
x
y
1
&
x
y
1
1. Boolean Algebra
1.1 Boolean algebra basics

Boole's Expansion Theorem (1849)
 also attributed to Shannon
20
1. Boolean Algebra
21
1.1 Boolean algebra basics
x 1x 2 x 3 x 4 f

0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1

f(0,x2 , x3 , x 4 )
f(1,x2 , x3 , x 4 )
Idea: Decompose a
function into two subfunctions which do not
depend on some variable,
e g x1
e.g.,
1. Boolean Algebra
22
1.1 Boolean algebra basics

Expansion Theorem: a Boolean Function f can be
p
according
g to a variable x as follows
decomposed
f  x  fx  x  f x
 f x , f x are called the Positive (1-)
(1 ) and Negative (0
(0-))
Cofactors of f with respect to x
 The cofactors can be calculated by
y replacing
g the
variable x by the constants 0 and 1, respectively
1. Boolean Algebra
23
1.1 Boolean algebra basics
— Illustration in the Veitch-diagram:
b
1
a
1
1
1
1
fa
1
c
f  c  a b  ab
fa
f
1. Boolean Algebra
24
1.1 Boolean algebra basics
— Illustration in the Veitch-diagram:
b
1

a
1
1
1
1
fa
1
c
f  c  a b  ab
f  a  fa  a  fa
fa
f
1. Boolean Algebra
25
1.1 Boolean algebra basics
— Circuit realization:
b
fa

1
a
1
1
1
1
&
fa
1
c
fa
1
&
fa
f
a
f  c  a b  ab
f  a  fa  a  f a
f
1. Boolean Algebra
26
1.1 Boolean algebra basics
 The cofactors are calculated by replacing a by 0 and 1,
respectively:
b
fa

1
a
1
1
1
1
&
fa
1
c
fa
1
&
fa
f
a
f = c + a b + ab,
ab
f a = c + 1 b + 1b = c + b,
f a = c + 0 b + 0b = c + b ,
f = a  ( c + b ) + a  (c + b )
f
1. Boolean Algebra
27
1.1 Boolean algebra basics
 The cofactors are calculated by replacing a by 0 and 1,
respectively plus simplifications:
b

1
a
1
1
1
1
fa
1
c
fa
c
b
1
fa
&
1
c
b
1
&
fa
f
a
f = c + a b + ab,
fa = c + 1 b + 1 b = c + b ,
fa = c + 0 b + 0 b = c + b ,
f = a  ( c + b ) + a  (c + b )
f
1. Boolean Algebra
28
1.1 Boolean algebra basics

The circuit used above is called a 2:1-Multiplexor
Symbol:
a
&
1
&
b
a
0
b
1
x
x
 Depending on x, the output is either equal
to a or equal to b
1. Boolean Algebra
29
1.1 Boolean algebra basics

Remark: the calculation of a cofactor can be viewed as
p of symbolic
y
simulation:
a step
 Traditional simulation determines the value at the
output of a gate-network for given values at the
inputs
 The calculation of a cofactor determines the
function at the output if some inputs assume a
constant value (0 or 1)
a
1
a
&
1
b
0
&
x
0
&
1
1
f
&
b
x
0
f=a
1. Boolean Algebra
1.1 Boolean algebra basics

3 operations between cofactors:
 The Boolean Difference (Exor)
 The Universal Quantification (And)
 The
Th Existential
E i t ti l Quantification
Q
tifi ti (Or)
(O )
30
1. Boolean Algebra
31
1.1 Boolean algebra basics

The Boolean Difference
 f(x)
x
 fx  fx
 XOR of both cofactors
 Characterizes
Ch
t i
all
ll situations
it ti
for
f which
hi h a change
h
off x
implies a change of f
1. Boolean Algebra
32
1.1 Boolean algebra basics
— Example:
b

a
1
1
0
0
fa
0
1
0
1
fa
f  a b  b c  abc
c
cofactors are
 here
 f(a)
 fa  f a
a
b
1
0
0
c
1
fa  fa  c
1. Boolean Algebra
33
1.1 Boolean algebra basics
— Example: 2:1-multiplexor
f  x b  x  a
a
&
1
&
b
x
f
 f(a)
 fa  f a
a
 (b  x )  ( x  b )
 (b  x )  ( x  b ) 
(b  x )  (x  b )  x
Of course! for x = 0 we have f = a,
so a implies f !
1. Boolean Algebra
34
1.1 Boolean algebra basics

The Boolean Existential Quantifer
(  x : f ( x ) )  fx  fx
 The disjunction of both cofactors
1. Boolean Algebra
35
1.1 Boolean algebra basics
(  a : f ( a ) )  fa  fa
b

1
a
fa
1
1
1
f
c
either
ith cofactor
f t
is 1 here
fa
b
1
1
1
c
fa  fa
1. Boolean Algebra
36
1.1 Boolean algebra basics

The calculation of the Boolean existential quantifier
particularly
y easy
y for a Boolean expression
p
in dnf:
is p
 f = ...·x + ... + ...·x + ... + ...
products
with x
products products
with x without x,x
(x: f(x))
( ))  fx  fx
( x: f(x)) = ...·1 + ... + ...·0 + ... + ...+
...·0 + ... + ...·1 + ... + ...
= ... + ... + ... + ... + ...
fx
fx
original expression where all occurences
of x,x are eliminated
— Example: f = ab + bc + abc
 f(a)
a:
f( ) = b + bc
b + bc
b (=
( b + c))
1. Boolean Algebra
37
1.1 Boolean algebra basics

The Boolean Universal Quantor
(  x : f ( x ) )  fx  fx
 The conjunction of both cofactors
1. Boolean Algebra
38
1.1 Boolean algebra basics
(  a : f ( a ) )  fa  fa
b

1
a
fa
1
1
1
f
c
both cofactors
are 1 here
fa
b
fa  fa
1
c
1. Boolean Algebra
1.1 Boolean algebra basics

The calculation of the Boolean universal quantifier
particularly
y easy
y for a Boolean expression
p
in cnf:
is p
 Rule: Eliminate all occurences of x,x
— Example: f = (b + c)(a + b)(a + b + c)
a: f(a) = (b + c)b(b + c) (= bc)
39
1. Boolean Algebra
40
1.1 Boolean algebra basics

Inclusion 
 A function f is included in (is covered by) function g,
g
f g
iff (if and only if) f  g  0 or equivalently f  g = 1
 Analogy (set theory):
F  G  F  G  0
g
g
f
1. Boolean Algebra
41
1.1 Boolean algebra basics
 Example of f  g using Karnaugh-maps:
1
1
1
1
1 1 1
1
1 1
f
g
1. Boolean Algebra
42
1.1 Boolean algebra basics

The following statements are equivalent:
fg
fg 0
(f  g = 1)
fg1
gf
fgg
f g  f
g
g
f
1. Boolean Algebra
1.1 Boolean algebra basics

Assume (i) a function f in dnf and assume (ii) that g is the
products of f are
function f where some of the p
eliminated.
products
not in g
Then g f
 Proof: f can be written in the form f = a + g.
g f is equivalent to g  f = 1 or g + f = 1.
g + (a + g) = g + a + g = 1.
 We have always: a  a + g.
43
1. Boolean Algebra
1.1 Boolean algebra basics

Assume (i) a function f in cnf and assume (ii) that g is the
function f where some of the clauses are eliminated.
Then f g
 Proof: f can be written in the form f = a·g.
f g is equivalent to f  g = 1 or f + g = 1.
(a·g) + g = a + g + g = 1.
 We have always:
y a·g
gg
g.
44
1. Boolean Algebra
45
1.1 Boolean algebra basics

Implicant of a Boolean function
 A product-term p is an implicant of a Boolean
function f iff
p f
d
abd is implicant of f
1
a
1
1
1
b
c
f
 Concept
C
t off prime-implicants
i
i li
t in
i two-level
t
l
l
logic synthesis
1. Boolean Algebra
46
1.1 Boolean algebra basics

Tautology:
 A Boolean function f is called a Tautology iff f = 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
f
— Is this a reasonable concept at all ???
— Examples:
E
l
a  a  1
a  b  a b  1
1. Boolean Algebra
47
1.1 Boolean algebra basics

Logicverification: show that two circuits with outputs f
p
the same boolean function!
and g implement
 Show that f  g is a tautology!
a
b
=1
1
f

a
a
b
1
&
g
&
&
b
&
f  g = f*g + f*g
1. Boolean Algebra
48
1.1 Boolean algebra basics

Boole's expansion theorem is the basis for a "Divideq
approach
pp
to tautology
gy checking
g
and-conquer"
— f = 1 iff both cofactors are equal to one
f =1
x  fx  x  fx  1
fx = 1
fx = 1
2p
problems in n-1
variables
1. Boolean Algebra
49
1.1 Boolean algebra basics
— Example: f  a  b  a  b  1 ?
fa = 1 + b + 1  b = 1
f  a b  a b  1
fa = 0 + b + 0  b = b + b = 1
 Tautology checking may induce an
exponential number of cases !
1. Boolean Algebra
50
1.1 Boolean algebra basics

Satisfiability: a Boolean function f is satisfiable, if there
is at least one combination of variable values for which f
=1
 A boolean function f  0 is satisfiable!
 f is a tautology iff f is unsatisfiable
— Example:
f  a  b  a b  1 ?
f  (a  b  a  b ) 
 a  b  (a  b )
is not satisfiable
 May also need an exponential # steps
1. Boolean Algebra
51
1.1 Boolean algebra basics

Example of application: assume a network of gates with
p
f and g.
g If we want to know if both outputs
p
two outputs
can be 1 for the same combination of input values, then
we can check if f·g is satisfiable.
1
...
1
f
g
1. Boolean Algebra
1.1 Boolean algebra basics
If f is a tautology and if f  g then g is also a tautology
 If f is unsatifiable and if g  f then g is also unsatisfiable

52
1. Boolean Algebra
53
1.1 Grundbegriffe der boolesche Algebra

German/Engl Glossary
a, a
a+b+c
Literal
Summenterm/Disjunktion/
Oder-Klausel
Produktterm/Konjunktion/
Und-Klausel
j
Normalform (DNF)
(
)
disjunktive
literal
sum/disjunction/
clause
abc
product/conjunction/
cube
disjunctive
j
normal form (dnf)/
(
)
ab + bcd
sum-of-products (sop)
(a + b)(b + c)konjunktive Normalform (KNF) conjunctive normal form (cnf)/
product-of-sums
fx
0-/negativer Kofaktor
0-/negative cofactor
1-/positiver Kofaktor
1-/positive cofactor
fx
f = xfx + xfx Boolescher Entwicklungssatz Boole's expansion theorem
f=1
T t l i
Tautologie
t t l
tautology
f0
Erfüllbarkeit
satisfiability
1. Boolean Algebra
1.2 Reasoning About Boolean Expressions

The verification
Th
ifi ti
off a circuit
i
it involves
i
l
some procedures
d
by
b
which we give mathematical evidence that a statement
about the circuit is true
 A verification problem is not a circuit or a Booelan
expression
 A verification problem involves statements about a
circuit or a Boolean expression
 A Boolean expression is 0 or 1, a statement is
true or false
 "mathematical evidence" means that we are
able to g
give something
g like a mathematical
proof of the truth of some statement
54
1. Boolean Algebra
1.2 Reasoning about Boolean expressions

Typical statements involved in verification problems are:
 "The outputs of two circuits are equal"
 "It is not possible that the outputs x and y of a circuit
both assume the value 1
1"
 Implications: "If the inputs are ... then the outputs are
..." or: "If the outputs
p
are ... then the inputs
p
must be ..."
 ... and many other types of statements involving, for
instance, temporal qualifiers like "in the next clockcycle",
l " "never",
"
" "always",
" l
" "sometimes",
"
i
" etc.
55
1. Boolean Algebra
1.2 Reasoning about Boolean expressions





Boolean expressions assume the Boolean values 0 or 1
Statements (about a circuit) are either true or false,
false i.e.,
ie
they hold or do not hold (for a circuit)
 "it
it rains
rains", "the
the colour of my car is red
red", "a+b=b+a"
a+b=b+a , …
A proof of a statement establishes the truth of the
statement
A proof-procedure is a method by which we can
mechanically derive the truth of statements
We are interested in the development of proof-procedures
to verify statements about circuits
56
1. Boolean Algebra
1.2 Reasoning about Boolean expressions

We employ common mathematical notations using
symbols like "=",, etc. to make statements
— Example: "The outputs of two circuits are equal for
all possible input combinations", formally: f = g
(as in sin2(x) + cos2(x) = 1)
 We also used mathematical notations to introduce some
b i concepts
basic
t like
lik "" in
i the
th former
f
section
ti
 The following paragraphs attempt to be a little bit more
precise about symbols like "="
= in order avoid confusion
with the symbols of Boolean algebra
 = and  ((or  and )) are so similar,, what is
the difference?
 In fact, there IS a very close relationship
between propositional logic and Boolean
algebra
57
1. Boolean Algebra
58
1.2 Reasoning about Boolean expressions

We employ two different types of notation with different
symbols:
 The language of Boolean expressions (or Boolean terms)
with the Boolean operators ·, +, , , etc.
— Boolean expressions assume the values 0 or 1.
g g to make statements
 A ((mathematical)) meta-language
about Boolean expressions using symbols like =, , ,
etc. which are well-known from other mathematical
disciplines.
disciplines
— Statements are true or false.
— Examples: a+b = b+a,
b+a a·g  g,
g etc.
etc
1. Boolean Algebra
59
1.2 Reasoning about Boolean expressions

Again:
 A Boolean expression may assume the values 0 or 1.
1
 A statement may be true of false.
 The meta-language
meta language for statements has two different types of
symbols:
 Predicate
Predicate-symbols
symbols like = and . Applying a predicate to
expressions results in a statement which is true or false.
— Example: x  x+1
expression
expression
statement
t t
t
 While functions and expressions
p
return a value,,
predicates may be viewed as special functions
returning the values true or false
1. Boolean Algebra
60
1.2 Reasoning about Boolean expressions
 Logical (propositional) connectives like , , ¬,  and .
Logical
g
connectives combine statements to statements.
— Example: x  x+1  x = x+1
statement
statement
statement
xy  yz  xz
st.
st.
st.
statement
1. Boolean Algebra
61
1.2 Reasoning about Boolean expressions
 The resulting truth-values of the logical connectives are
defined analogously to the Boolean operators and are
typically given by truth-tables.
— Example:
p The truth-table of the p
propositional
p
and "".
Let A and B be two statements. Then the truth of A  B
is defined as follows:
B
A
false true
ffalse
l
f l
false
f l
false
true false true
AB
 We try to avoid an "over-formalization" of
verification problems and will use logical
connectives only rarely.
1. Boolean Algebra
62
1.2 Reasoning about Boolean expressions

Due to the close relationship between the Boolean operators
and the operators of our mathematical meta-language,
meta language, we
can often transform a verification problem (phrased as a
statement) into a different (often more managable) form.
 Example: Rather than to prove f = g we show that
fg = 1, i.e., that fg is a tautology.
1. Boolean Algebra
1.2 Reasoning about Boolean expressions

Generally, we transform statements F and G involving
Boolean expressions
p
into equivalent
q
Boolean expressions
p
Be(F) and Be(G) as follows (f,g Boolean expressions):
Statement Boolean expression
f=1
f
f=0
f
f=g
fg
fg
fg
FG
Be(F)  Be(g) etc.
¬F
F
Be(F)
FG
Be(F)  Be(G)
 The p
proof of a statement is equivalent
q
to showing
g the
tautology of the transformed Boolean expression, e.g., to
prove f = g we show that f g = 1
63
1. Boolean Algebra
64
1.2 Reasoning about Boolean expressions
— Example:
p The statement "If x is 1 then y is 1 in the
following circuit" is formalized as the statement
x=1y=1
The equivalent Boolean expression is
xy
The proof of the original statement is transformed
into the proof of the tautology of x  y, i.e., we have
to prove the statement x  y = 1
a
b
&
1
x
y
One possible proof:
x  y = x+y =ab + a+b
= a + b + a + b = 1 (q.e.d.)
1. Boolean Algebra
1.2 Reasoning about Boolean expressions





A note on implications:
In many situation
situation, we have to prove the truth of an if-then
if then
statement in natural language: "if A then C" where the
commitment C follows from another statement, the
assumption A.
Formally, this is denoted as an implication A  C.
The definition of the logical implication A  C in terms of a
truth-table:
C
A  C = ¬A  C
A
false true
a c = a + c
false true true
t
true
f l
false
t
true
AC
If we want to prove A  C then we see from the truth-table
truth table
that for the case where A is false we do not have to prove
anything - A  C is true independently of C.
65
1. Boolean Algebra
66
1.2 Reasoning about Boolean expressions

All what we have to do is to prove that C is true for the case
that A is true.
 We see this also if we transform the implication into the
equivalent Boolean expression. Assume again the statement:
x = 1  y = 1 and the equivalent Boolean expression x  y. If
we want to show the tautology, i.e., x  y = 1 and create the
function table of x  y:
y
a
x
&
x
0
1
b
0
1
1
1
0
1
y
1
then we have to show only that y=1 follows from x=1.
 For the circuit, our argument would be: If x=1 then a=1 and
b=1 since x=ab. Thus, y=1 since y=a+b. (q.e.d.)
1. Boolean Algebra
67
1.2 Reasoning about Boolean expressions

There are many different ways ("decision procedures") to
establish the truth of statements,, the transformation into
an equivalent Boolean expression is only one possibility.
 A very common technique is to create a circuit for the
l i l structure
logical
t
t
off the
th statement
t t
t and
d combine
bi this
thi circuit
i
it
with the original circuit.
 Since we are able to transform statements
into Boolean expressions we can also
transform statements into circuits!
— Example: The implication circuit for x  y
y
x
Implication
circuit
1
1. Boolean Algebra
68
1.2 Reasoning about Boolean expressions
— Statement and original circuit in combination:
a
b
&
1
x
For a tautology, the
output must always
be 1
y
1
p
Implication
circuit
1. Boolean Algebra
69
1.2 Reasoning about Boolean expressions
— Example we discussed before: Prove f = g
Equality
circuit
a
b
=1
1
f

a
a
b
&
g
&
&
b
&
For a tautology, the
output must always
be 1