The Elements of Computing Systems - 2ed - Appendix comprehension problem

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

The Elements of Computing Systems - 2ed - Appendix comprehension problem

mathias367
This post was updated on .
Hello all,

not sure if this is the right forum to do so, but I'm having a little bit of trouble understanding a concept presented in the book. At the moment I refer to the 1st appendix, "Boolean Function Synthesis". Any overall help understanding this appendix concept would be welcome, but in order to try to help this thread's reader, I'll try citing a more specific snippet.

I didn't really understand the part where the authors start differing between a Boolean -function- and a Boolean -expression-.  But the part that I really didn't understand was the one following Figure A1.1. I will copy the exact text I refer to: "We'll describe the synthesis algorithm by following its steps in this particular example. We start by focusing only on the truth table's rows in which the function's value is 1. In the function shown in figure A1.1, this happens in rows 3, 5, and 7. For each such row i, we define a Boolean function fi, that returns 0 for all the variable values except for the variable values in row i, for which the function returns 1. The truth table in figure A1.1 yields three such functions, whose truth table definitions are listed in the three rightmost columns in the table. Each of these functions fi can be represented by a conjunction (And-ing)...".

I really understand what was being done here, and why. Given this is an optional part of the book, I've decided to continue reading while this question isn't answered, but given that I would like to understand this concept, I thank you all beforehand for helping me reach this understanding.

* If this is not the right forum to post such subjects, please let me know and I will do so accordingly.
Reply | Threaded
Open this post in threaded view
|

Re: The Elements of Computing Systems - 2ed - Appendix comprehension problem

WBahn
Administrator
A Boolean expression is one way of representing a Boolean function. Another way of representing it is as a truth table. An expression uses Boolean operators to show the mathematical relationships between variables.

The approach that the authors are taking in constructing a Boolean expression that corresponds to the Boolean function depicted by a truth table is known to build a "sum of products" expression.

Consider the expression

f1 = x' · y · z'

Where the ' is a common shorthand for Not(), so x' = Not(x).
Similarly, the · is shorthand for And, while the + is shorthand for Or.

This expression can only be True when x is False, y is True, and z is False. This corresponds to exactly one row in the Truth Table for the overall function we are trying to implemnt.

We can easily build expressions for every row in the Truth Table that needs to produce a True result in the function. These are:

f2 = x · y' · z'
f3 = x · y · z'

Not consider what happens when we OR several expressions together:

f = f1 + f2 + f3

f is True whenever ANY of the terms, f1, f2, or f3, are True. If none of them are True, then f is False.

But, because of how we constructed f1, f2, and f3, we are guaranteed that one of them is True for each row of the function's truth table that should produce a True, and that all of them are False for all of the other rows. Hence, we have an expression (not necessarily the simplest expression) that corresponds to the function f.

f = (x' · y · z') + (x · y' · z') + (x · y · z')



Reply | Threaded
Open this post in threaded view
|

Re: The Elements of Computing Systems - 2ed - Appendix comprehension problem

mathias367
Thank you very much for your quick response and attentive explanation! I truly appreciate it