• Nie Znaleziono Wyników

− 4x + 4, dla x ∈ N. Prosz e napisa´

N/A
N/A
Protected

Academic year: 2021

Share "− 4x + 4, dla x ∈ N. Prosz e napisa´"

Copied!
2
0
0

Pełen tekst

(1)

Egzamin z rachunku lambda, 20 czerwca 2020

1. Niech g(x) = x

2

− 4x + 4, dla x ∈ N. Prosz e napisa´

,

c lambda-term definiuj acy funkcj

,

e g.

,

Czy ta funkcja jest definiowalna w rachunku lambda z typami prostymi za pomoc a

,

termu typu ω

p

→ ω

p

? Czy jest definiowalna sko´ snie (z pomoc a termu typu ω

, τ

→ ω

p

dla pewnego τ )? Czy jest definiowalna w polimorficznym rachunku lambda za pomoc a

,

termu typu ω → ω?

2. Prosz e skonstruowa´

,

c taki kombinator X, ˙ze

X(λxy. xx(xxxy)(λx. yx)) 

β

1 oraz X(λxy. xx(xyx(λx. yx))y) 

β

2.

3. Prosz e skonstruowa´

,

c taki term N , ˙ze drzewo B¨ ohma BT(N ) wygl ada tak:

,

λx

0

.x

0 OO OO O ooooooo

x

0

OO OO OO O

oooooooo

λx

1

.x

0

x

0 OO OO OO O

tttttt

λx

1

.x

0

x

0 JJ JJ J

{{{{{

λx

1

.x

0

λx

2

.x

1

x

0

λx

1

.x

0

λx

2

.x

1

.. . .. . λx

3

.x

2

(Drugim argumentem zmiennej x

0

na lewej kraw edzi drzewa na g l

,

eboko´

,

sci k ma by´ c term T

k

= λx

1

. x

0

(λx

2

. x

1

(. . . (λx

k+1

. x

k

) . . .)) wysoko´ sci k.)

4. Czy termy

(a) λu.(λyw.w(xz)(xy))(zu);

(b) λu.(λyw.w(xz)(xy))(uz),

s a typowalne w rachunku lambda z typami prostymi? W rachunku typ´

,

ow iloczynowych

bez sta lej ω? W systemie F?

(2)

Rozwiazania,

1: Funkcja g nie jest wielomianem warunkowym, wiec nie jest definiowalna w typie ω, p → ωp. Ale jest definiowalna sko´snie. Niech τ = (ωp → ωp → ωp → ωp → ωp) → ωp. Nasza funkcj, e, definiuje kombinator G = λx : ωτ. G0 typu ωτ → ωp. Jest ona te˙z definiowalna w systemie F, bo wystarczy G przerobi´c na polimorficzny term GF = λx : ω. Λp. G0[x := xτ ]. Pozostaje zdefiniowa´c G0 := x(λc : τ. hcπ24, cπ43, add (cπ34)(cπ44), succ(succ(cπ44))i)h4, 1, 0, 1iπ14, gdzie liczebniki sa typu ω, p, oraz πi4= λx1x2x3x4: ωp.xi.

2: Na przyk lad X = λu. uT T0π23π13123π31, gdzie T = λxyz. hx, y, zi oraz T0 = λxyz. hy, x, zi.

3: Zauwa˙zmy, ˙ze Tk+1 = λx1. x0(Tk[x0 := x1]), inaczej λx0. Tk+1 =β λx0x1. x0((λx0. Tk)x1). Mamy wiec T, k =βk(λtx0x1. x0(tx1))(λx0x1. x0)x0.

Teraz zdefiniujemy N = λx0. Y(λzk. x0(z(succ k)Tk)0 u˙zywajac r´, ownania Nk = x0Nk+1Tk.

4: Domniemane typy proste αx, αy, αz, αu zmiennych x, y, z, u wystepuj, acych w termie 4a powinny, spe lnia´c r´ownania: αx= αz→ β = αy → γ, αz= αu→ δ, αy= δ. Stad wynika α, y = αz= αu→ αy, czyli αy musi by´c swoja w lasn, a w la´, sciwa podformu l, a. Zatem term 4a nie jest typowalny w typach, prostych. W systemie F ma typ p → (p → p → p) → p w otoczeniu {z : ∀p. p, x : p → p} bo powstaje przez wycieranie typ´ow z takiego termu Churcha: λu : p (λy : p λw : p→p→p. w(x(zp))(xy))(z(p→p)u).

A skoro jest silnie normalizowalny, to jest te˙z typowalny w typach iloczynowych bez pomocy omegi.

Z termem 4b sprawa jest prostsza. W otoczeniu {z : p, x : p → p} ma typ (p → p) → (p → p → p) → p, bo powstaje przez wycieranie typ´ow z termu λu : p→ p (λy : p λw : p→p→p. w(xz)(xy))(uz).

Cytaty