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 ω
, τ→ ω
pdla 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 ooooooox
0OO OO OO O
oooooooo
λx
1.x
0x
0 OO OO OO Otttttt
λx
1.x
0x
0 JJ JJ J{{{{{
λx
1.x
0λx
2.x
1x
0λx
1.x
0λx
2.x
1.. . .. . λx
3.x
2(Drugim argumentem zmiennej x
0na 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?
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).