You are on page 1of 7

Capitolo 1

Strutture, termini, sottostrutture

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.

1.1 I linguaggi del primordine


Un linguaggio (del primordine) consiste di

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.

Spesso ci riferiremo al linguaggio nominando semplicemente linsieme L.


Tipicamente useremo il simbolo r per denotare un generico predicato ed il simbolo f per denotare
un generico simbolo di funzione. Useremo dire che f un simbolo di funzione unaria, o binaria,
ternaria,. . . ,n-aria, ecc., per dire che il valore di Ar( f ) 1, 2, 3, . . . , n, ecc. Similmente per le relazioni.
I simboli di funzione 0-arie si chiamano anche costanti. A volte viene usata una categoria apposita
per le costanti, ma considerarle come simboli di funzione 0-arie compatta la notazione.
Spesso per comodit denoteremo gli elementi del linguaggio con simboli che suggeriscono un signi-
ficato. Ribadiamo per che gli elementi di L sono oggetti qualsiasi, conta solo la loro ariet. Sarebbe
legittimo prendere come L un sottinsieme dei numeri naturali, o adirittura dei numeri reali. Non
serve che sia finito e neppure numerabile anche se nella maggior parte dei casi qui ci limiteremo a
linguaggi finiti.
Come sinonimo di linguaggio useremo anche dire segnatura. In letteratura occorre anche il termine
tipo di similarit. La specificazione del primordine verr spesso omessa.

1.2 Le strutture del primordine


Una struttura (del primordine) di segnatura L consiste della collezione M dei seguenti dati.

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:

una costante (ovvero funzione di ariet 0): 0

un simbolo di funzione unaria (ovvero ariet 1):

un simbolo di funzione binaria (ovvero ariet 2): +

Il linguaggio moltiplicativo dei gruppi, che qui denoteremo con L gm , contiene invece i simboli:

una costante (ovvero funzione di ariet 0): 1

un simbolo di funzione unaria (ovvero ariet 1): 1

un simbolo di funzione binaria (ovvero ariet 2):

Una struttura di signatura L ga consiste di un insieme M, un elemento 0M di M, una funzione unaria


M , e una funzione binaria +M . Analogamente per strutture di signatura L gm . Infine il linguaggio
degli anelli (unitari), L au estende L ga con i seguenti simboli di funzione:

la costante: 1

il simbolo di funzione binaria:

Il linguaggio degli anelli ordinati L ao estende L au con

un predicato binario: <

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.4 La sintassi dei termini


Le funzioni che sono limmagine dellinterpretazione in una struttura dei simboli del linguaggio ver-
ranno chiamate funzioni primitive. Vogliamo ora introdurre dei nomi per le funzioni che si otten-
gono componendo in modo arbitrario le funzioni primitive. Lesempio pi paradigmatico quel-
lo del linguaggio degli anelli: qui componendo la somma e la moltiplicazione otteniamo le fun-
zioni polinomiali. I polinomi sono le espressioni sintattiche che fungomo da nomi per le funzioni
polinomiali.
Fissiamo un insieme infinito V i cui elementi chiameremo variabili. Useremo le lettere minuscole x,
y, z, ecc. per denotare variabili o arbitrarie tuple di variabili. Di nuovo questa solo una comodit
che aiuta la lettura: come insieme V potremmo prendere qualsiasi cosa, importante solo che sia
disgiunto da L e che sia infinito (per quel che serve a noi basta anche solo numerabile).
Fissiamo un linguaggio L. Fissiamo anche un insieme qualsiasi A; gli elementi di A li chiameremo
parametri. Nel seguito A sar sempre sottoinsieme di una qualche struttura di segnatura L ma per il
momento ci irrilevante, pensiamoli come costanti ausiliarie, non presenti nel linguaggio L. Gio-
cano il ruolo che in algebra e geometria hanno i coefficenti (di polinomi, equazioni, curve, ecc.), e
torneranno utili nel definire la semantica. In prima lettura meglio ignorarli.

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:

b1. ogni variabile un termine;

b2. ogni parametro un termine;

i. se f un simbolo di funzione n -aria e t1 , . . . , tn sono termini, allora anche f t1 . . . tn un termine.

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.8 Esempio Consideriamo il linguaggio L au . I seguenti sono esempi di temini di L au :


+, +, 0, 1, x corrisponde a (0 + 1) + x
, 1, +, x, y corrisponde a 1 (x + y)
Pi avanti useremo le consuete abbreviazioni per scrivere termini di L au . Per esempio scriveremo 2
per la sequenza di simboli +, 1, 1, oppure x 2 + 1 per la sequenza + , x, x, 1.

1.5 Operazioni sintattiche sui termini


Se t un termine e x una tupla di variabili scriveremo t (x) invece di scrivere t per dire che le varia-
bili che occorrono in t sono al pi quelle che occorrono nella tupla x. La notazione t (x) pu essere
usata anche quando x una tupla infinita, ovviamente in t occorrono solo numero finito di varia-
bili. Se x ed y sono due tuple di variabili lespressione t (x, y) sinomima t (x y), dove x y denota la
concatenazione di x ed y.
Se x una tupla di variabili distinte ed s una tupla di termini della stessa lunghezza di x, scrive-
remo t[x/s] per denotare la sequenza che si ottiene sostituendo x con s, precisamente, sostituendo
simultaneamente ogni componente di x con la corrispondente componente di s. Lespressione
ben definita solo se x una tupla di variabili distinte oppure se ad eventuali ripetizioni nella tupla
x corrispondono identiche ripetizioni nella tupla t . Non saremo troppo pignoli su questo punto,
assumeremo sempre che le tuple siano ben date.

1.9 Esempio Lavoriamo col linguaggio L au , siano x, y, z variabili singole. Un sempio di sostituzione

sia t il termine +, , x, x, y ovvero: x2 + y

sia s il termine +, x, y x+y

6
allora t [x/s] il termine +, , +, x, y, +, x, y, y (x + y)2 + y

Un altro esempio:

sia t il termine +, , x, z, y ovvero: xz+y

sia s il termine +, x, z x+z

sia r il termine , x, y xy

allora t [x z/s r ] il termine +, , +, x, z, , x, y, y (x + z) x y + y

allora t [x/s][z/r ] il termine +, , +, x, , x, y, , x, y, y (x + x y) x y + y

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.6 La semantica dei termini


Ogni struttura M interpreta i simboli di funzione in vere e proprie funzioni da M n in M. Vogliamo
estendere questa interpretazione in modo naturale a tutti termini con parametri in M. Comincia-
mo col definire linterpretazione dei termini chiusi, questi verranno interpretati come elementi della
struttura.
Per poter presentare la definizione nel modo pi semplice possibile abbiamo bisogno di un lemma
tecnico. Questo dice che data una sequenza di simboli ottenuta concatenando vari termini sempre
possibile risalire ai termini con cui stata composta sorprendente: perch non abbiamo introdotto
nessun simbolo separatore che marchi la fine del termine n-esimo e linizio del termine (n + 1)-
esimo.

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. 

La dimostrazione del lemma 1.14 compatta ma leggermente criptica. In realt il problema pi


semplice di quel che sembra. Esiste infatti un algoritmo che ricava i termini t1 , . . . , tn dalla sequenza
t1 . . . tn . Leggiamo la sequenza da sinistra a destra aggiornando un contatore come segue: allinizio il
contatore segna 1; quando incontriamo una variabile o di un parametro, sottraiamo 1 al contatore;
quando incontriamo un simbolo di funzione n-aria, sommiamo n 1 al contatore. Quando il conta-
tore segna 0 ci fermiamo: la sequenza letta al quel punto t1 . Possiamo quindi iterare la procedura
per otternere t2 , t3 , ecc. Formalizzare questa procedura per ottere una dimostrazione del lemma 1.14
piuttosto laborioso.

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:

b2. se t = a , dove a un parametro, definiamo t M = a ;

i. se t = f t1 . . . tn , dove f un simbolo di funzione, definiamo t M = f M (t1M . . . tnM ).

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 dominio di M un sottoinsieme del dominio di N .

2. Linterpretazione in M dei simboli di funzione la restrizione ad M dellinterpretazione in N ,


ovvero f M = f N M n dove n larit del simbolo f .

3. Linterpretazione in M dei predicati la restrizione ad M dellinterpretazione in N , ovvero r M =


r N M n dove n larit del predicato r .

Quando scriveremo M N , intenderemo che M una sottostruttura di N . Per denotare comuni


sottoinsiemi di N useremo le lettere A, B ecc. Se A N tale che f N [A n ] A per tutte le funzioni del
linguaggio allora possiamo associare ad A una sottostruttura di N nel modo naturale

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 .

Spesso confonderemo tali sottoinsiemi di N con la struttura a loro associata.


E immediato verificare che lintersezione di una famiglia arbitraria di sottostrutture di N ancora
una sottostruttura di N . Data quindi una struttura N ed un insieme A N possiamo definire la
sottostruttura di N generata da A come lintersezione di tutte le sottostrutture di N che contengono
A. La denoteremo con AN .
Diamo ora una rappresentazione pi concreta di AN .

1.17 Lemma Sia N una struttura e sia A N un sottoinsieme arbitrario. Allora


n o
1 AN = t N : t termine chiuso con parametri in A
n o
2 AN = t N (a) : t (x) termine puro, a tupla di elementi di A
[
3 AN = A n , dove A 0 = A e
n n o
A n+1 = A n f N (a) : f L fun , a tupla di elementi di A n

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 .

You might also like