Logisk negation: Forståelse af "Ikke O"

I formel logik er negation operationen, der vender sandhedsværdien af et udsagn om. Hvis o er et udsagn, er dets negation "ikke o" (symboler: ¬o, ~o, o′, eller !o i programmering).

Sandhedstabel

o¬o
SandFalsk
FalskSand

Almindelige eksempler

  • o = "Det regner." → ¬o = "Det regner ikke."
  • o = "Døren er åben." → ¬o = "Døren er ikke åben." (dvs. lukket)
  • o = "x > 5" → ¬o = "x ≤ 5"
  • o = "Alle fugle flyver." → ¬o = "Ikke alle fugle flyver." (∃ fugl der ikke flyver)

Vigtige logiske love involverende negation

De Morgans love

  • ¬(A ∧ B) ≡ ¬A ∨ ¬B ("Ikke (A og B)" = "Ikke A eller Ikke B")
  • ¬(A ∨ B) ≡ ¬A ∧ ¬B ("Ikke (A eller B)" = "Ikke A og Ikke B")

Dobbelt negation

  • ¬(¬o) ≡ o (negation ophæver hinanden)

Modsigelse og tautologi

  • o ∧ ¬o ≡ Falsk (modsigelse — altid falsk)
  • o ∨ ¬o ≡ Sand (udelukket tredje — altid sand)

Implikation og negation

  • o → p ≡ ¬o ∨ p
  • Kontrapositiv: (o → p) ≡ (¬p → ¬o)

Negation i programmering

  • Fleste sprog: !betingelse (C, Java, Python, JS, osv.)
  • SQL: NOT betingelse
  • Shell: ! kommando (historie-udvidelse) eller [[ ! betingelse ]]
  • Regulære udtryk: [^abc] (negeret tegnklasse), (?!mønster) (negativt lookahead)

Kvantifikator-negation

  • ¬(∀x P(x)) ≡ ∃x ¬P(x) ("Ikke alle" = "Der findes ikke")
  • ¬(∃x P(x)) ≡ ∀x ¬P(x) ("Der findes ikke" = "Alle er ikke")

Negation er den simpleste logiske operator, men fundamental for ræsonnement, bevis, beregning og præcis kommunikation. At mestre dens adfærd – især med kvantifikatorer og sammensatte udsagn – skærper tænkning på tværs af discipliner.

Neuro‑lingvistisk programmering (NLP)