Operazioni logiche
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

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































