Professional Documents
Culture Documents
Questo capitolo comincia con la definizione di struttura e termina con quella di sottostruttura. Prima
introdurremo la nozione di linguaggio poi discuteremo la sintassi e la semantica dei termini un
concetto che generalizza quello di polinomio.
Un insieme L che unione di due insiemi disgiunti L rel e L fun . Gli elementi di L rel sono chia-
mati simboli per relazioni oppure anche predicati, gli elementi di L fun si chiamano simboli per
funzioni.
Una funzione Ar : L detta ariet che assegna ad ogni elemento del linguaggio un numero
naturale non negativo.
Un insieme, detto dominio o supporto della struttura, che denoteremo con lo stesso simbolo M.
Una funzione che assegna ad ogni simbolo per relazione r una relazione r M M n , dove n
lariet di r . Questa relazione si chiama linterpretazione di r in M. E assegna ad ogni simbolo
per funzione f una funzione f M : M n M, dove n lariet di f . Questa relazione si chiama
3
interpretazione di f in M.
Serve chiarire il significato che daremo alle funzioni e alle relazioni 0-arie. Questo puramente con-
venzionale. Per definizione poniamo M 0 = {}. Una funzione 0-aria e dunque una funzione che
mappa lunico elemento di M 0 in un qualche elemento di M. Interpretare una simbolo di funzio-
ne zero-aria corrisponde quindi a scegliere un elemento del dominio. Se c un simbolo di funzio-
ne 0-aria scriveremo c M invece di c M (). I simboli di funzioni 0-arie vengono detti costanti e li
considereremo come nomi di particolari elementi di M.
Un predicato 0-ario invece ha ben poco significato: ha solo due possibili interpretazioni, e {}, e
non ne faremo mai uso.
A volte il termine modello viene usato al posto di struttura (altre volte, ma ben pi avanti, al termine
modello attribuiremo un significato pi ristretto).
1.1 Esempio Il linguaggio additivo dei gruppi, che qui denoteremo con L ga , contiene i seguenti tre
simboli di funzione:
Il linguaggio moltiplicativo dei gruppi, che qui denoteremo con L gm , contiene invece i simboli:
la costante: 1
Sottolineiamo che per il momento ci stiamo limitando a descrivere la sintassi quindi gli unici vincoli
che abbiamo sullinterpretazione dei simboli dato dallariet e dal fatto che siano funzioni totali.
1.2 Esempio Sia K un campo. Il linguaggio degli spazi vettoriali su K , che qui denoteremo con L K ,
estende quello dei gruppi additivi, L ga , con un simbolo di funzione unaria per ogni k K . Ricordiamo
che spazio vettoriale su K un gruppo abeliano M su cui K agisce. Lazione di K su M una funzione
: K M M che soddisfa alcune propriet che diamo per note (non rilevanti per ci che segue).
Noi qui penseremo uno spazio vettoriale come una struttura di segnatura L K , linterpretazione dei
simboli in L ga quella naturale dato che M un gruppo abeliano, linterpretazione del simbolo k K
la funzione k M : a 7 (k, a), il prodotto del vettore a per lo scalate k.
1.3 Esempio Il linguaggio L os degli ordini stretti contenete un solo simbolo di relazione binaria < che
useremo con notazione infissa. Ogni ordine parziale (stretto) identificato con una struttura M di
signatura L os .
1.4 Esempio Sia L grf un linguaggio che contiene ununica relazione binaria che qui indicheremo con
r . In combinatorica, per grafo si intende un insieme di vertici e un insieme di coppie non ordinate
dette archi. In teoria dei modelli si preferisce trattare con relazioni ordinate, quindi normalmente per
grafo si intende una struttura che interpreta r in una relazione irriflessiva e simmetrica.
4
1.3 Le tuple
Useremo il termine tupla come sinonimo di sequenza. Generalmente avremo a che fare con tuple
finite ma a volte far comodo trattare anche tuple infinite. Per lavorare con tuple di lunghezza arbi-
traria occorre una qualche familiariet con gli ordinali. Chi non ha familiarit con gli ordinali non si
scoraggi: per i primi capitoli lavoraremo quasi sempre con ordinali finiti. Questi sono semplicemente
insiemi del tipo {i : 0 i < n}, dove n un numero naturale. Come usuale con gli ordinali, useremo
n per denotare questo insieme: quindi i < n e i n sono espressioni simonime. Lunico ordinale
infinito di cui avremo bisogno nella prima parte del corso linsieme di tutti numeri naturali N che
denoteremo anche con .
Sia A un insieme non vuoto. Una tupla di elementi A di lunghezza , un ordinale, una mappa a :
A. Quando la tupla suriettiva su A, diremo che una enumerazione di A. Linsieme delle tuple di
lunghezza viene denotato con A . Quando finito confonderemo le sequenze di lunghezza n con
gli elementi della potenza cartesiana A n . Confonderemo le sequenze di lunghezza 1 con gli elementi
di A. Quando un ordinale finito, denoteremo la tupla a scrivendo a = a 0 ,... , a 1 , a volte anche
con parentesi angolari a = a 0 ,... , a 1 . La lunghezza della tupla a viene anche denotata con lh(a),
unaltra notazione molto diffusa |a|.
Si osservi che la tupla di lunghezza 0 , la funzione vuota, indipendentemente da A. Come gi
spiegato nel paragrafo 1.2 si conviene che A 0 sia linsieme {}, in questo modo a A lh(a) continua a
valere anche nel caso degenere della tupla vuota.
Spesso useremo concatenare due o pi tuple. Siano a e b due tuple. Scriveremo a b per denota-
re la concatenazione di a e b. Precisamente se a = a0 , . . . , an1 e b = b 0 , . . . , b m1 allora a b =
a0 , . . . , an1 , b 0 , . . . , b m1 .
1.5 Definizione I termini con parametri in A sono sequenze finite di parametri, variabili, simboli di
funzione. Li chiameremo anche termini su A , o quando A chiaro dal contesto, semplicemente
termini. Precisamente, i termini sono le sequenze che si ottengono seguendo il seguente processo
induttivo:
5
Con f t1 . . . tn intendiamo la sequenza ottenuta concatenando il simbolo f e le sequenze t1 , . . . , tn .
Pi avanti useremo la notazione informale f (t1 . . . , tn ).
I termini che vengono costruiti senza luso di variabili, cio senza mai applicare b1, si chiamano ter-
mini chiusi. I termini costruiti senza luso di simboli per funzioni, si chiamano termini atomici,
quelli costruiti senza luso dei parametri li chiameremo termini puri.
1.6 Esempio Siano f e g simboli di funzione binaria, h un simbolo si funzione unaria, c una costante.
Siano x e y due variabili e siano a e b due parametri. Le sequenze di lunghezza 1: x, y, a, b,
e c sono termini. Da questi applicando la clausola i otteniamo che anche f , x, y, g , a, a, e h, b
sono termini. Applicando successivamente la clausola i a questi termini otteniamo:
f , g , a, a, h, b, g , f , g , a, a, h, b, y, g , g , f , g , a, a, h, b, y, c.
Questi termini risultano decisamente difficili da leggere. La leggibilit migliora se aggiungiamo delle
parentesi.
f (g (a, a), h(b)), g ( f (g (a, a), h(b)), y), g (g ( f (g (a, a), h(b)), y), c).
giusto chiedersi se esiste un unico modo di aggiungere parentesi, ovvero, ununica lettura dei ter-
mini a questo ci di cui tratta in modo implicito il lemma 1.14.
1.7 Esempio Consideriamo il linguaggio L ga . Quando avremo a che fare con simboli di funzione che
ricordano operazioni algebriche preferiremo usare la notazione infissa. Per esempio, scriveremo x+y
invece di + x y. La notazione infissa rende per essenziale luso di parentesi per evitare ambiguit; per
esempio
+, +, 0, 0, x corrisponde a (0 + 0) + x
+, 1, +, 0, x corrisponde a 1 + (0 + x)
La notazione prefissa invece non richiede parentesi, dimostreremo che non produce espressioni
ambigue.
1.9 Esempio Lavoriamo col linguaggio L au , siano x, y, z variabili singole. Un sempio di sostituzione
6
allora t [x/s] il termine +, , +, x, y, +, x, y, y (x + y)2 + y
Un altro esempio:
sia r il termine , x, y xy
Notiamo che t [x z/s r ] non lo stesso che t [x/s][z/r ]. Nel primo le sostituzioni sono simultanee nel
secondo consecutive (non coincidono perch s contiene la variabile z).
Molto spesso, quando un termine t stato presentato come t (x, y) scriveremo t(s, y) invece che
t [x/s]. Luso pi frequente di questo tipo di notazione quando s semplicemente una tupla di
parametri a. Si noti che, se il termine t stato presentato come t (x), il termine t (a) chiuso. A rigo-
re, serve dimostrare che la definizione ben data, ovvero che t [x/s] un termine. La dimostrazione
viene fatta per induzione sulla sintassi:
1.10 Lemma Sia t un termine, x una tupla di variabili, ed s una tupla di termini della stessa lunghezza di
x . Allora anche t [x/s] un termine.
Dimostrazione Per maggior chiarezza dimostriamo il lemma nel caso in cui x sia una singola va-
riabile. La generalizzazione a tuple arbitrarie lasciata al lettore. Questa la prima dimostrazio-
ne per induzione sulla sintassi: la esporremo con dettagli su cui sorvoleremo in seguito. Possiamo
interpretare largomento come un induzione sul numero delle occorrenze di simboli di funzione.
Supponiamo che in t non occorrano simboli di funzione, ovvero t un termine atomico. Potrebbe
quindi essere un parametro o una variabile. Nel primo caso t [x/s] = t e quindi non c nulla da
dimostrare. Se invece t una variabile abbiamo due possibilit: t una variabile diversa da x e
quindi, di nuovo t [x/s] = t , oppure t = x e quindi t [x/s] = s. In entrambi i casi t [x/s] un termine.
Supponiamo ora che t abbia la forma f t1 , . . . , tk dove f un simbolo di funzione di ariet k e t1 , . . . , tk
sono termini per cui il lemma vale. Osserviamo che t [x/s] = f t0 [x/s], . . . , tk [x/s]. Per lipotesi indutti-
va t1 [x/s], . . . , tk [x/s] una tupla di termini. Quindi anche t [x/s], che ottenuto da questi applicando
la clausola i, un termine. (Si osservi che questo argomento corretto anche nel caso degenere in cui
f una costante.)
1.11 Lemma Sia s un termine con parameteri in A . Allora esiste una tupla di parametri a , una tupla di
variabili x , ed un termine puro t tali che s = t [x/a].
Dimostrazione Supponiamo s sia un termine atomico. Se tratta di una una variabile, non c nulla
da fare: prendiamo come t il termine s e lasciamo x ed a arbitrari. Nel caso in cui s sia un parametro,
diciamo b, allora pendiamo come t il termine atomico z, una variabile qualsiasi, e otteniamo s =
t [z/b] come richiesto.
Supponiamo ora che s = f s1 , . . . , sn . Assumiamo come ipotesi induttiva che il lemma valga per i
termini s1 , . . . , sn . Quindi per i = 1, . . . , n avremo si = ti [xi /ai ] con ti termine puro, xi una tupla
di variabili, ai una tupla di parametri. Osservi che la scelta delle tuple xi irrilevante: per una
qualsiasi tupla di variabili distinte xi della stessa lunghezza di xi esiste un termine puro t tale che
si = ti [xi /ai ]. Infatti basta definire t := t [xi /xi ]. Quindi possiamo assumere senza perdita di gene-
ralit che le variabili che occorrono in x1 , . . . , xn siano distinte. Ora, posto t = f t1 , . . . , tn otteniamo
s = t [x1 , . . . , xn /a1 , . . . , an ] come richiesto.
1.12 Esercizio Sia x una singola variabile. Si dimostri, per induzione sulla sintassi del termine t , che
lh t [x/s] lh(s) lh(t ).
7
1.13 Esercizio Siano x1 e x2 due variabili distinte. Quale ipotesi sui termini s1 ed s2 rende luguaglianza
t [x1 /s1 ][x2 /s2 ] = t [x2 /s2 ][x1 /s 1 ] valida per ogni termine t ?
1.14 Lemma (leggibilit univoca dei termini) Per i = 1, . . . , n siano ti e si termini tali che t1 . . . tn = s1 . . . sn .
Allora ti = si .
Dimostrazione Dimostreremo il lemma per induzione sul numero di occorrenze di simboli di fun-
zione in t1 . . . tn . Laffermazione ovvia se tutti i termini ti sono atomici. Quindi assumiamo laf-
fermazione vera per ogni n e per ogni sequenza del tipo t1 . . . tn se il numero totale di occorrenze
di simboli di funzione k. Fissiamo una sequenza t1 . . . tn in cui le funzioni occorrono k + 1 volte.
Quindi almeno un termine tra t1 , . . . , tn non atomico. Sia i il minimo tale che ti non atomico.
Possiamo assumere i = 1 perch se cos non fosse, concluderemmo che t1 = s1 , . . . , ti1 = si1 e che
ti . . . tn = si . . . sn e protremmo riduci al caso in cui il primo termine della sequenza non atomico.
Quindi possiamo assumere che t1 = f t1 . . . tm
e s1 = f s1 . . . sm
ottenendo
t1 . . . tm
t2 . . . tn = s1 . . . sm
s2 . . . sn .
Il lemma segue applicando lipotesi induttiva.
1.15 Definizione Sia M una struttura. Per ogni termine chiuso con parametri in M definiamo un ele-
mento di M che denoteremo con t M e chiameremo interpretazione di t . La definizione data per
induzione sulla sintassi:
Il lemma 1.14 stato usato nellultima clausola: questo garantisce che t individui univocamente la
tupla di termini t1 . . . tn .
La definizione 1.15 assume implicitamente che lariet di f coincida con lariet della tupla t1 . . . tn .
Nel caso di ariet 0, ovvero quando il termine t una costante c, linterpretazione t M c M () che
abbiamo convenuto di abbreviare con c M .
M
Se t (x) un termine, definiamo t M (x) : M lh(x) M come la funzione che mappa a 7 t (a) . Queste
linterpretazione del termine t (x). Notiamo (una pedanteria) che non stiamo associando come
promesso una funzione ad un termine ma una funzione ad una coppia: termine, tupla di variabili.
8
1.7 Le sottostrutture
Vogliamo dare una definizione di sottostruttura che generalizzi le nozioni di sottogruppo, sottoanello,
ecc., se queste sono considerate come strutture di signatura opportuna (come nellesempio 1.1). Per
comprendere la condizione 3 si pensi a strutture che contengono una relazione dordine per esempio
gruppi o anelli ordinati.
1.16 Definizione Siano M ed N due strutture con la stessa segnatura L . Diremo che M una sottostrut-
tura di N se valgono le seguenti tre condizioni.
1. il supporto linsieme A;
A
2. f = f N A n (questa una buona definizione per quanto richiesto sopra);
3. r A = r N An .
Dimostrazione Per dimostrare linclusione di 1, mostriamo che linsieme alla destra, chiamiamolo
M, una sottostruttura che contiene A. Che M contenga A ovvio: ogni elemento di A un termine
su A. Usiamo la definizione 1.16, se a una tupla di elementi di M allora a della forma s N dove s
una qualche tupla di termini a parameteri in A. Quindi f N (s N ) = ( f s)N M.
Per dimostrare linclusione bisogna mostrare che se t un termine chiuso a parametri in A allo-
ra t N M per ogni struttura M tale che A M N . Il lettore pu verificare come esercizio (vedi
esercizio 1.18) che t N = t M . Quindi t N M segue dallovvia inclusione t M M.
Ora 2 segue da 1 per il lemma 1.11. La dimostrazione di 3 lasciata al lettore.
1.18 Esercizio Sia M una sottostruttura di N , e t un termine chiuso a parametri in M. Si dmostri per
induzione sulla sintassi che t M = t N .