Английская Википедия:Consensus theorem

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Short description

Variable inputs Function values
x y z <math>xy \vee \bar{x}z \vee yz</math> <math>xy \vee \bar{x}z</math>
0 0 0 0 0
0 0 1 1 1
0 1 0 0 0
0 1 1 1 1
1 0 0 0 0
1 0 1 0 0
1 1 0 1 1
1 1 1 1 1
Файл:Karnaugh map KV Race Hazard 10.svg
Karnaugh map of ABШаблон:OverlineCBC. Omitting the red rectangle does not change the covered area.

In Boolean algebra, the consensus theorem or rule of consensus[1] is the identity:

<math>xy \vee \bar{x}z \vee yz = xy \vee \bar{x}z</math>

The consensus or resolvent of the terms <math>xy</math> and <math>\bar{x}z</math> is <math>yz</math>. It is the conjunction of all the unique literals of the terms, excluding the literal that appears unnegated in one term and negated in the other. If <math>y</math> includes a term that is negated in <math>z</math> (or vice versa), the consensus term <math>yz</math> is false; in other words, there is no consensus term.

The conjunctive dual of this equation is:

<math>(x \vee y)(\bar{x} \vee z)(y \vee z) = (x \vee y)(\bar{x} \vee z)</math>

Proof

<math> \begin{align}
    xy \vee \bar{x}z \vee yz &=  xy \vee \bar{x}z \vee (x \vee \bar{x})yz \\
           &=  xy \vee \bar{x}z \vee xyz \vee \bar{x}yz \\
           &=  (xy \vee xyz) \vee (\bar{x}z \vee \bar{x}yz) \\
           &= xy(1\vee z)\vee\bar{x}z(1\vee y) \\
           &=  xy \vee \bar{x}z
     \end{align}     

</math>

Consensus

Шаблон:AnchorШаблон:Anchor The consensus or consensus term of two conjunctive terms of a disjunction is defined when one term contains the literal <math>a</math> and the other the literal <math>\bar{a}</math>, an opposition. The consensus is the conjunction of the two terms, omitting both <math>a</math> and <math>\bar{a}</math>, and repeated literals. For example, the consensus of <math>\bar{x}yz</math> and <math>w\bar{y}z</math> is <math>w\bar{x}z</math>.[2] The consensus is undefined if there is more than one opposition.

For the conjunctive dual of the rule, the consensus <math>y \vee z</math> can be derived from <math>(x\vee y)</math> and <math>(\bar{x} \vee z)</math> through the resolution inference rule. This shows that the LHS is derivable from the RHS (if AB then AAB; replacing A with RHS and B with (yz) ). The RHS can be derived from the LHS simply through the conjunction elimination inference rule. Since RHS → LHS and LHS → RHS (in propositional calculus), then LHS = RHS (in Boolean algebra).

Applications

In Boolean algebra, repeated consensus is the core of one algorithm for calculating the Blake canonical form of a formula.[2]

In digital logic, including the consensus term in a circuit can eliminate race hazards.[3]

History

The concept of consensus was introduced by Archie Blake in 1937, related to the Blake canonical form.[4]Шаблон:Page needed It was rediscovered by Samson and Mills in 1954[5] and by Quine in 1955.[6] Quine coined the term 'consensus'. Robinson used it for clauses in 1965 as the basis of his "resolution principle".[7][8]

References

Шаблон:Reflist

Further reading

  • Roth, Charles H. Jr. and Kinney, Larry L. (2004, 2010). "Fundamentals of Logic Design", 6th Ed., p. 66ff.

  1. Шаблон:Ill, Boolean Reasoning: The Logic of Boolean Equations, 2nd edition 2003, p. 44
  2. 2,0 2,1 Frank Markham Brown, Boolean Reasoning: The Logic of Boolean Equations, 2nd edition 2003, p. 81
  3. Шаблон:Cite book
  4. "Canonical expressions in Boolean algebra", Dissertation, Department of Mathematics, University of Chicago, 1937, reviewed in J. C. C. McKinsey, The Journal of Symbolic Logic 3:2:93 (June 1938) Шаблон:Doi Шаблон:JSTOR
  5. Edward W. Samson, Burton E. Mills, Air Force Cambridge Research Center, Technical Report 54-21, April 1954
  6. Willard van Orman Quine, "The problem of simplifying truth functions", American Mathematical Monthly 59:521-531, 1952 Шаблон:JSTOR
  7. John Alan Robinson, "A Machine-Oriented Logic Based on the Resolution Principle", Journal of the ACM 12:1: 23–41.
  8. Donald Ervin Knuth, The Art of Computer Programming 4A: Combinatorial Algorithms, part 1, p. 539