Logica del primo ordine: predicati e relazioni

Documenti analoghi
Intelligenza Artificiale I

Logica proposizionale

Ragionamento Automatico Richiami di calcolo dei predicati

Logica: materiale didattico

NOZIONI DI LOGICA PROPOSIZIONI.

Introduzione alla logica

Prerequisiti Matematici

Fondamenti di Informatica 2

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

BREVE CENNO DI LOGICA CLASSICA La logica può essere definita come la scienza che studia le condizioni in base alle quali un ragionamento risulta

Intelligenza Artificiale II. Logiche modali e temporali

Semantica proposizionale. Unit 2, Lez 3 e 4 Corso di Logica

NOZIONI DI LOGICA. Premessa

CALCOLO PROPOSIZIONALE

LOGICA DEL PRIMO ORDINE: PROOF SYSTEM. Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini

Logica per la Programmazione

Logica per la Programmazione

1 Richiami di logica matematica

Cenni di logica e calcolo proposizionale

LOGICA DEL PRIMO ORDINE: MOTIVAZIONI, SINTASSI E INTERPRETAZIONI. Corso di Logica per la Programmazione A.A Andrea Corradini

Logica: nozioni di base

Logica per la Programmazione

Intelligenza Artificiale I

10 Logica classica predicativa

Logica per la Programmazione

Logica per la Programmazione

LOGICA DEL PRIMO ORDINE: MOTIVAZIONI, SINTASSI E INTERPRETAZIONI

1 Calcolo dei predicati del I ordine. Semantica

Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1

METODI MATEMATICI PER L INFORMATICA

Logica proposizionale

Intelligenza Artificiale. Breve introduzione alle logiche non classiche

Logica per la Programmazione

Logica. Claudio Sacerdoti Coen 07/10/ : Connotazione, denotazione, invarianza per sostituzione. Universitá di Bologna

Logica. 7: Conseguenza ed equivalenza logica in logica classica proposizionale. Claudio Sacerdoti Coen. Universitá di Bologna

( x 1 )A 2 1 x2, f1 1 (x 1 ) )

Marta Capiluppi Dipartimento di Informatica Università di Verona

Logica per la Programmazione Corso di Laurea in INFORMATICA a.a. 2016/17

Intelligenza Artificiale. Logica proposizionale: calcolo automatico

LOGICA DEI PREDICATI. Introduzione. Predicati e termini individuali. Termini individuali semplici e composti

Logiche modali. Marco Piastra. Intelligenza Artificiale II. Intelligenza Artificiale II - A.A Logiche modali [1]

CALCOLO PROPOSIZIONALE. Corso di Logica per la Programmazione Andrea Corradini

INSIEMI. DEF. Un INSIEME è una qualsiasi collezione di oggetti.

Logica per la Programmazione

Maiuscole e minuscole

LOGICA MATEMATICA PER INFORMATICA

Introduzione ad alcuni sistemi di logica modale

Elementi di logica. SCOPO: introdurre nozioni di logica & vocabolario per una corretta interpretazione delle dimostrazioni.

11. Lezione Corso di Logica (prima parte) 13 maggio Maria Emilia Maietti. ricevimento: martedi ore

Logica per la Programmazione

Cenni di logica. Hynek Kovarik. Università di Brescia. Analisi Matematica A

APPUNTI DI ANALISI MATEMATICA Parte Prima

Logica Formale. Introduzione. Marco Piastra. Intelligenza Artificiale I. Intelligenza Artificiale I - A.A Logica Formale [1]

Richiami teorici ed esercizi di Logica

Teorema 1.1. (Teorema di Compattezza) Sia Γ un insieme di formule di un linguaggio proposizionale.

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

ESERCIZI DI ANALISI MATEMATICA 1 FOGLIO 1

UNIVERSITÀ DEGLI STUDI LA SAPIENZA CORSO DI STUDI IN INFORMATICA ESERCITAZIONI AL CORSO DI LOGICA MATEMATICA LOGICA PROPOSIZIONALE

Logica di Base. Docente: Francesca Benanti. 27 Gennaio 2007

e Algoritmi Marco Piastra Intelligenza Artificiale I Soddisfacibilità

Logica dei Predicati:

Algebra di Boole. Andrea Passerini Informatica. Algebra di Boole

Aniello Murano Decidibilità delle teorie logiche

LOGICA DEL PRIMO ORDINE CON INSIEMI E INTERVALLI. Corso di Logica per la Programmazione

Università degli Studi di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica ALGEBRA BOOLEANA

Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela

Introduzione alla Programmazione Logica ed al linguaggio PROLOG

Cenni di logica matematica e di teoria degli insiemi Paola Rubbioni

Informatica. Logica e Algebra di Boole

Le variabili logiche possono essere combinate per mezzo di operatori detti connettivi logici. I principali sono:

Filosofia del linguaggio Alfredo Paternoster

George BOOLE ( ) L algebra booleana. (logica proposizionale)

LOGICA MATEMATICA PER INFORMATICA

Un po di logica. Christian Ferrari. Laboratorio di matematica

Precorso di Matematica. Parte I : Fondamenti di Matematica

La matematica non è un opinione, lo è oppure...?

In una palazzina abitata da 20 famiglie, 10 di esse hanno il cane, 2 non hanno n è cane n è gatto mentre 12 famiglie hanno il gatto.

Logica degli enunciati; Operazioni con le proposizioni; Proprietà delle operazioni logiche; Tautologie; Regole di deduzione; Logica dei predicati;

Logica proposizionale

Verifica per la classe prima COGNOME... NOME... Classe... Data...

Logica, teoria della conoscenza, filosofia della scienza. Gianluigi Bellin

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

Indice. 1 Cenni di logica. 2 Elementi di teoria degli insiemi. 3 Relazioni e funzioni. 4 Strutture algebriche

Cenni di logica matematica e di teoria degli insiemi. CORSI INTRODUTTIVI Dipartimento di Ingegneria di Perugia a.a. 2016/2017 Paola Rubbioni

Logica proposizionale

Esercitazioni per il corso di Logica Matematica

Connettivi del linguaggio e della logica

11. Formalizzazione in linguaggio predicativo

Logica proposizionale classica. Studia il comportamento dei connettivi proposizionali quali ( And ) e ( Or )

Proposizioni e verità

ISTITUTO TECNICO STATALE COMMERCIALE E PER GEOMETRI A. MARTINI Castelfranco Veneto (TV) Elementi di Logica

Conversione in clausole

Esercitazioni per il corso di Logica Matematica

BOOK IN PROGRESS MATEMATICA ALGEBRA PRIMO ANNO TOMO NR. 1

PROGRAMMA CONSUNTIVO

1 Funzioni reali di una variabile reale

Filosofia della Scienza - Soluzione Compito 1

Logica Formale. Introduzione. Marco Piastra. Intelligenza Artificiale I. Intelligenza Artificiale I - A.A Logica Formale [1]

Transcript:

Intelligenza Artificiale I Logica del primo ordine: predicati e relazioni Marco Piastra Predicati e relazioni 1]

Esempio preliminare Soluzione di un equazione algebrica x 2 + ax + b = 0 x 2 + 2(a/2)x + a 2 /4 a 2 /4 + b = 0 (x + a/2) 2 a 2 /4 + b = 0 (x + a/2) 2 = a 2 /4 b x = a/2 ± (a 2 /4 b) 1/2 Domande: Quali sono le componenti del linguaggio usato nelle espressioni? Qual è la semantica (il significato) delle componenti del linguaggio? Qual è la relazione tra le formule nella sequenza ovvero, in base a quale principio siamo sicuri della correttezza dei passaggi? Predicati e relazioni 2]

Esempio preliminare Soluzione di un equazione algebrica x 2 + ax + b = 0 x 2 + 2(a/2)x + a 2 /4 a 2 /4 + b = 0 (x + a/2) 2 a 2 /4 + b = 0 (x + a/2) 2 = a 2 /4 b x = a/2 ± (a 2 /4 b) 1/2 Domande: Quali sono le componenti del linguaggio usato nelle espressioni? - Costanti (numeri e lettere): 2, 4, a, b - Variabili : x - Funzioni binarie: ^, +,, /, - Funzioni unarie: - Relazione binarie: = Dubbio: che cos è ±? Possibile soluzione: riscrivere l ultima riga usando un connettivo (x = a/2 + (a 2 /4 b) 1/2 ) (x = a/2 (a 2 /4 b) 1/2 ) Predicati e relazioni 3]

Esempio preliminare Soluzione di un equazione algebrica x 2 + ax + b = 0 x 2 + 2(a/2)x + a 2 /4 a 2 /4 + b = 0 (x + a/2) 2 a 2 /4 + b = 0 (x + a/2) 2 = a 2 /4 b (x = a/2 + (a 2 /4 b) 1/2 ) (x = a/2 (a 2 /4 b) 1/2 ) Domande: Quali sono le componenti del linguaggio usato nelle espressioni? Qual è la semantica (il significato) delle componenti del linguaggio? - Costanti (numeri e lettere): numeri reali - Variabili: numeri reali - Funzioni binarie: funzioni binarie definite sui numeri reali - Funzioni unarie: funzioni binarie definite sui numeri reali - Relazione binarie: relazioni binarie definite sui numeri reali - Connettivi: come in logica proposizionale - funzioni sui valori di verità Predicati e relazioni 4]

Esempio preliminare Soluzione di un equazione algebrica x 2 + ax + b = 0 x 2 + 2(a/2)x + a 2 /4 a 2 /4 + b = 0 (x + a/2) 2 a 2 /4 + b = 0 (x + a/2) 2 = a 2 /4 b (x = a/2 + (a 2 /4 b) 1/2 ) (x = a/2 (a 2 /4 b) 1/2 ) Domande: Quali sono le componenti del linguaggio usato nelle espressioni? Qual è la semantica (il significato) delle componenti del linguaggio? Qual è la relazione tra le formule nella sequenza ovvero, in base a quale principio siamo sicuri della correttezza dei passaggi? - Le equazioni (formule ben formate) sono logicamente equivalenti - Ciascun passaggio è giustificato da formule valide nell ambito dei numeri reali ax = 2(a/2)x + a 2 /4 a 2 /4 x 2 + 2(a/2)x + a 2 /4 = (x + a/2) 2 (x y + z = 0) (x = y z) (x 2 = y) ((x = y 1/2 ) (x = y 1/2 )) Predicati e relazioni 5]

Relazioni e predicati Semantica di x = y 2 tutte le coppie di numeri reali che soddisfano la relazione descritta: <0,0>, <1,1>, <1, 1>, <0.25,0.5>, <2,2 1/2 >... Predicati La relazione può essere descritta in modo simbolico come SquareOf/2 vale a dire un predicato binario. Il predicato binario può essere definito nei termini di un altro predicato x y (SquareOf(x, y) (x = power(y, 2)) La semantica del predicato è formata da tutte le coppie di numeri reali di cui sopra In logica del primo ordine si usano formule dove i predicati descrivono relazioni, nel senso che le relazioni sono la semantica dei predicati Non necessariamente relazioni definite su un campo numerico... Predicati e relazioni 6]

Logica del primo ordine Predicati e relazioni 7]

Strutture semantiche proposizionali (già viste) Mondi possibili descritti tramite affermazioni atomiche Il mondo descritto da una struttura <{0,1}, P, v> {0,1} è l insieme dei valori di verità P è un insieme di simboli proposizionali (segnatura) v è una funzione: P {0,1} che assegna valori di verità ai simboli proposizionali Simboli proposizionali Ciascuno indica una frase affermativa (proposizioni) Per convezione usiamo i simboli A, B, C, D,... Mondi possibili Possiamo considerare diverse strutture: <{0,1}, P, v> <{0,1}, P, v > <{0,1}, P, v >... Notare che le strutture condividono i simboli P e l insieme dei valori di verità {0,1} Differiscono solo per le funzioni v : i valori di verità assegnati sono in generale diversi Predicati e relazioni 8]

Strutture semantiche del primo ordine Mondi possibili fatti di oggetti, insiemi e relazioni Il mondo descritto da una struttura <U,, v> U è un insieme di oggetti di base, detto anche universo del discorso o dominio (domain) è un insieme di simboli, detto segnatura (signature) v è una funzione che definisce il significato dei simboli di in relazione al dominio U Segnatura costanti individuali: a, b, c, d,... simboli funzionali: f/n, g/p, h/q,... simboli predicativi (o relazionali): P/k, Q/l, R/m,... Predicati e relazioni 9]

Strutture semantiche del primo ordine Mondi possibili fatti di oggetti, insiemi e relazioni Il mondo descritto da una struttura <U,, v> U è un insieme di oggetti di base, detto anche universo del discorso o dominio (domain) è un insieme di simboli, detto segnatura (signature) v è una funzione che definisce il significato dei simboli di in relazione al dominio U Termine Ogni costante individuale è un termine Se f è un simbolo funzionale a n argomenti e t 1,..., t n sono termini, allora f(t 1,..., t n ) è un termine Atomo Se P è un simbolo predicativo a n argomenti e t 1,..., t n sono termini, allora P(t 1,..., t n ) è un atomo o formula atomica Predicati e relazioni 10 10]

Strutture semantiche del primo ordine Mondi possibili fatti di oggetti, insiemi e relazioni Il mondo descritto da una struttura <U,, v> U è un insieme di oggetti di base, detto anche universo del discorso o dominio (domain) è un insieme di simboli, detto segnatura (signature) v è una funzione che un significato ai simboli di in relazione al dominio U Funzione v (interpretazione) L interpretazione di una costante individuale è un oggetto di U v( a ) = obj U ( a costante individuale) L interpretazione di un simbolo funzionale è una funzione definita su U v( f /n ) = fun : U n U ( f simbolo funzionale avente arità n ) L interpretazione di un simbolo predicativo è una relazione definita su U v( P /m ) = rel U m ( P simbolo predicativo avente arità m ) Predicati e relazioni 11 11]

Ditelo con gli atomi Esempio di struttura <U,, v> Dominio U Insieme di oggetti: { a, b, c, d, e, green, orange, red, rose, violet } Segnatura Costanti individuali: a, b, c, d, e, green, orange, red, rose, violet Non confondere gli oggetti di U Simboli funzionali: colorof/1 con i simboli di Simboli predicativi: Pyramid/1, Parallelepiped/1, Sphere/1, Ontable/1, Clear/1, Above/2, =/2 Una struttura <U,, v> soddisfa un insieme di atomi Esempio: appartenenza a insiemi <U,, v> Pyramid(a) Parallelepiped(b), Parallelepiped(c), Parallelepiped(e) Sphere(d) Ontable(c), Ontable(e) Clear(a), Clear(d) Valori di funzioni <U,, v> (colorof(a) = green), (colorof(b) = orange), (colorof(c) = red), (colorof(d) = rose) Relazioni <U,, v> Above(a,b), Above(b,c), Above(a,c), Above(d,e) c b a d e Predicati e relazioni 12 12]

Ditelo con gli atomi Diverse interpretazioni, stessa segnatura e dominio U Le diverse interpretazioni soddisfano atomi diversi <U,, v 1 > Pyramid(a), Parallelepiped(b), Parallelepiped(c), Sphere(d), Parallelepiped(e), (colorof(a) = green), (colorof(b) = orange), (colorof(c) = red), (colorof(d) = rose), (colorof(e) = violet) Ontable(c), Ontable(e), Clear(a), Clear(d) Above(a,b), Above(b,c), Above(a,c), Above(d,e) c b a d e <U,, v 2 > Parallelepiped(a), Parallelepiped(b), Parallelepiped(c), Sphere(d), Pyramid(e), (colorof(a) = red), (colorof(b) = violet), (colorof(c) = pink), (colorof(d) = green), (colorof(e) = orange) Ontable(a), Ontable(c), Ontable(e), Clear(a),, Clear(b), Clear(d) Above(b,c), Above(d,e) a b c d e <U,, v 3 > Pyramid(a), Parallelepiped(b), Parallelepiped(c), Parallelepiped(e) Sphere(d) (colorof(a) = green), (colorof(b) = orange), (colorof(c) = red), (colorof(d) = rose), (colorof(e) = violet) Ontable(c), Ontable(e), Clear(a), Clear(d) Above(a,b), Above(b,c), Above(a,c), Above(d,e) d c b a e Predicati e relazioni 13 13]

Astrazione: variabili e quantificatori (semantica intuitiva, per ora) Proprietà di carattere generale x y (Above(x,y)) y x (Above(x,y)) c b a d e Definizioni di nuovi predicati x y (On(x,y) (Above(x,y) z (Above(x,z) Above(z,y))) x (Ontable(x) z Above(x,z)) x (Clear(x) z Above(z,x)) Predicati e relazioni 14 14]

Astrazione: variabili e quantificatori Essere fratelli significa essere parenti x y (Fratello(x, y) Parente(x, y)) La relazione di parentela è simmetrica x y (Parente(x,y) Parente(y, x)) Una madre è un genitore di sesso femminile x y (Madre(x, y) (Genitore(x, y) Femmina(x))) Un cugino è figlio di un fratello o una sorella di uno dei genitori x y (Cugino(x, y) z w (Genitore(z, x) Genitore(w, y) (Fratello(z, w) Sorella(z, w)))) Ciascuno ha una madre x y Madre(y, x) Occorre fare attenzione all ordine dei quantificatori: y x Madre(y, x) Esiste una madre di tutti L ordine dei quantificatori non può essere modificato senza alterare il significato Predicati e relazioni 15 15]

Linguaggio di L PO Simboli del linguaggio L PO Costanti individuali (Indicate come: a, b, c, ) Esempi: 1, 2000, Socrate, Sfera1, MickeyMouse, Amelia,... Variabili (Indicate come: x, y, z, ) Simboli funzionali con numero di argomenti prestabilito (arità) Indicati come: f/n, g/m, h/p, Esempi: sqrt/1, colorof/1, greatestcommondivisor/2 Simboli predicativi con numero di argomenti prestabilito (arità) Indicati come: P/n, Q/m, R/p, Esempi: Red/1, Large/1, GreaterThan/2, =/2 Connettivi Gli stessi della logica proposizionale:,,,, Quantificatori (universale), (esistenziale) Parentesi e virgola ( ), Predicati e relazioni 16 16]

Linguaggio di L PO Termini Ogni variabile o costante individuale è un termine Se f è un simbolo funzionale a n argomenti e t 1,..., t n sono termini, allora f(t 1,..., t n ) è un termine Un termine base (ground) non contiene variabili Atomo o formula atomica Se P è un simbolo predicativo a n argomenti e t 1,..., t n sono termini, allora P(t 1,..., t n ) è un atomo o formula atomica Un atomo base (ground) non contiene variabili Esempi: Sorella( Amelia, Alba ) predicato costante costante shapeof(b) = shapeof(x) costante termine formula atomica termine predicato formula atomica termine variabile termine Predicati e relazioni 17 17]

Linguaggio di L PO Regole di buona formazione Ogni formula atomica è una fbf fbf(l PO ) ( ) fbf(l PO ), fbf(l PO ) ( ) fbf(l PO ) fbf(l PO ) ( x ) fbf(l PO ), fbf(l PO ), ( ) (( ) ), fbf(l PO ), ( ) ( ( ( ))), fbf(l PO ), ( ) (( ) ( )) fbf(l PO ) ( x ) ( x ) Si dice linguaggio del primo ordine in quanto i quantificatori agiscono solo sugli oggetti, vale a dire sulle variabili x, y, z, e non sulle relazioni e funzioni (In una logica del secondo ordine si hanno formule del tipo: F F(a,b)) Predicati e relazioni 18 18]

Formule aperte, enunciati Variabili libere e vincolate Una variabile (in una fbf) è vincolata se si trova nel raggio di azione di un quantificatore per quella variabile Una variabile è libera se non è vincolata esempi di variabile vincolata: x P(x) x (P(x) (A(x) B(x)) esempi di variabile libera: P(x) y (P(y) (A(x,y) B(y))) Formule aperte e chiuse Una fbf è aperta se in essa vi è almeno una variabile libera Una fbf è chiusa (anche enunciato - sentence) in caso contrario Solo le fbf chiuse, cioè gli enunciati, hanno un valore di verità (vedi oltre) (in quanto rappresentano delle affermazioni...) Predicati e relazioni 19 19]

Strutture, interpretazioni e assegnazioni Una struttura <U, v> per L PO contiene: Un insieme di oggetti U (l universo del discorso) Un interpretazione v che associa ad ogni costante c un oggetto di U v(c) U ad ogni predicato P a n argomenti una relazione n-aria in U n v(p) U n ad ogni funzione f a n argomenti una funzione da U n a U v(f) U n U La funzione v non assegna un significato alle variabili Assegnazione Data una struttura <U, v>, un assegnazione (valuation) s è una funzione che associa ad ogni variabile x un oggetto di U s(x) U La combinazione di una <U, v> e di una s determina univocamente gli oggetti associati a ciascun elemento di L PO Si omette da ora in poi il riferimento a Predicati e relazioni 20 20]

Soddisfacimento Data una struttura <U, v> un assegnazione s Se è una formula atomica, <U, v> s] sse se ha la forma P(t 1,..., t n ) allora <v(t 1 ) s],..., v(t n ) s]> v(p) s] L assegnazione s serve a poter definire una semantica anche per le fbf aperte Se e sono fbf qualsiasi <U, v> s] ( ) sse <U, v> s] <U, v> s] ( ) sse <U, v> s] e <U, v> s] <U, v> s] ( ) sse <U, v> s] o <U, v> s] <U, v> s] ( ) allora non <U, v> s] o <U, v> s] Formule con quantificatori <U, v> s] x sse per ogni d U si ha <U, v> s](x:d) <U, v> s] x sse esiste un d U per cui si ha <U, v> s](x:d) Predicati e relazioni 21 21]

Modelli Validità in un interpretazione, modello Una fbf tale per cui si ha <U, v> s] per qualsiasi assegnazione s è detta valida in <U, v> Si dice anche che <U, v> è un modello di si scrive <U, v> (si elimina il riferimento a s) Una struttura <U, v> è detta modello di un insieme di fbf sse è un modello di tutte le fbf in si scrive allora <U, v> Verità Un enunciato si dice vero in <U, v> se è valido in <U, v> Predicati e relazioni 22 22]

Validità Validità e verità logiche Una fbf (aperta o chiusa) è valida (o logicamente valida) se è valida in qualsiasi <U, v> Esempi: (P(x) P(x)) Un enunciato è vero (o logicamente vero) se è vero in qualsiasi <U, v> si scrive allora (si elimina il riferimento a <U, v>) Esempi: x (P(x) P(x)) x y (G(x,y) (H(x,y) G(x,y))) (tautologia proposizionale tradotta in formula aperta) (generalizzazione di una tautologia) (generalizzazione di assioma vedi oltre) Inconsistenza Una fbf (aperta o chiusa) è inconsistente se non è soddisfacibile Un enunciato è inconsistente se non ha un modello Esempi: x (P(x) P(x)) (generalizzazione di una contraddizione) Predicati e relazioni 23 23]

Conseguenza logica Definizione Dato un insieme di fbf ed una fbf di L PO si ha sse tutte le <U, v> s] che soddisfano soddisfano anche Osservazioni La definizione si estende a tutte le possibili <U, v> s] Quindi, a tutti i possibili insiemi U, alle relazioni e funzioni in U ed alle associazioni di oggetti di U a variabili e costanti Il calcolo diretto della conseguenza logica in L PO è impossibile anche nelle forme più semplici Predicati e relazioni 24 24]

*Ditelo con le funzioni o con i predicati? Semanticamente, funzioni e predicati sono molto simili: si può fare a meno delle funzioni? Le funzioni si possono rappresentare anche tramite predicati ad esempio, la validità dell enunciato: x y z (( (x,y) (x,z)) (y = z)) indica che l interpretazione di (..) (in generale, una relazione v( ) U 2 ) è anche una funzione U U Ma solo le funzioni si possono nidificare La presenza delle funzioni arricchisce il linguaggio in modo sostanziale: a differenza dei predicati, le funzioni si possono nidificare (nei termini) Di conseguenza, viene grandemente aumentata la portata del calcolo logico-simbolico (con un corrispondente aumento della complessità di calcolo...) Predicati e relazioni 25 25]

*Many-sorted or nil nil (dedicato agli informatici) Tornando alla segnatura dell esempio mondo dei blocchi c b a d e green, colorof(green), colorof(colorof(green)), colorof(colorof(colorof(green))), Sono tutti termini sintatticamente corretti, in base alla definizione. Peccato che, intuitivamente, non abbiano senso: un colore non è un oggetto Per le applicazioni pratiche, le segnature dovrebbero avere un tipo (sort) Per descrivere un dominio che contiene oggetti di tipo diverso (segnatura many-sorted) Il tipo si applica alle costanti ed agli argomenti di simboli funzionali e predicativi Complicazione notevole: si riflette in tutte le definizioni sintattiche e semantiche Comodità del nil Una costante particolare: nil cui corrisponde un interpretazione (canonica) di un non-oggetto In questo modo, funzioni e relazioni possono essere definite in modo parziale: (colorof(a) = green) (colorof(green) = nil) Above(a,b) Above(c,nil) Possono essere fbf vere in una struttura In questo modo, si evita l uso esplicito del tipo Predicati e relazioni 26 26]