Logica Combinatoria
Stefano Guerrini
Teoria della Dimostrazione
A.A. 2006–07
1
Logica Combinatoria
Supponiamo di avere un insieme numerabile di costanti C. Ad ogni costante
a ∈ C è associato un tipo α, dove α è una formula proposizionale contenente
solo il connettivo di implicazione. Più precisamente, l’insieme dei tipi è il più
piccolo insieme contenente l’insieme (non vuoto) dei tipi base, o costanti di tipo,
e t.c. se α e β sono due tipi, allora α → β è un tipo.
Oltre alle costanti (non logiche) C, sono date le costanti logiche
Sα,β,γ di tipo (α → β → γ) → (α → β) → α → γ
Kα,β di tipo α → β → α
Iα di tipo α → α
Si osservi che si tratta di una famiglia di costanti logiche, in quanto, ad esempio,
si avrà una particolare Sα,β,γ per ogni terna di tipi α, β e γ.
I termini della logica combinatoria o combinatori sono definiti a partire dalle
costanti C e dalle costanti logiche per mezzo della seguente regola di composizione:
se u è un combinatore di tipo α → β e v è un combinatore di tipo α, allora
uv è un combinatore di tipo β.
Per indicare che un combinatore u ha tipo α, scriveremo u : α.
In pratica, interpretando un combinatore v : α come un elemento dell’insieme
α e un combiatore u : α → β come una funzione da α in β, la regola di
composizione uv corrisponde all’usuale regola di applicazione delle funzioni ed
è pertanto anche detta applicazione.
Per risparmiare parentesi, nella scrittura dei tipi e dei combinatori assumeremo che:
• per quanto riguarda i tipi, l’implicazione è associativa a destra, ovvero
α → β → γ = α → (β → γ);
• per quanto riguarda i combinatori, l’applicazione è associativa a sinistra,
ovvero uvw = (uv)w.
1
Sui combinatori sono definite le seguenti regole di riduzione:
Suvw
→
uw(vw)
Kuv
→
u
Iu
→
u
Nelle regole di riduzione sono stati omessi i tipi, ma è facile vedere che partendo
da un combinatore, il risultato della riduzione è un combinatore dello stesso
tipo.
Scriveremo u →∗ v per indicare che v è ottenuto da u per applicazione di
una sequenza (possibilmente vuota) di riduzioni e diremo che v è un ridotto di
u. Ad esempio, SKuv →∗ v, dato che SKuv → Kv(uv) → v.
Un combinatore è in forma normale se non può essere ridotto.
2
Logica Combinatoria e Deduzione alla Hilbert
Restringiamo il nostro interesse alla logica proposizionale con il solo connettivo
di implicazione.
Osservazione . Si ossservi che gli assiomi logici del calcolo alla Hilbert con solo
l’implicazione sono proprio i tipi di S, K e I.
Supponiamo di avere una deduzione alla Hilbert di una formula α a partire
da un insieme di assiomi (non logici) Γ e che l’insieme delle costanti C contiene
almeno una costante di tipo α per ogni α ∈ Γ.
Domanda 1. Sia Γ un insieme di assiomi e CΓ un insieme di costanti tale che,
per ogni istanza α0 di una formula α ∈ Γ, l’insieme CΓ contiene (almeno) una
costante a : α0 . Si dimostri che ad ogni dimostrazione alla Hilbert di Γ ` α è
possibile associare un combinatore u : α costruito a partire dalle costanti CΓ .
Domanda 2. Sia u : α un combinatore costruito a partire dall’insieme di
costanti C. Si dimostri che è possibile associare ad u : α una dimostrazione alla
Hilbert di Γ ` α, dove Γ è l’insieme dei tipi delle costanti in C (più precisamente,
Γ = {α | a : α per qualche a ∈ C}).
Domanda 3. La logica minimale è il frammento implicativo del calcolo proposizionale (l’unico connettivo del sistema è l’implicazione e, in deduzione naturale, le uniche regole oltre all’assioma sono l’introduzione e l’eliminazione della
freccia). Perché posso affermare che una formula α è un teorema (ovvero, in
deduzione naturale, si ha ` α) della logica minimale se e solo se esiste un combinatore u : α che contiene solo costanti logiche?
3
Teorema di Deduzione
Si ricorda che il teorema di deduzione non solo garantisce che se Γ, α ` β allora
Γ ` α → β, ma la sua dimostrazione fornisce anche un modo per trasformare
una dimostrazione di β a partire dagli assiomi Γ, α in una di α → β a partire
dagli assiomi Γ.
2
Domanda 4. Si definisca una funzione λ̄ che, presi una costante a : α e un
termine u : β, restituisce un termine λ̄(a, u) : α → β in cui a non occorre e che
contiene solo costanti che occorrono il u. Più precisamente, indicando con C(u)
l’insieme delle costanti non logiche contenute in un termine u, allora a 6∈ C(v)
e C(u) = C(v) ∪ {a}.
Il termine λ̄(a, u) sarà anche indicato con λ̄a.u.
Domanda 5. Dimostrare che (λ̄a.u)v →∗ u[v/a].
4
Logica Combinatoria e λ-calcolo
Domanda 6. Utilizzando la funzione λ̄, definire una traduzione dei λ-termini
tipati semplici in combinatori che ad ogni λ-termine t : α con variabili libere
x1 : α1 , . . . , xk : αk associa un combinatore t∗ : α costruito a partire dalle
costanti x1 : α1 , . . . , xk : αk . Dimostrare che se t →∗ s allora t∗ →∗ s∗ .
Domanda 7. Definire una traduzione dei combinatori in λ-termini che ad ogni
u : α che contiene le costanti non logiche a1 : α1 , . . . , ak : αk associa un λtermine u• : α con variabili libere a1 : α1 , . . . , ak : αk e tale che se u →∗ v allora
u • →∗ v • .
Domanda 8. Le due trasformazioni dei precedenti esercizi definiscono una
biiezione? Ovvero, verificano (t∗ )• = t e (u• )∗ = u per ogni λ-termine t e ogni
termine della logica combinatoria u? (Dimostrare le uguaglianze o fornire dei
contresempi.)
3