Negation

For negation in linguistics, see Affirmation and negation. Negation_sentence_0

For other uses, see Negation (disambiguation). Negation_sentence_1

Definition Negation_section_0

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. Negation_sentence_2

Heinemann 1944). Negation_sentence_3

Algebraically, classical negation corresponds to complementation in a Boolean algebra, and intuitionistic negation to pseudocomplementation in a Heyting algebra. Negation_sentence_4

These algebras provide a semantics for classical and intuitionistic logic, respectively. Negation_sentence_5

Notation Negation_section_1

The notation Np is Łukasiewicz notation. Negation_sentence_6

Properties Negation_section_2

Distributivity Negation_section_4

De Morgan's laws provide a way of distributing negation over disjunction and conjunction: Negation_sentence_7

Linearity Negation_section_5

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_sentence_8

Negation is a linear logical operator. Negation_sentence_9

Self dual Negation_section_6

In Boolean algebra, a self dual function is a function such that: Negation_sentence_10

Programming language and ordinary language Negation_section_9

As in mathematics, negation is used in computer science to construct logical statements. Negation_sentence_12

The exclamation mark "!" Negation_sentence_13

signifies logical NOT in B, C, and languages with a C-inspired syntax such as C++, Java, JavaScript, Perl, and PHP. Negation_sentence_14

"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. Negation_sentence_15

Some languages (C++, Perl, etc.) provide more than one operator for negation. Negation_sentence_16

A few languages like PL/I and Ratfor use ¬ for negation. Negation_sentence_17

Some modern computers and operating systems will display ¬ as ! Negation_sentence_18

on files encoded in ASCII. Negation_sentence_19

Most modern languages allow the above statement to be shortened from if (! Negation_sentence_20

(r == t)) to if (r != t), which allows sometimes, when the compiler/interpreter is not able to optimize it, faster programs. Negation_sentence_21

In computer science there is also bitwise negation. Negation_sentence_22

This takes the value given and switches all the binary 1s to 0s and 0s to 1s. Negation_sentence_23

See bitwise operation. Negation_sentence_24

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). Negation_sentence_25

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) Negation_sentence_26

To demonstrate logical negation: Negation_sentence_27

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). Negation_sentence_28

This convention occasionally surfaces in ordinary written speech, as computer-related slang for not. Negation_sentence_29

For example, the phrase !voting means "not voting". Negation_sentence_30

Another example is the phrase !clue which is used as a synonym for "no-clue" or "clueless". Negation_sentence_31

Kripke semantics Negation_section_10

In Kripke semantics where the semantic values of formulae are sets of possible worlds, negation can be taken to mean set-theoretic complementation (see also possible world semantics for more). Negation_sentence_32