flowchart LR
M(0) --> N[NOT]
N --> Q{1}
Math Foundations of Computing
Consider the following two statements:
Are these two statements logically equivalent? What are two strategies we could use to find out?
DMOI 3.1.6
A Boolean circuit is an abstract description of the fundamental operation building block of computation: performing an operation on one or more bits.
flowchart LR
M(0) --> N[NOT]
N --> Q{1}
flowchart LR
A(1) --> C[OR]
B(0) --> C
C --> F{1}
E(1) --> G[AND]
H(0) --> G
G --> I{0}
We can string Boolean circuits together to make more complicated ones:
flowchart LR
A(0) --> C[NOT]
B(1) --> D[OR]
C --> D
D --> E[NOT]
E --> F{?}
Can you draw a simpler Boolean circuit that has the same output in all cases?
flowchart LR
A(p) --> C[NOT]
B(q) --> D[OR]
C --> D
D --> E[NOT]
E --> F{OUTPUT}
Informally, two sets of things are isomorphic if you can translate back and forth between them without losing “structure.”
In our case:
We’ll formally define isomorphisms once we’ve studied sets a bit more.