Negazione Logica: Capire "Non O"
In logica formale, la negazione è l'operazione che inverte il valore di verità di una proposizione. Se o è un enunciato, la sua negazione è «non o» (simboli: ¬o, ~o, o′, o !o in programmazione).
Tavola di Verità
Esempi Quotidiani
- o = «Piove.» → ¬o = «Non piove.»
- o = «La porta è aperta.» → ¬o = «La porta non è aperta.» (cioè chiusa)
- o = «x > 5» → ¬o = «x ≤ 5»
- o = «Tutti gli uccelli volano.» → ¬o = «Non tutti gli uccelli volano.» (∃ uccello che non vola)
Leggi Logiche Chiave Coinvolgenti Negazione
Leggi di De Morgan
- ¬(A ∧ B) ≡ ¬A ∨ ¬B («Non (A e B)» = «Non A o Non B»)
- ¬(A ∨ B) ≡ ¬A ∧ ¬B («Non (A o B)» = «Non A e Non B»)
Doppia Negazione
- ¬(¬o) ≡ o (la negazione si annulla)
Contraddizione e Tautologia
- o ∧ ¬o ≡ Falso (contraddizione — sempre falso)
- o ∨ ¬o ≡ Vero (legge del terzo escluso — sempre vero)
Implicazione e Negazione
- o → p ≡ ¬o ∨ p
- Contropositiva: (o → p) ≡ (¬p → ¬o)
Negazione in Programmazione
- Maggior parte linguaggi:
!condition (C, Java, Python, JS, ecc.) - SQL:
NOT condition - Shell:
! command (history expansion) o [[ ! condition ]] - Espressioni regolari:
[^abc] (classe caratteri negata), (?!pattern) (negative lookahead)
Negazione Quantificatori
- ¬(∀x P(x)) ≡ ∃x ¬P(x) («Non tutti» = «Esiste non»)
- ¬(∃x P(x)) ≡ ∀x ¬P(x) («Non esiste» = «Tutti non»)
La negazione è l'operatore logico più semplice ma fondante per ragionamento, dimostrazione, computazione, comunicazione precisa. Padroneggiarne il comportamento — specialmente con quantificatori e enunciati composti — affina il pensiero across discipline.