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 ρ:X→TΣ,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,…,rn∈TΣ,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