Negation
NOT | |
---|---|
Definition | |
Truth table | |
Logic gate | ![]() |
Normal forms | |
Disjunctive | |
Conjunctive | |
Zhegalkin polynomial | |
Post's lattices | |
0-preserving | no |
1-preserving | no |
Monotone | no |
Affine | yes |
Self-dual | yes |
![]() | This article includes a list of general references, but it lacks sufficient corresponding inline citations. (March 2013) |
In logic, negation, also called the logical complement, is an operation that takes a proposition to another proposition "not ", written (¬P), which is interpreted intuitively as being true when is false, and false when is true. Negation is thus a unary (single-argument) logical connective. It may be applied as an operation on notions, propositions, truth values, or semantic values more generally. In classical logic, negation is normally identified with the truth function that takes truth to falsity and vice versa. In intuitionistic logic, according to the Brouwer–Heyting–Kolmogorov interpretation, the negation of a proposition is the proposition whose proofs are the refutations of .
Definition
No agreement exists as to the possibility of defining negation, as to its logical status, function, and meaning, as to its field of applicability..., and as to the interpretation of the negative judgment, (F.H. Heinemann 1944).[1]
Classical negation is an operation on one logical value, typically the value of a proposition, that produces a value of true when its operand is false and a value of false when its operand is true. So, if statement is true, then (pronounced "not P") would therefore be false; and conversely, if is false, then would be true.
The truth table of is as follows:
True | False |
False | True |
Negation can be defined in terms of other logical operations. For example, can be defined as (where is logical consequence and is absolute falsehood). Conversely, one can define as for any proposition (where is logical conjunction). The idea here is that any contradiction is false. While these ideas work in both classical and intuitionistic logic, they do not work in paraconsistent logic, where contradictions are not necessarily false. In classical logic, we also get a further identity, can be defined as , where is logical disjunction.
Algebraically, classical negation corresponds to complementation in a Boolean algebra, and intuitionistic negation to pseudocomplementation in a Heyting algebra. These algebras provide a semantics for classical and intuitionistic logic respectively.
Notation
The negation of a proposition is notated in different ways in various contexts of discussion and fields of application. Among these variants are the following:
Notation | Plain Text | Vocalization |
---|---|---|
¬p | Not p | |
~p | Not p | |
-p | Not p | |
Np | En p | |
p' |
| |
̅p |
| |
!p |
|
The notation Np is Łukasiewicz notation.
In set theory is also used to indicate 'not member of': is the set of all members of that are not members of .
No matter how it is notated or symbolized, the negation can be read as "it is not the case that ", "not that ", or usually more simply as "not ".
Properties
Double negation
Within a system of classical logic, double negation, that is, the negation of the negation of a proposition , is logically equivalent to . Expressed in symbolic terms, . In intuitionistic logic, a proposition implies its double negation but not conversely. This marks one important difference between classical and intuitionistic negation. Algebraically, classical negation is called an involution of period two.
However, in intuitionistic logic we do have the equivalence of . Moreover, in the propositional case, a sentence is classically provable if its double negation is intuitionistically provable. This result is known as Glivenko's theorem.
Distributivity
De Morgan's laws provide a way of distributing negation over disjunction and conjunction :
- , and
- .
Linearity
Let denote the logical xor operation. In Boolean algebra, a linear function is one such that:
If there exists , , for all .
Another way to express this is that each variable always makes a difference in the truth-value of the operation or it never makes a difference. Negation is a linear logical operator.
Self dual
In Boolean algebra a self dual function is one such that:
for all . Negation is a self dual logical operator.
Rules of inference
There are a number of equivalent ways to formulate rules for negation. One usual way to formulate classical negation in a natural deduction setting is to take as primitive rules of inference negation introduction (from a derivation of to both and , infer ; this rule also being called reductio ad absurdum), negation elimination (from and infer ; this rule also being called ex falso quodlibet), and double negation elimination (from infer ). One obtains the rules for intuitionistic negation the same way but by excluding double negation elimination.
Negation introduction states that if an absurdity can be drawn as conclusion from then must not be the case (i.e. is false (classically) or refutable (intuitionistically) or etc.). Negation elimination states that anything follows from an absurdity. Sometimes negation elimination is formulated using a primitive absurdity sign . In this case the rule says that from and follows an absurdity. Together with double negation elimination one may infer our originally formulated rule, namely that anything follows from an absurdity.
Typically the intuitionistic negation of is defined as . Then negation introduction and elimination are just special cases of implication introduction (conditional proof) and elimination (modus ponens). In this case one must also add as a primitive rule ex falso quodlibet.
Programming
As in mathematics, negation is used in computer science to construct logical statements.
if (!(r == t))
{
/*...statements executed when r does NOT equal t...*/
}
The "!
" signifies logical NOT in B, C, and languages with a C-inspired syntax such as C++, Java, JavaScript, Perl, and PHP. "NOT
" is the operator used in ALGOL 60, BASIC, and languages with an ALGOL- or BASIC-inspired syntax such as Pascal, Ada, Eiffel and Seed7. Some languages (C++, Perl, etc.) provide more than one operator for negation. A few languages like PL/I and Ratfor use ¬
for negation. Some modern computers and operating systems will display ¬
as !
on files encoded in ASCII. Most modern languages allow the above statement to be shortened from if (!(r == t))
to if (r != t)
, which allows sometimes, when the compiler/interpreter is not able to optimize it, faster programs.
In computer science there is also bitwise negation. This takes the value given and switches all the binary 1s to 0s and 0s to 1s. See bitwise operation. This is often used to create ones' complement or "~
" in C or C++ and two's complement (just simplified to "-
" or the negative sign since this is equivalent to taking the arithmetic negative value of the number) as it basically creates the opposite (negative value equivalent) or mathematical complement of the value (where both values are added together they create a whole).
To get the absolute (positive equivalent) value of a given integer the following would work as the "-
" changes it from negative to positive (it is negative because "x < 0
" yields true)
unsigned int abs(int x)
{
if (x < 0)
return -x;
else
return x;
}
To demonstrate logical negation:
unsigned int abs(int x)
{
if (!(x < 0))
return x;
else
return -x;
}
Inverting the condition and reversing the outcomes produces code that is logically equivalent to the original code, i.e. will have identical results for any input (note that depending on the compiler used, the actual instructions performed by the computer may differ).
This convention occasionally surfaces in written speech, as computer-related slang for not. The phrase !voting
, for example, means "not voting".
Kripke semantics
In Kripke semantics where the semantic values of formulae are sets of possible worlds, negation can be taken to mean set-theoretic complementation.[citation needed] (See also possible world semantics.)
See also
- Ampheck
- Apophasis
- Binary opposition
- Bitwise NOT
- Cyclic negation
- Double negative elimination
- Grammatical polarity
- Logical conjunction
- Logical disjunction
- Negation (linguistics)
- Negation as failure
- NOT gate
- Plato's beard
- Square of opposition
- Truth function
- Truth table
References
- ^ Horn, Laurence R (2001). "Chapter 1". A NATURAL HISTORY OF NEGATION (PDF). Stanford University: CLSI Publications. p. 1. ISBN 1-57586-336-7. Retrieved 29 December 2013.
Further reading
- Gabbay, Dov, and Wansing, Heinrich, eds., 1999. What is Negation?, Kluwer.
- Horn, L., 2001. A Natural History of Negation, University of Chicago Press.
- G. H. von Wright, 1953–59, "On the Logic of Negation", Commentationes Physico-Mathematicae 22.
- Wansing, Heinrich, 2001, "Negation", in Goble, Lou, ed., The Blackwell Guide to Philosophical Logic, Blackwell.
- Tettamanti, Marco; Manenti, Rosa; Della Rosa, Pasquale A.; Falini, Andrea; Perani, Daniela; Cappa, Stefano F.; Moro, Andrea (2008). "Negation in the brain: Modulating action representation". NeuroImage. 43 (2): 358–367. doi:10.1016/j.neuroimage.2008.08.004. PMID 18771737.
External links
- Horn, Laurence R.; Wansing, Heinrich. "Negation". In Zalta, Edward N. (ed.). Stanford Encyclopedia of Philosophy.
- "Negation", Encyclopedia of Mathematics, EMS Press, 2001 [1994]
- NOT, on MathWorld
- Tables of Truth of composite clauses
- "Table of truth for a NOT clause applied to an END sentence". Archived from the original on 1 March 2000.
{{cite web}}
: Unknown parameter|deadurl=
ignored (|url-status=
suggested) (help) - "NOT clause of an END sentence". Archived from the original on 1 March 2000.
{{cite web}}
: Unknown parameter|deadurl=
ignored (|url-status=
suggested) (help) - "NOT clause of an OR sentence". Archived from the original on 17 January 2000.
{{cite web}}
: Unknown parameter|deadurl=
ignored (|url-status=
suggested) (help) - "NOT clause of an IF...THEN period". Archived from the original on 1 March 2000.
{{cite web}}
: Unknown parameter|deadurl=
ignored (|url-status=
suggested) (help)