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