Operazioni logiche

Jan 26 2023
Esiste un'equivalenza tra operazioni logiche e operazioni sugli insiemi. Ad esempio, prendi la seguente affermazione logica: “Sta piovendo implica che ci sono nuvole nel cielo.

Esiste un'equivalenza tra operazioni logiche e operazioni sugli insiemi. Ad esempio, prendi la seguente dichiarazione logica:

"Sta piovendo implica che ci sono nuvole nel cielo."

Non ci sarebbe pioggia senza nuvole. Possiamo prendere due insiemi di luoghi, “l'insieme dei luoghi dove piove” e “l'insieme dei luoghi dove ci sono le nuvole”, e mostrare che il primo insieme è strettamente incluso nel secondo insieme.

Allo stesso modo in informatica, l'inferenza del tipo si basa su operazioni logiche tra tipi e un tipo può essere considerato come l'insieme di tutti gli oggetti che appartengono a quel tipo (se c'è almeno uno di questi oggetti puoi dire che il tipo è popolato altrimenti lo è vuoto. )

L'inferenza del tipo utilizza prove logiche e mira a trovare tipi popolati , poiché i programmi gestiscono oggetti di cui vogliamo trovare il tipo.

A causa dell'equivalenza di cui sopra, illustrerò le operazioni logiche utilizzando gli insiemi nello spirito di Boole . Ogni operazione sugli insiemi sarà espressa utilizzando un connettore logico e una notazione logica.

Per la discussione userò due intervalli sui numeri interi A e B come set di input.

R: 0…10

B: 5…18

Complemento

Connettore: no

Il risultato contiene tutti gli elementi che non sono in A .

¬A: …-1, 11…

Unione

Connettore: o

Il risultato contiene tutti gli elementi che sono in A o B .

LA ∨ SI: 0…18

Intersezione

Connettore: e

Il risultato contiene solo gli elementi che sono sia in A che in B .

LA ∧ SI: 5…10

Unione disgiuntiva

Connettore: altro (xor)

Il risultato contiene gli elementi che sono solo in A else sono solo in B .

LA⊕ SI: 0…4, 11…18

Coinvolgimento

Connettore: solo se (implica)

Il risultato contiene gli elementi che sono in A solo se sono in B .

Questo è un po' più difficile da capire rispetto alle operazioni precedenti. È facile vedere che il risultato contiene l'intersezione dei due insiemi: i suoi elementi sono in A e in B , che soddisfa la condizione.

Ma per quanto riguarda il resto di B ?

Puoi vedere che gli elementi di B fuori dall'intersezione non sono in A . Significa che soddisfano la condizione? Dipende da come lo leggi:

  • Il risultato contiene gli elementi che sono in A ( solo se sono in B ).
  • Il risultato contiene gli elementi (che sono in A solo se sono in B ).

A ⇒ B: …-1, 5…

Un altro esempio potrebbe essere “Piove solo se ci sono le nuvole”. Se esiste un luogo dove piove ma non ci sono nuvole allora la condizione non è soddisfatta . La sentenza non pone una condizione sui luoghi in cui non piove, quindi potrebbero essere nuvolosi o no, va bene lo stesso.

Differenza

Connettore: ma no

Il risultato contiene solo gli elementi che sono in A ma non in B .

È interessante notare che questa volta non ci sono letture speciali, ma la differenza è in realtà il complemento dell'implicazione! Si noti inoltre che l'ordine di A e B è importante.

LA - SI: 0…4