Shannon Cofactor
   HOME

TheInfoList



OR:

Boole's expansion theorem, often referred to as the Shannon expansion or decomposition, is the
identity Identity may refer to: * Identity document * Identity (philosophy) * Identity (social science) * Identity (mathematics) Arts and entertainment Film and television * ''Identity'' (1987 film), an Iranian film * ''Identity'' (2003 film), an ...
: F = x \cdot F_x + x' \cdot F_, where F is any
Boolean function In mathematics, a Boolean function is a function whose arguments and result assume values from a two-element set (usually , or ). Alternative names are switching function, used especially in older computer science literature, and truth functi ...
, x is a variable, x' is the complement of x, and F_xand F_ are F with the argument x set equal to 1 and to 0 respectively. The terms F_x and F_ are sometimes called the positive and negative Shannon cofactors, respectively, of F with respect to x. These are functions, computed by restrict operator, \operatorname(F, x, 0) and \operatorname(F, x, 1) (see
valuation (logic) In logic and model theory, a valuation can be: *In propositional logic, an assignment of truth values to propositional variables, with a corresponding assignment of truth values to all propositional formulas with those variables. *In first-order ...
and
partial application Partial may refer to: Mathematics *Partial derivative, derivative with respect to one of several variables of a function, with the other variables held constant ** ∂, a symbol that can denote a partial derivative, sometimes pronounced "partial ...
). It has been called the "fundamental theorem of Boolean algebra". Besides its theoretical importance, it paved the way for
binary decision diagram In computer science, a binary decision diagram (BDD) or branching program is a data structure that is used to represent a Boolean function. On a more abstract level, BDDs can be considered as a compressed representation of sets or relations. Un ...
s (BDDs), satisfiability solvers, and many other techniques relevant to
computer engineering Computer engineering (CE, CoE, or CpE) is a branch of engineering specialized in developing computer hardware and software. It integrates several fields of electrical engineering, electronics engineering and computer science. Computer engi ...
and
formal verification In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of a system with respect to a certain formal specification or property, using formal methods of mathematics. Formal ver ...
of digital circuits. In such engineering contexts (especially in BDDs), the expansion is interpreted as a
if-then-else In computer science, conditionals (that is, conditional statements, conditional expressions and conditional constructs) are programming language constructs that perform different computations or actions or return different values depending on t ...
, with the variable x being the condition and the cofactors being the branches (F_x when x is true and respectively F_ when x is false).G. D. Hachtel and F. Somenzi (1996), ''Logic Synthesis and Verification Algorithms'', p. 234


Statement of the theorem

A more explicit way of stating the theorem is: : f(X_1, X_2, \dots , X_n) = X_1 \cdot f(1, X_2, \dots , X_n) + X_1' \cdot f(0, X_2, \dots , X_n)


Variations and implications

; XOR-Form : The statement also holds when the
disjunction In logic, disjunction (also known as logical disjunction, logical or, logical addition, or inclusive disjunction) is a logical connective typically notated as \lor and read aloud as "or". For instance, the English language sentence "it is ...
"+" is replaced by the
XOR Exclusive or, exclusive disjunction, exclusive alternation, logical non-equivalence, or logical inequality is a logical operator whose negation is the logical biconditional. With two inputs, XOR is true if and only if the inputs differ (one ...
operator: : f(X_1, X_2, \dots , X_n) = X_1 \cdot f(1, X_2, \dots , X_n) \oplus X_1' \cdot f(0, X_2, \dots , X_n) ; Dual form: There is a dual form of the Shannon expansion (which does not have a related XOR form): : f(X_1, X_2, \dots , X_n) = (X_1 + f(0, X_2, \dots , X_n)) \cdot (X_1' + f(1, X_2, \dots , X_n)) Repeated application for each argument leads to the
Sum of Products In Boolean algebra, any Boolean function can be expressed in the canonical disjunctive normal form ( CDNF), minterm canonical form, or Sum of Products (SoP or SOP) as a disjunction (OR) of minterms. The De Morgan dual is the canonical conjuncti ...
(SoP) canonical form of the Boolean function f. For example for n=2 that would be :\begin f(X_1, X_2) & = X_1 \cdot f(1, X_2) + X_1' \cdot f(0, X_2)\\ & = X_1 X_2 \cdot f(1, 1) + X_1 X_2' \cdot f(1, 0) + X_1' X_2 \cdot f(0, 1) + X_1' X_2' \cdot f(0, 0) \end Likewise, application of the dual form leads to the
Product of Sums In Boolean algebra, any Boolean function can be expressed in the canonical disjunctive normal form ( CDNF), minterm canonical form, or Sum of Products (SoP or SOP) as a disjunction (OR) of minterms. The De Morgan dual is the canonical conjuncti ...
(PoS) canonical form (using the distributivity law of + over \cdot): :\begin f(X_1, X_2) & = (X_1 + f(0, X_2)) \cdot (X_1' + f(1, X_2))\\ & = (X_1 + X_2 + f(0, 0)) \cdot (X_1 + X_2' + f(0, 1)) \cdot (X_1' + X_2 + f(1, 0)) \cdot (X_1' + X_2' + f(1, 1)) \end


Properties of cofactors

; Linear properties of cofactors: : For a Boolean function ''F'' which is made up of two Boolean functions ''G'' and ''H'' the following are true: : If F = H' then F_x = H'_x : If F = G \cdot H then F_x = G_x \cdot H_x : If F = G + H then F_x = G_x + H_x : If F = G \oplus H then F_x = G_x \oplus H_x ; Characteristics of unate functions: : If ''F'' is a
unate function A unate function is a type of boolean function which has monotonic properties. They have been studied extensively in switching theory. A function f(x_1,x_2,\ldots,x_n) is said to be positive unate in x_i if for all possible values of x_j, j\neq i ...
and... : If ''F'' is positive unate then F = x \cdot F_x + F_ : If ''F'' is negative unate then F = F_x + x' \cdot F_


Operations with cofactors

; Boolean difference: : The Boolean difference or Boolean derivative of the function F with respect to the literal x is defined as: : \frac = F_x \oplus F_ ; Universal quantification: : The universal quantification of F is defined as: : \forall x F = F_x \cdot F_ ; Existential quantification: : The existential quantification of F is defined as: : \exists x F = F_x + F_


History

George Boole George Boole ( ; 2 November 1815 – 8 December 1864) was a largely self-taught English mathematician, philosopher and logician, most of whose short career was spent as the first professor of mathematics at Queen's College, Cork in Ireland. H ...
presented this expansion as his Proposition II, "To expand or develop a function involving any number of logical symbols", in his ''
Laws of Thought The laws of thought are fundamental axiomatic rules upon which rational discourse itself is often considered to be based. The formulation and clarification of such rules have a long tradition in the history of philosophy and logic. Generally the ...
'' (1854), and it was "widely applied by Boole and other nineteenth-century logicians".
Claude Shannon Claude Elwood Shannon (April 30, 1916 – February 24, 2001) was an American mathematician, electrical engineer, computer scientist, cryptographer and inventor known as the "father of information theory" and the man who laid the foundations of th ...
mentioned this expansion, among other Boolean identities, in a 1949 paper, and showed the switching network interpretations of the identity. In the literature of computer design and switching theory, the identity is often incorrectly attributed to Shannon.


Application to switching circuits

#
Binary decision diagrams In computer science, a binary decision diagram (BDD) or branching program is a data structure that is used to represent a Boolean function. On a more abstract level, BDDs can be considered as a compressed representation of sets or relations. Un ...
follow from systematic use of this theorem # Any Boolean function can be implemented directly in a switching circuit using a hierarchy of basic
multiplexer In electronics, a multiplexer (or mux; spelled sometimes as multiplexor), also known as a data selector, is a device that selects between several Analog signal, analog or Digital signal (electronics), digital input signals and forwards the sel ...
by repeated application of this theorem.


References

{{Reflist, refs= {{cite book , author-first=Paul Charles , author-last=Rosenbloom , author-link=Paul Charles Rosenbloom , title=The Elements of Mathematical Logic , date=1950 , page=5 {{cite book , author-first=George , author-last=Boole , author-link=George Boole , title=An Investigation of the Laws of Thought: On which are Founded the Mathematical Theories of Logic and Probabilities , date=1854 , page=72 , url=https://books.google.com/books?id=SWgLVT0otY8C&pg=PA73 {{cite book , title=Boolean Reasoning - The Logic of Boolean Equations , author-first=Frank Markham , author-last=Brown , edition=reissue of 2nd , publisher= Dover Publications, Inc. , location=Mineola, New York , date=2012 , orig-year=2003, 1990 , isbn=978-0-486-42785-0 , page=42}
https://web.archive.org/web/20170416231752/http://www2.fiit.stuba.sk/~kvasnicka/Free%20books/Brown_Boolean%20Reasoning.pdf -->
/ref> {{cite journal , author-last=Shannon , author-first=Claude , author-link=Claude Shannon , title=The Synthesis of Two-Terminal Switching Circuits , journal=
Bell System Technical Journal The ''Bell Labs Technical Journal'' was the in-house scientific journal for scientists of Bell Labs, published yearly by the IEEE society. The journal was originally established as ''The Bell System Technical Journal'' (BSTJ) in New York by the Am ...
, volume=28 , pages=59–98 2, date=January 1949 , doi=10.1002/j.1538-7305.1949.tb03624.x , issn=0005-8580 , url=https://archive.org/download/bstj28-1-59/bstj28-1-59.pdf
{{citation , title=A Survey of Literature on Function Decomposition , chapter=6. Historical Overview of the Research on Decomposition , version=Version IV , author-first1=Marek A. , author-last1=Perkowski , author-first2=Stanislaw , author-last2=Grygiel , publisher=Functional Decomposition Group, Department of Electrical Engineering, Portland University, Portland, Oregon, USA , date=1995-11-20 , citeseerx=10.1.1.64.1129 , page=21 (188 pages)


See also

* Reed–Muller expansion


External links


Shannon’s Decomposition
Example with multiplexers.
Optimizing Sequential Cycles Through Shannon Decomposition and Retiming (PDF)
Paper on application. Boolean algebra Theorems in lattice theory