• Nie Znaleziono Wyników

Rachunek lambda, lato 2019-20

N/A
N/A
Protected

Academic year: 2021

Share "Rachunek lambda, lato 2019-20"

Copied!
113
0
0

Pełen tekst

(1)

Rachunek lambda, lato 2019-20

Wykład 11

15 maja 2020

(2)

Powtórzenie z teorii złożoności:

alternacja

(3)

Maszyna alternująca

Maszyna ma stany (konfiguracje, pozycje):

egzystencjalne i uniwersalne.

Konfiguracja akceptująca (końcowa) jest wygrywająca.

Konfiguracja niekońcowa C o następnikach C1, ..., Cn jest wygrywająca, gdy:

-C jest egzystencjalna i któraś z C1, ..., Cn jest wygrywająca;

-C jest uniwersalna i wszystkie C1, ..., Cn są wygrywające.

Maszyna akceptuje, gdy konfiguracja początkowa jest wygrywająca.

Obliczenie akceptujące = drzewo.

(4)

Maszyna alternująca to gra

Pozycje w grze, to konfiguracje maszyny.

Zaczynamy w konfiguracji początkowej.

W pozycji niekońcowej C o następnikach C1, ..., Cn, następną pozycję spośródC1, ..., Cn wybiera:

- gracz egzystencjalny ∃, jeśli C egzystencjalna;

- gracz uniwersalny∀, jeśli C uniwersalna.

W pozycji końcowej gracz∃ wygrywa.

Obliczenie akceptujące = strategia gracza egzystencjalnego.

(5)

Złożoność alternująca

ALOGSPACE = PTIME APTIME = PSPACE

APSPACE = EXPTIME

AEXPTIME = EXPSPACE i tak dalej.

(6)

Powtórzenie z logiki:

minimalny rachunek zdań

(7)

Naturalna dedukcja

Dowodzimy osądów postaciΓ ` A, gdzie Γ jest zbiorem formuł, a Ajest formułą. Sens: A wynika z założeń Γ.

I Reguływprowadzania spójników logicznych: jak można udowodnić formułę danej postaci?

I Regułyeliminacji spójników: jak można wykorzystać formułę tej postaci do udowodnienia innej?

(8)

Naturalna dedukcja

Dowodzimy osądów postaciΓ ` A, gdzie Γ jest zbiorem formuł, a Ajest formułą. Sens: A wynika z założeń Γ.

I Reguływprowadzania spójników logicznych: jak można udowodnić formułę danej postaci?

I Regułyeliminacji spójników: jak można wykorzystać formułę tej postaci do udowodnienia innej?

(9)

Naturalna dedukcja: reguły dla →

Γ, σ ` σ (Ax)

Γ, σ ` τ

(I →) Γ ` σ → τ

Γ ` σ → τ Γ ` σ

(E →) Γ ` τ

(10)

Natural deduction: notacja dla dowodów

Γ,

x :

σ `

x :

σ

Γ,

x :

σ `

M :

τ Γ `

λx M :

σ → τ

Γ `

M :

σ → τ Γ `

N :

σ Γ `

MN :

τ

(11)

Natural deduction: notacja dla dowodów

Γ,x :σ `

x :

σ

Γ,

x :

σ `

M :

τ Γ `

λx M :

σ → τ

Γ `

M :

σ → τ Γ `

N :

σ Γ `

MN :

τ

(12)

Natural deduction: notacja dla dowodów

Γ,x :σ `x :σ

Γ,

x :

σ `

M :

τ Γ `

λx M :

σ → τ

Γ `

M :

σ → τ Γ `

N :

σ Γ `

MN :

τ

(13)

Natural deduction: notacja dla dowodów

Γ,x :σ `x :σ

Γ,

x :

σ `

M :

τ Γ `

λx M :

σ → τ

Γ ` M :σ → τ Γ ` N :σ Γ `

MN :

τ

(14)

Natural deduction: notacja dla dowodów

Γ,x :σ `x :σ

Γ,

x :

σ `

M :

τ Γ `

λx M :

σ → τ

Γ ` M :σ → τ Γ ` N :σ Γ ` MN :τ

(15)

Natural deduction: notacja dla dowodów

Γ,x :σ `x :σ

Γ,x :σ `M :τ Γ `

λx M :

σ → τ

Γ ` M :σ → τ Γ ` N :σ Γ ` MN :τ

(16)

Natural deduction: notacja dla dowodów

Γ,x :σ `x :σ

Γ,x :σ `M :τ Γ `λx M :σ → τ

Γ ` M :σ → τ Γ ` N :σ Γ ` MN :τ

(17)

Curry-Howard isomorphism

Types = Formulas Terms = Proofs

Computation = Proof normalization

(18)

Curry-Howard isomorphism

Twierdzenie

Dla dowolnego typuτ, kombinator typu τ istnieje wtedy i tylko wtedy, gdyτ jest twierdzeniem logiki minimalnej.

Dowód: Inhabitant typu τ to nic innego jak dowód twierdzenia (ale z dodatkowymi adnotacjami).

(Twierdzenie nadal zachodzi, jeśli zamiast „minimalnej” napiszemy „intuicjonistycznej”.)

(19)

Curry-Howard isomorphism

Twierdzenie

Dla dowolnego typuτ, kombinator typu τ istnieje wtedy i tylko wtedy, gdyτ jest twierdzeniem logiki minimalnej.

Dowód: Inhabitant typu τ to nic innego jak dowód twierdzenia (ale z dodatkowymi adnotacjami).

(Twierdzenie nadal zachodzi, jeśli zamiast „minimalnej” napiszemy „intuicjonistycznej”.)

(20)

Curry-Howard isomorphism

Twierdzenie

Dla dowolnego typuτ, kombinator typu τ istnieje wtedy i tylko wtedy, gdyτ jest twierdzeniem logiki minimalnej.

Dowód: Inhabitant typu τ to nic innego jak dowód twierdzenia (ale z dodatkowymi adnotacjami).

(Twierdzenie nadal zachodzi, jeśli zamiast „minimalnej”

napiszemy „intuicjonistycznej”.)

(21)

Normalizacja

Γ, σ ` σ

··

··

·· Γ, σ ` τ· Γ ` σ → τ

·· Γ ` σ· Γ ` τ

·· Γ ` σ·

··

··

·· Γ ` τ·

(λx :σ Mτ)Nσ ⇒ Mτ[x := Nσ]

(22)

Normalizacja

Γ, σ ` σ

··

··

·· Γ, σ ` τ· Γ ` σ → τ

·· Γ ` σ· Γ ` τ

·· Γ ` σ·

··

··

·· Γ ` τ·

(λx :σ Mτ)Nσ ⇒ Mτ[x := Nσ]

(23)

Normalizacja

Γ, σ ` σ

··

··

·· Γ, σ ` τ· Γ ` σ → τ

·· Γ ` σ· Γ ` τ

·· Γ ` σ·

··

··

·· Γ ` τ·

(λx :σ Mτ)Nσ ⇒ Mτ[x := Nσ]

(24)

Sens moralny normalizacji

Jeśli τ jest twierdzeniem, to istnieje taki termM w postaci normalnej, że ` M : τ.

Czyli „dowód normalny”.

Wniosek: Logika minimalna jest niesprzeczna: istnieją formuły, których nie można udowodnić. Dowód: Na przykład 0 p, bo w pustym otoczeniu nie ma termu normalnego o typie atomowym.

(25)

Sens moralny normalizacji

Jeśli τ jest twierdzeniem, to istnieje taki termM w postaci normalnej, że ` M : τ.

Czyli „dowód normalny”.

Wniosek: Logika minimalna jest niesprzeczna:

istnieją formuły, których nie można udowodnić.

Dowód: Na przykład 0 p, bo w pustym otoczeniu nie ma termu normalnego o typie atomowym.

(26)

Sens moralny normalizacji

Jeśli τ jest twierdzeniem, to istnieje taki termM w postaci normalnej, że ` M : τ.

Czyli „dowód normalny”.

Wniosek: Logika minimalna jest niesprzeczna:

istnieją formuły, których nie można udowodnić.

Dowód: Na przykład 0 p, bo w pustym otoczeniu nie ma termu normalnego o typie atomowym.

(27)

The inhabitation problem

Inhabitation problem:

GivenΓ, τ, is there M such that Γ ` M : τ?

Twierdzenie (R. Statman):

Inhabitation in simple types is decidable and PSPACE-complete.

Wniosek:

To samo dotyczy minimalnego rachunku zdań.

Uwaga:

Klasyczny rachunek zdań jest . . .

. . . „ zaledwie” co-NP zupełny.

(28)

The inhabitation problem

Inhabitation problem:

GivenΓ, τ, is there M such that Γ ` M : τ?

Twierdzenie (R. Statman):

Inhabitation in simple types is decidable and PSPACE-complete.

Wniosek:

To samo dotyczy minimalnego rachunku zdań.

Uwaga:

Klasyczny rachunek zdań jest . . .

. . . „ zaledwie” co-NP zupełny.

(29)

The inhabitation problem

Inhabitation problem:

GivenΓ, τ, is there M such that Γ ` M : τ?

Twierdzenie (R. Statman):

Inhabitation in simple types is decidable and PSPACE-complete.

Wniosek:

To samo dotyczy minimalnego rachunku zdań.

Uwaga:

Klasyczny rachunek zdań jest . . .

. . . „ zaledwie” co-NP zupełny.

(30)

The inhabitation problem

Inhabitation problem:

GivenΓ, τ, is there M such that Γ ` M : τ?

Twierdzenie (R. Statman):

Inhabitation in simple types is decidable and PSPACE-complete.

Wniosek:

To samo dotyczy minimalnego rachunku zdań.

Uwaga:

Klasyczny rachunek zdań jest . . .

. . . „ zaledwie” co-NP zupełny.

(31)

The inhabitation problem

Inhabitation problem:

GivenΓ, τ, is there M such that Γ ` M : τ?

Twierdzenie (R. Statman):

Inhabitation in simple types is decidable and PSPACE-complete.

Wniosek:

To samo dotyczy minimalnego rachunku zdań.

Uwaga:

Klasyczny rachunek zdań jest . . .

. . . „ zaledwie” co-NP zupełny.

(32)

Long normal forms

I If x : α1 → · · · αn → p and M1 : α1, . . . Mk : αk are long normal forms thenxM1. . . Mk : p is a long normal form.

I If M : β is a long normal form, then λx : α. M is a long normal form of type α → β.

Lemat 1:

If Γ ` M : τ then there exists a long normal formM0 such that M0 =βη M and Γ ` M0 : τ.

Lemat 2:

If Γ(x ) = ρ and Γ ∪ {y : ρ} ` M : τ then Γ ` M[y := x ] : τ.

(33)

Long normal forms

I If x : α1 → · · · αn → p and M1 : α1, . . . Mk : αk are long normal forms thenxM1. . . Mk : p is a long normal form.

I If M : β is a long normal form, then λx : α. M is a long normal form of type α → β.

Lemat 1:

If Γ ` M : τ then there exists a long normal formM0 such that M0 =βη M and Γ ` M0 : τ.

Lemat 2:

If Γ(x ) = ρ and Γ ∪ {y : ρ} ` M : τ then Γ ` M[y := x ] : τ.

(34)

Long normal forms

I If x : α1 → · · · αn → p and M1 : α1, . . . Mk : αk are long normal forms thenxM1. . . Mk : p is a long normal form.

I If M : β is a long normal form, then λx : α. M is a long normal form of type α → β.

Lemat 1:

If Γ ` M : τ then there exists a long normal formM0 such that M0 =βη M and Γ ` M0 : τ.

Lemat 2:

If Γ(x ) = ρ and Γ ∪ {y : ρ} ` M : τ

(35)

Searching for long normal forms

The Wajsberg/Ben-Yelles algorithm:

To answerΓ ` ? : α, apply one of the following tactics:

I Forα = β → γ, ask Γ ∪ {x : β} ` ? : γ (freshx). (SolutionM = λx :β. Nγ.)

I Forα = p, choose x : β1 → · · · → βk → p from Γ, then ask Γ ` ? : βi,for all i. Success if k = 0. (SolutionM = xN1β1. . . Nkβk.)

(36)

Searching for long normal forms

The Wajsberg/Ben-Yelles algorithm:

To answerΓ ` ? : α, apply one of the following tactics:

I Forα = β → γ, ask Γ ∪ {x : β} ` ? : γ (freshx).

(SolutionM = λx :β. Nγ.)

I Forα = p, choose x : β1 → · · · → βk → p from Γ, then ask Γ ` ? : βi,for all i. Success if k = 0. (SolutionM = xN1β1. . . Nkβk.)

(37)

Searching for long normal forms

The Wajsberg/Ben-Yelles algorithm:

To answerΓ ` ? : α, apply one of the following tactics:

I Forα = β → γ, ask Γ ∪ {x : β} ` ? : γ (freshx).

(SolutionM = λx :β. Nγ.)

I Forα = p, choose x : β1 → · · · → βk → p from Γ, then ask Γ ` ? : βi,for all i. Success if k = 0.

(SolutionM = xN1β1. . . Nkβk.)

(38)

Alternation

I A solution of Γ ` ? : p is of the form M = xN1β1. . . Nkβk, for somex : β1 → · · · → βk → p in Γ.

I Nondeterminism: because there can be more than one x.

I Branching (recursion): because Γ ` Ni : βi must be solved in parallel.

(39)

Alternation

I A solution of Γ ` ? : p is of the form M = xN1β1. . . Nkβk, for somex : β1 → · · · → βk → p in Γ.

I Nondeterminism: because there can be more than one x.

I Branching (recursion): because Γ ` Ni : βi must be solved in parallel.

(40)

Alternation

I A solution of Γ ` ? : p is of the form M = xN1β1. . . Nkβk, for somex : β1 → · · · → βk → p in Γ.

I Nondeterminism: because there can be more than one x.

I Branching (recursion): because Γ ` Ni : βi must be solved in parallel.

(41)

Ben-Yelles algorithm

To answerΓ ` ? : α, apply one of the following tactics:

I Forα = β → γ, ask Γ ∪ {x : β} ` ? : γ (freshx).

(SolutionM = λx :β. Nγ.)

I Forα = p, choose x : β1 → · · · → βk → p from Γ, then ask Γ ` ? : βi,for all i. Success if k = 0.

(SolutionM = xN1β1. . . Nkβk.)

Ten alternujący proces można objaśniać jako grę między graczem ∃(który dowodzi twierdzenia) i graczem ∀ (który poszukuje błędu w dowodzie). Rozwiązanie istnieje wtedy i tylko wtedy, gdy gracz ∃ma strategię zwycięską.

(42)

Ben-Yelles algorithm

To answerΓ ` ? : α, apply one of the following tactics:

I Forα = β → γ, ask Γ ∪ {x : β} ` ? : γ (freshx).

(SolutionM = λx :β. Nγ.)

I Forα = p, choose x : β1 → · · · → βk → p from Γ, then ask Γ ` ? : βi,for all i. Success if k = 0.

(SolutionM = xN1β1. . . Nkβk.)

Ten alternujący proces można objaśniać jako grę między graczem ∃(który dowodzi twierdzenia) i graczem ∀ (który poszukuje błędu w dowodzie). Rozwiązanie istnieje

(43)

Przykład (nieformalny): (p → ¬q) → (¬p → ¬q) → ¬q (Negacja ¬α oznacza α → ⊥)

(Assumptions: x : p → ¬q, y : ¬p → ¬q, z : q. Goal: ⊥) Opponent (∀): Can you prove ⊥?

Player (∃): I will use assumptiony!

Opponent (∀): Can you prove the 1st assumption¬p ? That is, can you prove⊥ using new asumption v : p? Player (∃): Yes, I will use assumption x!

Opponent (∀): Can you prove the 2nd assumptionq? Player (∃): Sure, take z!

Proof = strategy = inhabitant: λxyz.y(λv .xvz)z

(44)

Przykład (nieformalny): (p → ¬q) → (¬p → ¬q) → ¬q (Negacja ¬α oznacza α → ⊥)

(Assumptions: x : p → ¬q, y : ¬p → ¬q, z : q. Goal: ⊥)

Opponent (∀): Can you prove ⊥? Player (∃): I will use assumptiony!

Opponent (∀): Can you prove the 1st assumption¬p ? That is, can you prove⊥ using new asumption v : p? Player (∃): Yes, I will use assumption x!

Opponent (∀): Can you prove the 2nd assumptionq? Player (∃): Sure, take z!

Proof = strategy = inhabitant: λxyz.y(λv .xvz)z

(45)

Przykład (nieformalny): (p → ¬q) → (¬p → ¬q) → ¬q (Negacja ¬α oznacza α → ⊥)

(Assumptions: x : p → ¬q, y : ¬p → ¬q, z : q. Goal: ⊥) Opponent (∀): Can you prove ⊥?

Player (∃): I will use assumptiony!

Opponent (∀): Can you prove the 1st assumption¬p ? That is, can you prove⊥ using new asumption v : p? Player (∃): Yes, I will use assumption x!

Opponent (∀): Can you prove the 2nd assumptionq? Player (∃): Sure, take z!

Proof = strategy = inhabitant: λxyz.y(λv .xvz)z

(46)

Przykład (nieformalny): (p → ¬q) → (¬p → ¬q) → ¬q (Negacja ¬α oznacza α → ⊥)

(Assumptions: x : p → ¬q, y : ¬p → ¬q, z : q. Goal: ⊥) Opponent (∀): Can you prove ⊥?

Player (∃): I will use assumptiony!

Opponent (∀): Can you prove the 1st assumption¬p ? That is, can you prove⊥ using new asumption v : p? Player (∃): Yes, I will use assumption x!

Opponent (∀): Can you prove the 2nd assumptionq? Player (∃): Sure, take z!

Proof = strategy = inhabitant: λxyz.y(λv .xvz)z

(47)

Przykład (nieformalny): (p → ¬q) → (¬p → ¬q) → ¬q (Negacja ¬α oznacza α → ⊥)

(Assumptions: x : p → ¬q, y : ¬p → ¬q, z : q. Goal: ⊥) Opponent (∀): Can you prove ⊥?

Player (∃): I will use assumptiony!

Opponent (∀): Can you prove the 1st assumption¬p ?

That is, can you prove⊥ using new asumption v : p? Player (∃): Yes, I will use assumption x!

Opponent (∀): Can you prove the 2nd assumptionq? Player (∃): Sure, take z!

Proof = strategy = inhabitant: λxyz.y(λv .xvz)z

(48)

Przykład (nieformalny): (p → ¬q) → (¬p → ¬q) → ¬q (Negacja ¬α oznacza α → ⊥)

(Assumptions: x : p → ¬q, y : ¬p → ¬q, z : q. Goal: ⊥) Opponent (∀): Can you prove ⊥?

Player (∃): I will use assumptiony!

Opponent (∀): Can you prove the 1st assumption¬p ? That is, can you prove⊥ using new asumption v : p?

Player (∃): Yes, I will use assumption x!

Opponent (∀): Can you prove the 2nd assumptionq? Player (∃): Sure, take z!

Proof = strategy = inhabitant: λxyz.y(λv .xvz)z

(49)

Przykład (nieformalny): (p → ¬q) → (¬p → ¬q) → ¬q (Negacja ¬α oznacza α → ⊥)

(Assumptions: x : p → ¬q, y : ¬p → ¬q, z : q. Goal: ⊥) Opponent (∀): Can you prove ⊥?

Player (∃): I will use assumptiony!

Opponent (∀): Can you prove the 1st assumption¬p ? That is, can you prove⊥ using new asumption v : p? Player (∃): Yes, I will use assumption x!

Opponent (∀): Can you prove the 2nd assumptionq? Player (∃): Sure, take z!

Proof = strategy = inhabitant: λxyz.y(λv .xvz)z

(50)

Przykład (nieformalny): (p → ¬q) → (¬p → ¬q) → ¬q (Negacja ¬α oznacza α → ⊥)

(Assumptions: x : p → ¬q, y : ¬p → ¬q, z : q. Goal: ⊥) Opponent (∀): Can you prove ⊥?

Player (∃): I will use assumptiony!

Opponent (∀): Can you prove the 1st assumption¬p ? That is, can you prove⊥ using new asumption v : p? Player (∃): Yes, I will use assumption x!

Opponent (∀): Can you prove the 2nd assumptionq?

Player (∃): Sure, take z!

Proof = strategy = inhabitant: λxyz.y(λv .xvz)z

(51)

Przykład (nieformalny): (p → ¬q) → (¬p → ¬q) → ¬q (Negacja ¬α oznacza α → ⊥)

(Assumptions: x : p → ¬q, y : ¬p → ¬q, z : q. Goal: ⊥) Opponent (∀): Can you prove ⊥?

Player (∃): I will use assumptiony!

Opponent (∀): Can you prove the 1st assumption¬p ? That is, can you prove⊥ using new asumption v : p? Player (∃): Yes, I will use assumption x!

Opponent (∀): Can you prove the 2nd assumptionq? Player (∃): Sure, take z!

Proof = strategy = inhabitant: λxyz.y(λv .xvz)z

(52)

Przykład (nieformalny): (p → ¬q) → (¬p → ¬q) → ¬q (Negacja ¬α oznacza α → ⊥)

(Assumptions: x : p → ¬q, y : ¬p → ¬q, z : q. Goal: ⊥) Opponent (∀): Can you prove ⊥?

Player (∃): I will use assumptiony!

Opponent (∀): Can you prove the 1st assumption¬p ? That is, can you prove⊥ using new asumption v : p? Player (∃): Yes, I will use assumption x!

Opponent (∀): Can you prove the 2nd assumptionq?

(53)

Termination

I The question Γ ` ? : β → γ leads to Γ ∪ {x :β} ` ? : γ.

The environment Γ is extended by x : β.

I Every suchβ is a subformula in the initial problem (there is only a linear number of such formulas).

I New variables can be replaced by old ones, i.e.,Γ must in fact stabilize (in polynomial time).

Po wielomianowej liczbie kroków zadanie musi się powtórzyć. Morał: Problem inhabitacji (czyli problem decyzyjny dla minimalnego rachunku zdań) jest w klasie APTIME = PSPACE

(54)

Termination

I The question Γ ` ? : β → γ leads to Γ ∪ {x :β} ` ? : γ.

The environment Γ is extended by x : β.

I Every suchβ is a subformula in the initial problem (there is only a linear number of such formulas).

I New variables can be replaced by old ones, i.e.,Γ must in fact stabilize (in polynomial time).

Po wielomianowej liczbie kroków zadanie musi się powtórzyć. Morał: Problem inhabitacji (czyli problem decyzyjny dla minimalnego rachunku zdań) jest w klasie APTIME = PSPACE

(55)

Termination

I The question Γ ` ? : β → γ leads to Γ ∪ {x :β} ` ? : γ.

The environment Γ is extended by x : β.

I Every suchβ is a subformula in the initial problem (there is only a linear number of such formulas).

I New variables can be replaced by old ones, i.e.,Γ must in fact stabilize (in polynomial time).

Po wielomianowej liczbie kroków zadanie musi się powtórzyć. Morał: Problem inhabitacji (czyli problem decyzyjny dla minimalnego rachunku zdań) jest w klasie APTIME = PSPACE

(56)

Termination

I The question Γ ` ? : β → γ leads to Γ ∪ {x :β} ` ? : γ.

The environment Γ is extended by x : β.

I Every suchβ is a subformula in the initial problem (there is only a linear number of such formulas).

I New variables can be replaced by old ones, i.e.,Γ must in fact stabilize (in polynomial time).

Po wielomianowej liczbie kroków zadanie musi się powtórzyć.

Morał: Problem inhabitacji (czyli problem decyzyjny dla minimalnego rachunku zdań) jest w klasie APTIME = PSPACE

(57)

Termination

I The question Γ ` ? : β → γ leads to Γ ∪ {x :β} ` ? : γ.

The environment Γ is extended by x : β.

I Every suchβ is a subformula in the initial problem (there is only a linear number of such formulas).

I New variables can be replaced by old ones, i.e.,Γ must in fact stabilize (in polynomial time).

Po wielomianowej liczbie kroków zadanie musi się powtórzyć.

Morał: Problem inhabitacji (czyli problem decyzyjny dla minimalnego rachunku zdań) jest w klasie A = P

(58)

Konstrukcja dowodu jako obliczenie

OsądΓ ` q (gdzie q – atom), można interpretować jako konfigurację automatu:

I Cel atomowyq to stan maszyny;

I OtoczenieΓ to zawartość pamięci, w tym program.

I Założenie p → q umożliwia zmianę stanu z q na p.

I Założenie (b → p) → q umożliwia zmianę stanu zq na p, z jednoczesnym zapisaniem b w pamięci.

I Założenie p → r → q to krok uniwersalny do p i r na raz.

I Założenie a → p → q umożliwia zmianę stanu zq na p, gdy w pamięci jest zapisanea.

Uwaga: (1) nie można usunąć danej z pamięci; (2) nie można sprawdzić, że danej w pamięci nie ma.

(59)

Konstrukcja dowodu jako obliczenie

OsądΓ ` q (gdzie q – atom), można interpretować jako konfigurację automatu:

I Cel atomowyq to stan maszyny;

I OtoczenieΓ to zawartość pamięci, w tym program.

I Założenie p → q umożliwia zmianę stanu z q na p.

I Założenie (b → p) → q umożliwia zmianę stanu zq na p, z jednoczesnym zapisaniem b w pamięci.

I Założenie p → r → q to krok uniwersalny do p i r na raz.

I Założenie a → p → q umożliwia zmianę stanu zq na p, gdy w pamięci jest zapisanea.

Uwaga: (1) nie można usunąć danej z pamięci; (2) nie można sprawdzić, że danej w pamięci nie ma.

(60)

Konstrukcja dowodu jako obliczenie

OsądΓ ` q (gdzie q – atom), można interpretować jako konfigurację automatu:

I Cel atomowyq to stan maszyny;

I OtoczenieΓ to zawartość pamięci, w tym program.

I Założenie p → q umożliwia zmianę stanu z q na p.

I Założenie (b → p) → q umożliwia zmianę stanu zq na p, z jednoczesnym zapisaniem b w pamięci.

I Założenie p → r → q to krok uniwersalny do p i r na raz.

I Założenie a → p → q umożliwia zmianę stanu zq na p, gdy w pamięci jest zapisanea.

Uwaga: (1) nie można usunąć danej z pamięci; (2) nie można sprawdzić, że danej w pamięci nie ma.

(61)

Konstrukcja dowodu jako obliczenie

OsądΓ ` q (gdzie q – atom), można interpretować jako konfigurację automatu:

I Cel atomowyq to stan maszyny;

I OtoczenieΓ to zawartość pamięci, w tym program.

I Założenie p → q umożliwia zmianę stanu z q na p.

I Założenie (b → p) → q umożliwia zmianę stanu zq na p, z jednoczesnym zapisaniem b w pamięci.

I Założenie p → r → q to krok uniwersalny do p i r na raz.

I Założenie a → p → q umożliwia zmianę stanu zq na p, gdy w pamięci jest zapisanea.

Uwaga: (1) nie można usunąć danej z pamięci; (2) nie można sprawdzić, że danej w pamięci nie ma.

(62)

Konstrukcja dowodu jako obliczenie

OsądΓ ` q (gdzie q – atom), można interpretować jako konfigurację automatu:

I Cel atomowyq to stan maszyny;

I OtoczenieΓ to zawartość pamięci, w tym program.

I Założenie p → q umożliwia zmianę stanu z q na p.

I Założenie (b → p) → q umożliwia zmianę stanu zq na p, z jednoczesnym zapisaniemb w pamięci.

I Założenie p → r → q to krok uniwersalny do p i r na raz.

I Założenie a → p → q umożliwia zmianę stanu zq na p, gdy w pamięci jest zapisanea.

Uwaga: (1) nie można usunąć danej z pamięci; (2) nie można sprawdzić, że danej w pamięci nie ma.

(63)

Konstrukcja dowodu jako obliczenie

OsądΓ ` q (gdzie q – atom), można interpretować jako konfigurację automatu:

I Cel atomowyq to stan maszyny;

I OtoczenieΓ to zawartość pamięci, w tym program.

I Założenie p → q umożliwia zmianę stanu z q na p.

I Założenie (b → p) → q umożliwia zmianę stanu zq na p, z jednoczesnym zapisaniemb w pamięci.

I Założenie p → r → q to krok uniwersalny do p i r na raz.

I Założenie a → p → q umożliwia zmianę stanu zq na p, gdy w pamięci jest zapisanea.

Uwaga: (1) nie można usunąć danej z pamięci; (2) nie można sprawdzić, że danej w pamięci nie ma.

(64)

Konstrukcja dowodu jako obliczenie

OsądΓ ` q (gdzie q – atom), można interpretować jako konfigurację automatu:

I Cel atomowyq to stan maszyny;

I OtoczenieΓ to zawartość pamięci, w tym program.

I Założenie p → q umożliwia zmianę stanu z q na p.

I Założenie (b → p) → q umożliwia zmianę stanu zq na p, z jednoczesnym zapisaniemb w pamięci.

I Założenie p → r → q to krok uniwersalny do p i r na raz.

I Założenie a → p → q umożliwia zmianę stanu zq na p, gdy w pamięci jest zapisanea.

Uwaga: (1) nie można usunąć danej z pamięci; (2) nie można sprawdzić, że danej w pamięci nie ma.

(65)

Konstrukcja dowodu jako obliczenie

OsądΓ ` q (gdzie q – atom), można interpretować jako konfigurację automatu:

I Cel atomowyq to stan maszyny;

I OtoczenieΓ to zawartość pamięci, w tym program.

I Założenie p → q umożliwia zmianę stanu z q na p.

I Założenie (b → p) → q umożliwia zmianę stanu zq na p, z jednoczesnym zapisaniemb w pamięci.

I Założenie p → r → q to krok uniwersalny do p i r na raz.

I Założenie a → p → q umożliwia zmianę stanu zq na p, gdy w pamięci jest zapisanea.

Uwaga: (1) nie można usunąć danej z pamięci;

(66)

Monotonic automata

Monotonic automaton: M = hQ, R, f , Ii,

I Q is a finite set of states, f ∈ Q the final state.

I R is a finite set of registers;

I I is a finite set of instructions of the form:

(1) q :checkS1;setS2;jmpp, (2) q :jmpp1 andp2,

wherep, p1, p2 ∈ Q and S1, S2 ⊆ R.

(67)

Monotonic automata

Configuration: hq, Si, where q ∈ Q and S ⊆ R.

Final configurations are winning.

Transitions:

I forI = q : checkS1;setS2;jmpp: hq, Si →I hp, S ∪ S2i, provided S1 ⊆ S; If hp, S ∪ S2i winning then hq, Si is winning

I forI = q : jmpp1 andp2:

hq, Si →I hp1, S i and hq, Si →I hp2, S i If hp1, S i and hp2, S i are winning then so is hq, Si.

(68)

Monotonic automata

Configuration: hq, Si, where q ∈ Q and S ⊆ R.

Final configurations are winning.

Transitions:

I forI = q : checkS1;setS2;jmpp:

hq, Si →I hp, S ∪ S2i, provided S1 ⊆ S; If hp, S ∪ S2i winning then hq, Si is winning

I forI = q : jmpp1 andp2:

hq, Si →I hp1, S i and hq, Si →I hp2, S i If hp1, S i and hp2, S i are winning then so is hq, Si.

(69)

Monotonic automata

Configuration: hq, Si, where q ∈ Q and S ⊆ R.

Final configurations are winning.

Transitions:

I forI = q : checkS1;setS2;jmpp:

hq, Si →I hp, S ∪ S2i, provided S1 ⊆ S; If hp, S ∪ S2i winning then hq, Si is winning

I forI = q : jmpp1 andp2:

hq, Si →I hp1, S i and hq, Si →I hp2, S i If hp1, S i and hp2, S i are winning then so is hq, Si.

(70)

Monotonic automata

Lemma

The halting problem for monotonic automata Is a given configuration winning?

is PSPACE-hard.

(71)

Monotonic encoding of an ATM

Alternating time p(n).

Registers: stants, littia, pozti, Initial configuration:

C0 = hloop01, {lit01a1, ..., lit0nan, lit0n+1B, ..., lit0p(n)B, stan00, poz01}i. represents initial ID of TM for inputw = a1...an.

Later:

C = hloopt1, S i encodes the firstt steps of TM computation, e.g., lit56a ∈ S iff after 5 steps, the 6th cell contains a.

(72)

Monotonic encoding of an ATM

Alternating time p(n).

Registers: stants, littia, pozti,

Initial configuration:

C0 = hloop01, {lit01a1, ..., lit0nan, lit0n+1B, ..., lit0p(n)B, stan00, poz01}i. represents initial ID of TM for inputw = a1...an.

Later:

C = hloopt1, S i encodes the firstt steps of TM computation, e.g., lit56a ∈ S iff after 5 steps, the 6th cell contains a.

(73)

Monotonic encoding of an ATM

Alternating time p(n).

Registers: stants, littia, pozti, Initial configuration:

C0 = hloop01, {lit01a1, ..., lit0nan, lit0n+1B, ..., lit0p(n)B, stan00, poz01}i.

represents initial ID of TM for inputw = a1...an.

Later:

C = hloopt1, S i encodes the firstt steps of TM computation, e.g., lit56a ∈ S iff after 5 steps, the 6th cell contains a.

(74)

Monotonic encoding of an ATM

Alternating time p(n).

Registers: stants, littia, pozti, Initial configuration:

C0 = hloop01, {lit01a1, ..., lit0nan, lit0n+1B, ..., lit0p(n)B, stan00, poz01}i.

represents initial ID of TM for inputw = a1...an. Later:

C = hloopt1, S i encodes the firstt steps of TM computation,

(75)

Example instructions for (s, a) ⇒ (u, b, +ε)

When i < p(n):

loopti :

checkstants, pozti, littia;setstant+1u , pozt+1i +ε, litt+1ib ;jmploopti +1; checkstants, poztj, littia;setlitt+1ia ;jmploopti +1;

When i = p(n):

loopti :

checkstants, pozti, littia;setstant+1u , pozt+1i +ε, litt+1ib ;jmploopt+11 ; checkstants, poztj, littia;setlitt+1ia ;jmploopt+11 .

(76)

Example instructions for (s, a) ⇒ (u, b, +ε)

When i < p(n):

loopti :

checkstants, pozti, littia;setstant+1u , pozt+1i +ε, litt+1ib ;jmploopti +1; checkstants, poztj, littia;setlitt+1ia ;jmploopti +1;

When i = p(n):

loopti :

checkstants, pozti, littia;setstant+1u , pozt+1i +ε, litt+1ib ;jmploopt+11 ;

(77)

Example instructions: universal split

Assume that TM does not write nor move in universal states.

When i < p(n):

loopti :checkstants, littia, poztj;setlitt+1ia , pozt+1j ;jmploopti +1;

When i = p(n):

loopti :checkstants, littia, poztj;setlitt+1ia , pozt+1j ;jmpsplitst+11s2; splitt+1s1s2 :jmpgot+1s1 andgot+1s2 ;

got+1s1 :check∅;setstant+1s1 ;jmploopt+11 ;

(78)

Example instructions: universal split

Assume that TM does not write nor move in universal states.

When i < p(n):

loopti :checkstants, littia, poztj;setlitt+1ia , pozt+1j ;jmploopti +1;

When i = p(n):

loopti :checkstants, littia, poztj;setlitt+1ia , pozt+1j ;jmpsplitst+11s2; splitt+1s1s2 :jmpgot+1s1 andgot+1s2 ;

(79)

Programs into proofs!

GivenM = hQ, R, f , Ii and C0 = hq0, S0i, define a set of axiomsΓ so that

Γ ` q0 iff C0 is winning.

Propositional variables: states and registers of M. Put all ofS0 into Γ, alsof ∈ Γ.

Other axioms represent instructions of M.

(80)

Programs into proofs!

GivenM = hQ, R, f , Ii and C0 = hq0, S0i, define a set of axiomsΓ so that

Γ ` q0 iff C0 is winning.

Propositional variables: states and registers of M.

Put all ofS0 into Γ, alsof ∈ Γ.

Other axioms represent instructions of M.

(81)

Programs into proofs!

GivenM = hQ, R, f , Ii and C0 = hq0, S0i, define a set of axiomsΓ so that

Γ ` q0 iff C0 is winning.

Propositional variables: states and registers of M.

Put all ofS0 into Γ, alsof ∈ Γ.

Other axioms represent instructions of M.

(82)

Programs into proofs!

GivenM = hQ, R, f , Ii and C0 = hq0, S0i, define a set of axiomsΓ so that

Γ ` q0 iff C0 is winning.

Propositional variables: states and registers of M.

Put all ofS0 into Γ, alsof ∈ Γ.

Other axioms represent instructions of M.

(83)

Instructions seen as axioms

Axiom for q :checkS1;setS2;jmpp, whereS1 = {s11, ..., s1k} and S2 = {s21, ..., s2`}:

(1) s11 → · · · → s1k → (s21 → · · · s2` → p) → q.

Axiom forq :jmpp1 andp2:

(2) p1 → p2 → q.

(84)

Proof construction as computation

To prove Γ, S ` q, one can:

I Note that q = f and observe f ∈ Γ;

I Use axiomp1 → p2 → q and prove in parallel: Γ, S ` p1 and Γ, S ` p2

I Use axioms11 → · · · → s1k → (s21 → · · · s2` → p) → q, provided S1 = {s11, ..., s1k} ⊆ S, and prove that

Γ, S , s21, ..., s2` ` p

(85)

Proof construction as computation

To prove Γ, S ` q, one can:

I Note that q = f and observe f ∈ Γ;

I Use axiomp1 → p2 → q and prove in parallel: Γ, S ` p1 and Γ, S ` p2

I Use axioms11 → · · · → s1k → (s21 → · · · s2` → p) → q, provided S1 = {s11, ..., s1k} ⊆ S, and prove that

Γ, S , s21, ..., s2` ` p

(86)

Proof construction as computation

To prove Γ, S ` q, one can:

I Note that q = f and observe f ∈ Γ;

I Use axiomp1 → p2 → q and prove in parallel:

Γ, S ` p1 and Γ, S ` p2

I Use axioms11 → · · · → s1k → (s21 → · · · s2` → p) → q, provided S1 = {s11, ..., s1k} ⊆ S, and prove that

Γ, S , s21, ..., s2` ` p

(87)

Proof construction as computation

To prove Γ, S ` q, one can:

I Note that q = f and observe f ∈ Γ;

I Use axiomp1 → p2 → q and prove in parallel:

Γ, S ` p1 and Γ, S ` p2

I Use axioms11 → · · · → s1k → (s21 → · · · s2` → p) → q, provided S1 = {s11, ..., s1k} ⊆ S, and prove that

Γ, S , s21, ..., s2` ` p

(88)

The technical lemma we need

Lemma

Γ, S ` q iff hq, S0∪ Si is winning.

Proof.

(⇒) Induction wrt the size of proof.

(⇐) Induction wrt the definition of acceptance.

(89)

Morał

Twierdzenie:

Minimalny rachunek zdań jest PSPACE-zupełny.

A klasyczny?

Tylko co-NP zupełny.

(90)

Morał

Twierdzenie:

Minimalny rachunek zdań jest PSPACE-zupełny.

A klasyczny?

Tylko co-NP zupełny.

(91)

Morał

Twierdzenie:

Minimalny rachunek zdań jest PSPACE-zupełny.

A klasyczny?

Tylko co-NP zupełny.

(92)

Hilbert style proofs

Hilbert style propositional axioms for implication:

I α → β → α;

I (α → β → γ) → (α → β) → α → γ.

Hilbert style proof rule: modus ponens (application). Dowód to po prostu ciąg formuł.

Deduction theorem:

If Γ, σ ` τ then Γ ` σ → τ.

(93)

Hilbert style proofs

Hilbert style propositional axioms for implication:

I α → β → α;

I (α → β → γ) → (α → β) → α → γ.

Hilbert style proof rule: modus ponens (application).

Dowód to po prostu ciąg formuł.

Deduction theorem:

If Γ, σ ` τ then Γ ` σ → τ.

(94)

Hilbert style proofs

Hilbert style propositional axioms for implication:

I α → β → α;

I (α → β → γ) → (α → β) → α → γ.

Hilbert style proof rule: modus ponens (application).

Dowód to po prostu ciąg formuł.

Deduction theorem:

(95)

Example proof

1. (ϕ → (ψ → ϕ) → ϕ) → (ϕ → ψ → ϕ) → ϕ → ϕ;

2. ϕ → (ψ → ϕ) → ϕ;

3. (ϕ → ψ → ϕ) → ϕ → ϕ (detach 2 from 1);

4. ϕ → ψ → ϕ;

5. ϕ → ϕ (detach 4 from 3).

(96)

Proofs as combinators

Hilbert style propositional axioms for implication:

I

K :

α → β → α;

I

S :

(α → β → γ) → (α → β) → α → γ.

Deduction theorem:

If Γ,

x :

σ `

M :

τ then Γ `

λx . M :

σ → τ.

(97)

Proofs as combinators

Hilbert style propositional axioms for implication:

I K : α → β → α;

I S : (α → β → γ) → (α → β) → α → γ.

Deduction theorem:

If Γ,

x :

σ `

M :

τ then Γ `

λx . M :

σ → τ.

(98)

Proofs as combinators

Hilbert style propositional axioms for implication:

I K : α → β → α;

I S : (α → β → γ) → (α → β) → α → γ.

Deduction theorem:

If Γ,x :σ ` M :τ then Γ `

λx . M :

σ → τ.

(99)

Proofs as combinators

Hilbert style propositional axioms for implication:

I K : α → β → α;

I S : (α → β → γ) → (α → β) → α → γ.

Deduction theorem:

If Γ,x :σ ` M :τ then Γ `λx . M :σ → τ.

(100)

Logical connectives

Γ ` ϕ Γ ` ψ

Γ ` ϕ ∧ ψ (I ∧) Γ ` ϕ ∧ ψ

Γ ` ϕ (E ∧) Γ ` ϕ ∧ ψ Γ ` ψ Γ ` ϕ

Γ ` ϕ ∨ ψ (I ∨) Γ ` ψ Γ ` ϕ ∨ ψ Γ ` ϕ ∨ ψ Γ, ϕ ` ϑ Γ, ψ ` ϑ

Γ ` ϑ (E ∨)

Γ ` ⊥ Γ ` ϕ (E ⊥)

(101)

Logical connectives

Γ ` ϕ Γ ` ψ Γ ` ϕ ∧ ψ (I ∧)

Γ ` ϕ ∧ ψ

Γ ` ϕ (E ∧) Γ ` ϕ ∧ ψ Γ ` ψ Γ ` ϕ

Γ ` ϕ ∨ ψ (I ∨) Γ ` ψ Γ ` ϕ ∨ ψ Γ ` ϕ ∨ ψ Γ, ϕ ` ϑ Γ, ψ ` ϑ

Γ ` ϑ (E ∨)

Γ ` ⊥ Γ ` ϕ (E ⊥)

(102)

Logical connectives

Γ ` ϕ Γ ` ψ

Γ ` ϕ ∧ ψ (I ∧) Γ ` ϕ ∧ ψ

Γ ` ϕ (E ∧) Γ ` ϕ ∧ ψ Γ ` ψ

Γ ` ϕ

Γ ` ϕ ∨ ψ (I ∨) Γ ` ψ Γ ` ϕ ∨ ψ Γ ` ϕ ∨ ψ Γ, ϕ ` ϑ Γ, ψ ` ϑ

Γ ` ϑ (E ∨)

Γ ` ⊥ Γ ` ϕ (E ⊥)

(103)

Logical connectives

Γ ` ϕ Γ ` ψ

Γ ` ϕ ∧ ψ (I ∧) Γ ` ϕ ∧ ψ

Γ ` ϕ (E ∧) Γ ` ϕ ∧ ψ Γ ` ψ Γ ` ϕ

Γ ` ϕ ∨ ψ (I ∨) Γ ` ψ Γ ` ϕ ∨ ψ

Γ ` ϕ ∨ ψ Γ, ϕ ` ϑ Γ, ψ ` ϑ

Γ ` ϑ (E ∨)

Γ ` ⊥ Γ ` ϕ (E ⊥)

(104)

Logical connectives

Γ ` ϕ Γ ` ψ

Γ ` ϕ ∧ ψ (I ∧) Γ ` ϕ ∧ ψ

Γ ` ϕ (E ∧) Γ ` ϕ ∧ ψ Γ ` ψ Γ ` ϕ

Γ ` ϕ ∨ ψ (I ∨) Γ ` ψ Γ ` ϕ ∨ ψ Γ ` ϕ ∨ ψ Γ, ϕ ` ϑ Γ, ψ ` ϑ

Γ ` ϑ (E ∨)

Γ ` ⊥ Γ ` ϕ (E ⊥)

(105)

Logical connectives

Γ ` ϕ Γ ` ψ

Γ ` ϕ ∧ ψ (I ∧) Γ ` ϕ ∧ ψ

Γ ` ϕ (E ∧) Γ ` ϕ ∧ ψ Γ ` ψ Γ ` ϕ

Γ ` ϕ ∨ ψ (I ∨) Γ ` ψ Γ ` ϕ ∨ ψ Γ ` ϕ ∨ ψ Γ, ϕ ` ϑ Γ, ψ ` ϑ

Γ ` ϑ (E ∨)

Γ ` ⊥ Γ ` ϕ (E ⊥)

(106)

Conjunction is the product

Γ ` M : ϕ Γ ` N : ψ Γ ` hM, Ni : ϕ ∧ ψ (I ∧)

Γ ` M : ϕ ∧ ψ

Γ ` π1(M) : ϕ (E ∧) Γ ` M : ϕ ∧ ψ Γ ` π2(M) : ψ

π1(hM, Ni) ⇒ M, π2(hM, Ni) ⇒ N

(107)

Disjunction is the coproduct

Γ `M : ϕ

Γ `inl(M) : ϕ ∨ ψ (W ∨) Γ ` M : ψ Γ `inr(M): ϕ ∨ ψ

Γ ` M : ϕ ∨ ψ Γ(x : ϕ) `P : ϑ Γ(y : ψ) `Q : ϑ Γ `case M of [x]P, [y ]Q : ϑ (E ∨)

case inl(P) of [x]M, [y ]N ⇒ M[x := P]

case inr(Q) of [x]M, [y ]N ⇒ N[y := Q].

(108)

Generalized eta-reductions

If we believe everything is canonical. . . hπ1(M), π2(M)i ⇒ M

(case M of [x ]inl x , [y ]inr y ) ⇒ M.

(109)

Absurd is the empty type (the thing which is not)

Ex falso quodlibet:

Γ ` M : ⊥

Γ ` εϕ(M) : ϕ (E ⊥)

No introduction rule, no beta- or eta-reduction.

(110)

Konserwatywność

Twierdzenie

Intuicjonistyczny rachunek zdań IPC (ze wszystkimi spójnikami

∨, ∧, →, ⊥, ¬ i regułą ex falso) jest konserwatywny nad logiką minimalną: jeśli formuła implikacyjna τ jest twierdzeniem IPC, to jest twierdzeniem logiki minimalnej.

Dowód: Trzeba zdefiniować odpowiedni rachunek lambda z produktami, koproduktami i typem pustym i udowodnić normalizację.

Postać normalna o typie implikacyjnym jest zbudowana tylko

(111)

Classical (unnatural) deduction

1

Γ, ¬σ ` ⊥

(Cheat) Γ ` σ

Example: Peirce’s Law

((p → q) → p) → p

is classically valid, but unprovable without rule (Cheat). Indeed, there is no normal M with

x : (p → q) → p ` M : p

(112)

Classical (unnatural) deduction

1

Γ, ¬σ ` ⊥

(Cheat) Γ ` σ

Example: Peirce’s Law

((p → q) → p) → p

is classically valid, but unprovable without rule (Cheat).

Indeed, there is no normal M with x : (p → q) → p ` M : p

(113)

Classical (unnatural) deduction

1

Γ, ¬σ ` ⊥

(Cheat) Γ ` σ

Example: Peirce’s Law

((p → q) → p) → p

is classically valid, but unprovable without rule (Cheat).

Indeed, there is no normal M with x : (p → q) → p ` M : p

Cytaty

Powiązane dokumenty

Takie typy czasem się

For every number n of a type derivation for a lambda-term M there exists m such that every number of a finite reduction sequence of M is less

For every number n of a type derivation for a lambda-term M there exists m such that every number of a finite reduction sequence of M is less than m... Strong Normalization.. For

(Potem zredukujemy J do typu bool → word.).. Typy proste: semantyka.. Schubert’97):.. Nierozstrzygalność drugiego rzędu nawet wtedy, gdy niewiadome nie są

I Validity/provability in second-order classical propositional logic (known as the QBF problem) is P SPACE -complete.. I Provability in second-order intuitionistic propositional

Twierdzenie ( Löb, 1976, Gabbay, 1974, Sobolew, 1977) Problem inhabitacji:.. Dany typ τ , czy istnieje term zamknięty M

I Przedmiotem dziaªania mo»e by¢ cokolwiek, zatem.. funkcja nie ma a priori

M = λ~x.(λy.P)Q~R → β λ~ x.P[y := Q]~R = N is called