Lambda suav suav: piav qhia ntawm lub theorem, nta, piv txwv

Cov txheej txheem:

Lambda suav suav: piav qhia ntawm lub theorem, nta, piv txwv
Lambda suav suav: piav qhia ntawm lub theorem, nta, piv txwv
Anonim

Lambda suav suav yog ib txoj hauv kev hauv kev ua lej rau kev qhia txog kev suav cov lus tsis txaus ntseeg thiab siv cov haujlwm siv kev sib txuas thiab hloov pauv hloov pauv. Qhov no yog tus qauv thoob ntiaj teb uas tuaj yeem siv rau kev tsim ntawm txhua lub tshuab Turing. Lub lambda suav tau thawj zaug los ntawm Lub Koom Txoos, tus kws ua lej nto moo, hauv xyoo 1930.

Lub kaw lus muaj cov tswv cuab lambda thiab ua haujlwm txo qis rau lawv.

Kev piav qhia thiab daim ntawv thov

lambda suav daws
lambda suav daws

Lab ntawv Greek lambda (λ) yog siv hauv lambda kab lus thiab cov ntsiab lus lambda los qhia txog kev khi ntawm qhov sib txawv hauv qhov ua haujlwm.

Lambda suav tuaj yeem tsis sau lossis ntaus. Hauv thawj qhov sib txawv, cov haujlwm tsuas yog siv tau yog tias lawv muaj peev xwm tau txais cov ntaub ntawv ntawm hom no. Hom lambda calculi tsis muaj zog, tuaj yeem qhia tus nqi me me. Tab sis, ntawm qhov tod tes, lawv tso cai rau koj los ua pov thawj ntau yam.

Ib qho laj thawj muaj ntau ntau yam yog qhov xav tau ntawm cov kws tshawb fawb xav ua ntau dua yam tsis tso lub sijhawm los ua pov thawj muaj zog lambda calculus theorems.

Lub kaw lus muaj cov ntawv thov hauv ntau qhov sib txawv ntawm kev ua lej, kev xav, kev paub lus, thiab computer science. Ua ntej ntawm tag nrho cov, lambda calculus yog ib tug lej uas tau ua lub luag haujlwm tseem ceeb hauv kev txhim kho txoj kev xav ntawm cov lus programming. Nws yog cov qauv ntawm kev ua haujlwm zoo uas cov tshuab siv. Lawv kuj yog ib lub ntsiab lus kub ntawm kev tshawb fawb hauv txoj kev xav ntawm cov pawg no.

rau dummies

Lub lambda laib laib tau qhia los ntawm tus lej lej Alonzo lub tsev teev ntuj hauv xyoo 1930 ua ib feem ntawm nws txoj kev tshawb fawb rau hauv lub hauv paus ntawm kev tshawb fawb. Cov txheej txheem qub tau pom tias muaj qhov tsis sib haum xeeb hauv xyoo 1935 thaum Stephen Kleen thiab J. B. Rosser tsim Kleene-Rosser paradox.

Tom qab ntawd, xyoo 1936, Lub Koom Txoos tau sau thiab luam tawm tsuas yog ib feem uas cuam tshuam rau kev suav, tam sim no hu ua lub lambda calculus uas tsis tau sau. Xyoo 1940 nws kuj tau qhia txog qhov tsis muaj zog tab sis qhov kev xav zoo sib xws uas hu ua cov txheej txheem tseem ceeb. Hauv nws txoj haujlwm, nws piav qhia tag nrho cov kev xav hauv cov ntsiab lus yooj yim, yog li nws tuaj yeem hais tau tias Lub Koom Txoos tau luam tawm cov calculus lambda rau dummies.

Txog xyoo 1960, thaum nws qhov kev sib raug zoo rau cov lus programming tau pom meej, λ tsuas yog kev cai lij choj xwb. Ua tsaug rau cov ntawv thov ntawm Richard Montagu thiab lwm tus kws paub lus Askiv hauv kev hais lus ntawm cov lus ntuj, kev suav suav tau ua rau muaj kev txaus siab nyob rau hauv ob qho tib si lus thiab computer science.

Keeb kwm ntawm lub cim

lambda suav
lambda suav

Lambda tsis sawv cev rau ib lo lus lossis cov lus sau, nws los ntawm kev siv hauv Russell's Principal Mathematics ua raws li ob qho kev hloov pauv. Piv txwv li sau tseg: rau qhov ua haujlwm f nrog f (y)=2y + 1 yog 2ŷ + 1. Thiab ntawm no peb siv daim caret ("cat") hla y los sau cov lus sib txawv.

Lub tsev teev ntuj thawj zaug xav siv cov cim zoo sib xws, tab sis cov neeg ntaus ntawv tsis tuaj yeem tso lub cim "lub kaus mom" saum cov ntawv. Yog li ntawd, lawv tau luam nws thawj zaug li "/\y.2y+1". Hauv ntu tom ntej ntawm kev kho, cov neeg ntaus ntawv hloov "/ \" nrog tus cwj pwm zoo sib xws.

Introduction to lambda calculus

kev daws piv txwv
kev daws piv txwv

Lub kaw lus suav nrog cov lus ntawm cov lus, uas tau xaiv los ntawm qee yam kev cai lij choj, thiab cov txheej txheem hloov pauv uas tso cai rau lawv los tswj. Cov ntsiab lus kawg tuaj yeem suav tau tias yog kev sib npaug ntawm txoj kev xav lossis kev ua haujlwm txhais.

Txhua txoj haujlwm hauv lambda suav tsis qhia npe, txhais tau tias lawv tsis muaj npe. Lawv tsuas yog siv ib qho kev sib txawv ntawm qhov sib txawv, thiab currying yog siv los ua cov phiaj xwm nrog ntau qhov sib txawv.

Lambda lus

Lub laij lej syntax txhais qee cov lus hais tias siv tau thiab lwm tus tsis siv. Ib yam li cov hlua sib txawv ntawm cov cim yog siv tau C cov kev pab cuam thiab qee qhov tsis yog. Qhov tseeb qhia ntawm lambda xam yog hu ua "lambda lub sij hawm".

Peb txoj cai hauv qab no muab lub ntsiab lus inductive uas tuaj yeem ua tausiv rau kev tsim kho ntawm txhua lub tswv yim siv tau:

Tus x hloov pauv nws tus kheej yog lub sijhawm lambda siv tau:

  • if T yog LT thiab x tsis tas li, ces (lambda xt) hu ua abstraction.
  • if T as well as s is concepts, ces (TS) hu ua daim ntawv thov.

Tsis muaj dab tsi ntxiv yog lub ntsiab lus lambda. Yog li, lub tswv yim siv tau yog tias nws tuaj yeem tau txais los ntawm kev rov ua dua ntawm peb txoj cai no. Txawm li cas los xij, qee qhov kev sib tw yuav raug tshem tawm raws li lwm cov qauv.

Definition

lambda calculus piv txwv
lambda calculus piv txwv

Lambda kab lus muaj xws li:

  • v 1, v 2, …, v n, …
  • symbols of abstraction 'λ' thiab dot '.'
  • brackets ().

Lub teeb Λ tuaj yeem txhais tau inductively:

  • Yog x yog qhov sib txawv, ces x ∈ Λ;
  • x tsis tas li thiab M ∈ Λ, ces (λx. M) ∈ Λ;
  • M, N ∈ Λ, then (MN) ∈ Λ.

Kev tsim qauv

Txhawm rau khaws cov cim ntawm lambda kab lus tsis muaj kev cuam tshuam, cov lus pom zoo hauv qab no feem ntau siv:

  • Outer brackets omitted: MN es tsis txhob (MN).
  • Daim ntawv thov raug suav tias yog koom nrog: ib tus tuaj yeem sau MNP hloov ((MN) P).
  • Lub cev ntawm abstraction txuas ntxiv mus rau sab xis: λx. MN txhais tau tias λx. (MN), tsis yog (λx. M) N.
  • Qhov sib lawv liag ntawm abstractions txo: λx.λy.λz. N tuaj yeem yog λxyz. N.

Free and bound variables

Tus neeg teb xov tooj λ txuas nws qhov tsis tas mus li nyob qhov twg nws nyob hauv lub cev ntawm abstraction. Cov kev hloov pauv uas poob rau hauv cov peev txheej yog hu ua khi. Hauv kev nthuav qhia λ x. M, qhov λ x feem ntau hu ua tus khi. Raws li yog hinting tias cov variables ua ib pawg nrog ntxiv ntawm X x rau M. Tag nrho lwm cov unstable sawv daws yuav hu ua dawb.

Piv txwv li, hauv kab lus λ y. x x y, y - khi tsis ruaj khov, thiab x - dawb. Thiab nws tseem tsim nyog sau cia tias qhov sib txawv yog pawg los ntawm nws qhov "ze" abstraction. Hauv qhov piv txwv hauv qab no, cov tshuaj lambda suav suav yog sawv cev los ntawm ib qho tshwm sim ntawm x, uas cuam tshuam rau lub sijhawm thib ob:

λ x. y (λ x. z x)

Cov txheej ntawm cov hloov pauv dawb M yog qhia tias yog FV (M) thiab txhais los ntawm kev rov ua dua ntawm cov qauv ntawm cov ntsiab lus hauv qab no:

  • FV (x)={x}, qhov twg x yog qhov sib txawv.
  • FV (λx. M)=FV (M) {x}.
  • FV (MN)=FV (M) ∪ FV (N).

Ib tus qauv uas tsis muaj qhov hloov pauv dawb hu ua kaw. Kaw lambda kab lus tseem hu ua combinators thiab sib npaug rau cov ntsiab lus hauv combinatorial logic.

Abbreviation

Lub ntsiab lus ntawm lambda kab lus yog txiav txim los ntawm yuav ua li cas lawv yuav luv luv.

Muaj peb hom kev txiav:

  • α-transform: hloov pauv hloov pauv (alpha).
  • β-txo: siv cov haujlwm rau lawv cov lus sib cav (beta).
  • η-transform: npog qhov kev xav ntawm kev txuas ntxiv.

Ntawm no kuj yogPeb tab tom tham txog qhov tshwm sim qhov sib npaug: ob qho kev qhia yog β-sib npaug yog tias lawv tuaj yeem hloov tau β-hloov mus rau tib lub ntsiab lus, thiab α / η- sib npaug txhais tau hais tias zoo sib xws.

Lo lus redex, luv luv rau kev txo qis, yog hais txog cov ntsiab lus uas tuaj yeem txo los ntawm ib qho ntawm cov cai. Lambda xam rau dummies, piv txwv:

(λ x. M) N yog beta redex hauv kev qhia hloov N nrog x hauv M. Cov tshuaj tiv thaiv uas txo qis redex hu ua nws txo. Qhov txo (λ x. M) N yog M [x:=N].

Yog x tsis pub dawb hauv M, λ x. M x kuj em-REDEX nrog regulator M.

α-transformation

Alpha renames tso cai rau koj hloov cov npe ntawm kev sib pauv hloov pauv. np., x. x tau y. y. Cov ntsiab lus sib txawv tsuas yog hauv kev hloov pauv alpha tsuas yog hais tias yog α-sib npaug. Feem ntau, thaum siv lub lambda calculus, α-equivalents suav hais tias yog reciprocal.

Cov kev cai meej rau kev hloov pauv alpha tsis yog qhov tsis tseem ceeb. Ua ntej, nrog rau qhov kev paub daws teeb meem no, tsuas yog cov kev hloov pauv uas cuam tshuam nrog tib lub cev raug hloov npe. Piv txwv li, alpha transform λ x.λ x. x tuaj yeem ua rau λ y.λ x. x, tab sis qhov no yuav tsis coj mus rau λy.λx.y Lub tom kawg muaj lub ntsiab lus txawv dua li qhov qub. Qhov no yog qhov sib piv rau lub tswv yim ntawm kev sib txawv shadowing programming.

Thib ob, qhov hloov pauv alpha tsis tuaj yeem ua tau yog tias nws yuav ua rau raug ntes los ntawm lwm yam kev xav tsis tu ncua. Piv txwv li, yog tias koj hloov x nrog y hauv λ x.λ y. x, ces koj taulwj y. u, uas tsis zoo ib yam nkaus.

Hauv cov lus programming nrog qhov zoo li qub, kev hloov pauv alpha tuaj yeem siv los ua kom yooj yim lub npe daws teeb meem. Nyob rau tib lub sijhawm, saib xyuas tias lub tswv yim ntawm qhov sib txawv tsis npog qhov kev xaiv hauv thaj chaw muaj.

Nyob rau hauv De Bruyne index notation, ob nqe lus sib npaug alpha yog syntactically zoo tib yam.

Kev hloov pauv

Cov kev hloov pauv sau los ntawm E [V:=R] yog cov txheej txheem ntawm kev hloov pauv txhua qhov tshwm sim dawb ntawm qhov sib txawv V hauv cov lus qhia E nrog kev hloov pauv R. Hloov pauv hauv cov ntsiab lus ntawm λ yog txhais los ntawm lambda ntawm kev rov ua dua. calculus ntawm lub tswvyim qauv raws li hauv qab no (ceeb toom: x thiab y - tsuas yog sib txawv, thiab M thiab N - ib qho λ-expression).

x [x:=N] ≡ N

y [x:=N] ≡ y yog x ≠ y

(M 1 M 2) [x:=N] ≡ (M 1 [x:=N]) (M 2 [x:=N])

(λ x. M) [x:=N] ≡ λ x. M

(λ y. M) [x:=N] y λ y. (M [x:=N]) yog x ≠ y, muab tias y ∉ FV (N).

Rau kev hloov pauv mus rau hauv lambda abstraction, qee zaum nws yog qhov tsim nyog los hloov α-kev qhia. Piv txwv li, nws tsis yog qhov tseeb tias (λ x. Y) [y:=x] ua rau (λ x. X) vim tias qhov hloov x yuav tsum tau dawb, tab sis xaus rau kev khi. Qhov tseeb hloov hauv qhov no yog (λ z. X) mus txog α-sib npaug. Nco ntsoov tias kev hloov pauv tau txhais tshwj xeeb rau lambda.

β-reduction

Kev txo qis Beta qhia txog lub tswv yim ntawm kev siv lub luag haujlwm. Beta-reductive yog txhais nyob rau hauv cov nqe lushloov: ((X V. E) E ') yog E [V:=E'].

Piv txwv li, piv txwv li qee qhov encoding 2, 7, ×, muaj cov nram qab no β-txo: ((λ n. N × 2) 7) → 7 × 2.

Kev txo qis Beta tuaj yeem pom zoo ib yam li lub tswv yim ntawm kev txo qis hauv zos raws li kev txiav tawm ntawm cov Curry-Howard isomorphism.

η-transform

lambda ua hauj lwm piv txwv
lambda ua hauj lwm piv txwv

Qhov kev hloov dua siab tshiab no qhia txog lub tswv yim ntawm kev txuas ntxiv, uas nyob rau hauv cov ntsiab lus no yog tias ob txoj haujlwm sib npaug thaum lawv muab cov txiaj ntsig zoo ib yam rau txhua qhov kev sib cav. Qhov kev hloov pauv no pauv ntawm λ x. (F x) thiab f thaum twg x tsis zoo li dawb hauv f.

Qhov kev txiav txim no tuaj yeem suav tias yog tib yam li lub tswv yim ntawm kev ua tiav hauv zos hauv kev txiav tawm ntuj los ntawm Curry-Howard isomorphism.

Ntau cov ntawv thiab fusion

Rau qhov tsis muaj cov lej lambda, txoj cai β-txo feem ntau tsis muaj zog lossis tsis muaj zog normalizing.

Txawm li cas los xij, nws tuaj yeem pom tau tias β-txo kev sib koom ua ke thaum khiav ua ntej α-transformation (piv txwv li, ob daim ntawv ib txwm muaj peev xwm suav tau tias sib npaug yog tias α-kev hloov pauv ntawm ib qho mus rau lwm qhov).

Yog li ntawd, ob qho tib si muaj zog normalizing cov ntsiab lus thiab tsis muaj zog hloov cov ntsiab lus muaj ib daim ntawv ib txwm. Rau thawj nqe lus, ib qho kev txo qis yog lav kom ua rau muaj kev teeb tsa raug. Txawm li cas los xij rau qhov ua rau tsis muaj zog, qee cov tswv yim txo qis yuav tsis pom nws.

Txoj kev programming ntxiv

lambda hom kev daws
lambda hom kev daws

Muaj ntau ntau cov lus tsim rau lambda xam. Feem ntau ntawm lawv tau tsim los ntawm cov ntsiab lus ntawm kev siv tshuab ua lub hauv paus rau cov lus hais ntawm cov lus programming, siv tau zoo raws li kev tsim qauv qis. Txij li qee cov qauv muaj xws li lambda calculus (los yog ib yam dab tsi zoo sib xws) raws li ib tug snippet, cov tswv yim no kuj pom siv nyob rau hauv lub tswv yim tsim, tab sis tej zaum yuav pom tau tias tsis meej los yog txawv teb chaws.

Npe tseg tsis tu

Nyob rau hauv lambda suav, lub tsev qiv ntawv siv cov txheej txheem ntawm kev ua haujlwm yav dhau los, qhov twg cov ntsiab lus tsuas yog qhov tsis sib xws. Pure calculus tsis muaj lub tswv yim ntawm lub npe tsis hloov pauv txij li tag nrho cov ntsiab lus atomic lambda yog qhov sib txawv. Tab sis lawv kuj tuaj yeem ua raws li qhov kev hloov pauv raws li lub npe ntawm qhov tsis tu ncua, siv lub lambda abstraction los khi qhov tsis muaj zog hauv lub cev, thiab siv qhov kev xav ntawd rau lub ntsiab lus txhais. Yog li yog tias koj siv f los sawv cev M hauv N, koj tuaj yeem hais

(λ f. N) M.

Cov neeg sau ntawv feem ntau qhia txog lub tswv yim zoo xws li tso cai rau cov khoom sau rau hauv txoj kev nkag siab ntau dua.

f=M to N

Los ntawm kev sib txuas cov ntsiab lus no, ib tus tuaj yeem sau tau lambda calculus "program" ua xoom lossis ntau lub ntsiab lus ua haujlwm raws li ib tus tswv cuab lambda, siv cov lus txhais uas ua rau feem ntau ntawm qhov program.

Ib qho tseem ceeb ntawm qhov kev cia no yog lub npe f tsis tau txhais hauv M,txij li M yog sab nraum qhov kev sib txuas ntawm lambda abstraction f. Qhov no txhais tau hais tias tus cwj pwm recursive tsis tuaj yeem siv los ua M nrog cia. Qhov siab tshaj letrec syntax, uas tso cai rau koj los sau cov ntsiab lus rov ua haujlwm hauv cov qauv no, ntxiv rau siv cov ntsiab lus sib txuas ua ke hloov pauv.

Printed analogues

lambda daws
lambda daws

Hom no yog hom ntawv sau uas siv lub cim los sawv cev rau qhov tsis qhia npe ua haujlwm abstraction. Hauv cov ntsiab lus no, hom feem ntau yog cov khoom ntawm cov xwm txheej uas tau muab rau cov ntsiab lus lambda. Qhov tseeb nyob ntawm tus lej hauv nqe lus nug. Los ntawm qee qhov kev xav, ntaus LI tuaj yeem suav tias yog kev kho kom zoo ntawm LI yam tsis tau txais. Tab sis ntawm qhov tod tes, lawv kuj tuaj yeem suav hais tias yog ib qho tseem ceeb tshaj qhov kev xav, thiab cov ntawv lambda tsis suav nrog yog qhov tshwj xeeb uas tsuas muaj ib hom xwb.

Typed LI yog lub hauv paus ntawm cov lus programming thiab lub hauv paus ntawm cov lus ua haujlwm xws li ML thiab Haskell. Thiab, ntau indirectly, imperative style ntawm creation. Typed lambda calculi ua lub luag haujlwm tseem ceeb hauv kev txhim kho hom tshuab rau cov lus programming. Ntawm no, typability feem ntau captures cov khoom uas xav tau ntawm qhov kev pab cuam, piv txwv li, nws yuav tsis ua rau lub cim xeeb nkag mus ua txhaum cai.

Typed lambda calculi muaj feem cuam tshuam nrog lej logic thiab pov thawj txoj kev xav los ntawm Curry–Howard isomorphism, thiab tuaj yeem xav tias yog lus sab hauv ntawm cov chav kawm, piv txwv li, uasyooj yim yog cov style ntawm Cartesian kaw.

Pom zoo: