Ritorna all'inizio


Signatures

Una signature (firma, in italiano), è formalmente definita come una coppia (Σ,ar) dove Σ è l'insieme di operatori

Σ={c,f,g,}

ar è la funzione arietà, ar:Σ

Esempio: Σ={0,succ,plus}

ar(0)=0 (funzione costante)

ar(succ)=1 (funzione unaria)

ar(plus)=2 (funzione binaria)

Termini su una signature

Siano

Σ={Σn},n una signature

X={x,y,z,} un insieme infinito di variabili

TΣ,X denota l'insieme di tutti i termini su Σ,X

Sostituzioni

Vedremo ora come effettuare sostituzioni, ovvero assegnazioni di termini a variabili

Una sostituzione è una mappa tra un insieme di variabili X e l'insieme dei termini così definito

ρ:XTΣ,X

ρ(t) ad esempio, denota il termine ottenuto sostituendo simultaneamente tutte le occorrenze delle variabili in t

Spesso è anche scritto come tρ.

Ad esempio

ρ=[x=succ(y),y=0]

t=plus(plus(x,y),succ(x))

tρ=plus(plus(succ(y),0),succ(succ(y)))

È interessante osservare che alcune espressioni possono così diventare più generali di altre, vediamo di chiarire meglio questo concetto.

Si dice che t è più generale di t se ρ.t=tρ

In tal caso, chiamiamo t istanza di t.

Unificazioni

Affronteremo il tema delle unificazioni nella sua forma più semplice, sintattica e di prim'ordine.

Il problema delle unificazioni è così definito:

Dato un insieme di potenziali uguaglianze

G={1=?r1,,n=?rn}

Dove 1,,n,r1,,rnTΣ,X

La domanda è la seguente:

Possiamo trovare una sostituzione ρ tale che

i[1,n].ρ(i)=ρ(ri) ?

Chiamiamo questo ρ, se esiste, una soluzione di G.

sols(G){ρi[1,n]ρ(i)=ρ(ri)}

Articoli correlati