Logical equality

From HandWiki
Revision as of 19:38, 6 February 2024 by Steve Marsio (talk | contribs) (fix)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Logical equality
EQ, XNOR
Venn diagram of Logical equality
Definition[math]\displaystyle{ x = y }[/math]
Truth table[math]\displaystyle{ (1001) }[/math]
Logic gateXNOR ANSI.svg
Normal forms
Disjunctive[math]\displaystyle{ x \cdot y + \overline{x} \cdot \overline{y} }[/math]
Conjunctive[math]\displaystyle{ (\overline{x} + y ) \cdot (x + \overline{y}) }[/math]
Zhegalkin polynomial[math]\displaystyle{ 1 \oplus x \oplus y }[/math]
white;">Post's lattices
0-preservingno
1-preservingyes
Monotoneno
Affineyes

Logical equality is a logical operator that corresponds to equality in Boolean algebra and to the logical biconditional in propositional calculus. It gives the functional value true if both functional arguments have the same logical value, and false if they are different.

It is customary practice in various applications, if not always technically precise, to indicate the operation of logical equality on the logical operands x and y by any of the following forms:

[math]\displaystyle{ \begin{align} x &\leftrightarrow y & x &\Leftrightarrow y & \mathrm Exy \\ x &\mathrm{~EQ~} y & x &= y \end{align} }[/math]

Some logicians, however, draw a firm distinction between a functional form, like those in the left column, which they interpret as an application of a function to a pair of arguments — and thus a mere indication that the value of the compound expression depends on the values of the component expressions — and an equational form, like those in the right column, which they interpret as an assertion that the arguments have equal values, in other words, that the functional value of the compound expression is true.

Definition

Logical equality is an operation on two logical values, typically the values of two propositions, that produces a value of true if and only if both operands are false or both operands are true.

The truth table of p EQ q (also written as p = q, p ↔ q, Epq, p ≡ q, or p == q) is as follows:

The Venn diagram of A EQ B (red part is true)
Logical equality
p q p = q
0 0 1
0 1 0
1 0 0
1 1 1

Alternative descriptions

The form (x = y) is equivalent to the form (xy) ∨ (¬x ∧ ¬y).

[math]\displaystyle{ (x = y) = \lnot(x \oplus y) = \lnot x \oplus y = x \oplus \lnot y = (x \land y) \lor (\lnot x \land \lnot y) = (\lnot x \lor y) \land (x \lor \lnot y) }[/math]

For the operands x and y, the truth table of the logical equality operator is as follows:

[math]\displaystyle{ x \leftrightarrow y }[/math] y
T F
x T T F
F F T

Inequality

In mathematics, the plus sign "+" almost invariably indicates an operation that satisfies the axioms assigned to addition in the type of algebraic structure that is known as a field. For boolean algebra, this means that the logical operation signified by "+" is not the same as the inclusive disjunction signified by "∨" but is actually equivalent to the logical inequality operator signified by "≠", or what amounts to the same thing, the exclusive disjunction signified by "XOR" or "⊕". Naturally, these variations in usage have caused some failures to communicate between mathematicians and switching engineers over the years. At any rate, one has the following array of corresponding forms for the symbols associated with logical inequality:

[math]\displaystyle{ \begin{align} x &+ y & x &\not\equiv y & Jxy \\ x &\mathrm{~XOR~} y & x &\ne y \end{align} }[/math]

This explains why "EQ" is often called "XNOR" in the combinational logic of circuit engineers, since it is the negation of the XOR operation; "NXOR" is a less commonly used alternative.[1] Another rationalization of the admittedly circuitous name "XNOR" is that one begins with the "both false" operator NOR and then adds the eXception "or both true".

See also

References

  1. Keeton, Brian; Cavaness, Chuck; Friesen, Geoff (2001), Using Java 2, Que Publishing, p. 112, ISBN 9780789724687, https://books.google.com/books?id=yhFxiVyd1MgC&pg=PA112 .

External links