I formell logik är negation operationen som vänder sanningsvärdet på ett påstående. Om o är ett uttalande, är dess negation "inte o" (symboler: ¬o, ~o, o′, eller !o i programmering).
Sanningstabell
| o | ¬o |
| Sant | Falskt |
| Falskt | Sant |
Vardagliga exempel
- o = "Det regnar." → ¬o = "Det regnar inte."
- o = "Dörren är öppen." → ¬o = "Dörren är inte öppen." (dvs. stängd)
- o = "x > 5" → ¬o = "x ≤ 5"
- o = "Alla fåglar flyger." → ¬o = "Inte alla fåglar flyger." (∃ fågel som inte flyger)
Viktiga logiska lagar med negation
De Morgans lagar
- ¬(A ∧ B) ≡ ¬A ∨ ¬B ("Inte (A och B)" = "Inte A eller Inte B")
- ¬(A ∨ B) ≡ ¬A ∧ ¬B ("Inte (A eller B)" = "Inte A och Inte B")
Dubbel negation
- ¬(¬o) ≡ o (negationen upphävs)
Kontradiktion och tautologi
- o ∧ ¬o ≡ Falskt (kontradiktion — alltid falskt)
- o ∨ ¬o ≡ Sant (utelämningslagen — alltid sant)
Implikation och negation
- o → p ≡ ¬o ∨ p
- Kontrposition: (o → p) ≡ (¬p → ¬o)
Negation i programmering
- Flesta språk:
!condition (C, Java, Python, JS, etc.) - SQL:
NOT condition - Shell:
! command (historikexpansion) eller [[ ! condition ]] - Reguljära uttryck:
[^abc] (negerad teckenklass), (?!pattern) (negativ lookahead)
Kvantifieringsnegation
- ¬(∀x P(x)) ≡ ∃x ¬P(x) ("Inte alla" = "Det finns inte")
- ¬(∃x P(x)) ≡ ∀x ¬P(x) ("Det finns inte" = "Alla är inte")
Negation är den enklaste logiska operatorn men grundläggande för resonemang, bevis, beräkning och precisionskommunikation. Att bemästra dess beteende – särskilt med kvantifierare och sammansatta påståenden – skärper tänkandet över discipliner.