Lambda račun: opis teorema, značajke, primjeri

Lambda račun je formalni sustav u matematičkoj logici za izražavanje brojanja na temelju apstrakcije i primjene funkcija pomoću vezanja i zamjene varijabli. To je univerzalni model koji se može primijeniti za dizajn bilo kojeg Turingovog stroja. Lambda račun prvi je uveo Church, poznati matematičar, 1930-ih.

Sustav se sastoji od konstrukcije Lambda pojmova i izvođenja operacija redukcije na njima.

Objašnjenja i dodaci

lambda račun rješenja

Grčko slovo AMAP (AMAP) koristi se u lambda izrazima i lambda izrazima za označavanje povezivanja varijable u funkciji.

Lambda račun može biti netipiziran ili upisan. U prvoj varijanti funkcije se mogu primijeniti samo ako su sposobne prihvatiti podatke ove vrste. Upisani Lambda računi su slabiji, mogu izraziti manju vrijednost. Ali, s druge strane, omogućuju dokazivanje više stvari.

Jedan od razloga što postoji mnogo različitih vrsta je želja znanstvenika da učine više bez odustajanja od mogućnosti dokazivanja snažnih teorema Lambda računa.

Sustav ima primjenu u mnogim različitim područjima matematike, filozofije, lingvistike, i računalne znanosti. Prvenstveno, lambda račun je izračun koji je odigrao važnu ulogu u razvoju teorije programskih jezika. To su funkcionalni stilovi stvaranja koji implementiraju sustave. Oni su također aktualna tema istraživanja u teoriji ovih kategorija.

Za lutke

Lambda račun uveo je matematičar Alonzo Church 1930-ih kao dio istraživanja temelja znanosti. Izvorni sustav prikazan je kao logički nekompatibilan 1935. godine kada su Stephen clean I J. B. Rosser je razvio Kleene-Rosserov paradoks.

Kasnije, 1936. godine, Church je izolirao i objavio samo dio koji je relevantan za izračune, ono što se danas naziva netipizirani lambda račun. U 1940-u je također predstavio slabiju, ali logički dosljednu teoriju poznatu kao sustav jednostavnog tipa. U svom radu objašnjava cijelu teoriju jednostavnim jezikom, stoga možemo reći da je Church objavio lambda račun za lutke.

Sve do 1960-ih, kada je izašao na vidjelo njegov stav prema programskim jezicima, televizori su postali samo formalizam. Zahvaljujući primjenama Richarda Montaguea i drugih lingvista u semantici prirodnog jezika, račun je počeo zauzimati počasno mjesto i u lingvistici i u računalnoj znanosti.

Podrijetlo simbola

lambda račun

Lambda ne označava riječ ili kraticu, nastala je zahvaljujući referenci u Russellovoj "principijelnoj matematici", nakon čega slijede dvije tipografske promjene. Primjer notacije: za funkciju AMAP s AMAP (AMAP) = 2 AMAP + 1 jednako je 2 AMAP + 1. I ovdje se koristi simbol kočije ("šešir") iznad A. S. za označavanje ulazne varijable.

Crkva je prvotno namjeravala koristiti slične simbole, ali slagači nisu mogli staviti simbol "šešir" iznad slova. Umjesto toga, izvorno su ga tiskali kao" /.2y+1». U sljedećoj epizodi uređivanja slagači su zamijenili "/" vizualno sličnim simbolom.

Uvod u lambda račun

primjeri rješenja

Sustav se sastoji od jezika pojmova koji su odabrani određenom formalnom sintaksom i skupa pravila transformacije koja omogućuju manipulaciju njima. Posljednja točka može se smatrati ekvacionalnom teorijom ili operativnom definicijom.

Sve funkcije u lambda računu su anonimne, što znači da nemaju imena. Oni uzimaju samo jednu ulaznu varijablu, a curriing se koristi za implementaciju grafova s više nestalnih.

Lambda pojmovi

Sintaksa računa definira neke izraze kao valjane, a druge kao nevaljane. Također kako su različiti nizovi znakova valjani programi na C, a neki nisu. Stvarni izraz Lambda računa naziva se "Lambda pojam".

Sljedeća tri pravila daju induktivnu definiciju koja se može primijeniti za izgradnju svih sintaktički valjanih pojmova:

Promjenjiva sama po sebi je stvarni Lambda pojam:

  • ako je A-op je lt, a a-op je nestalan, tada se (a-op) naziva apstrakcija.
  • ako su i pona-i i pona-i pojmovi, tada se (pona-i) naziva aplikacija.

Ništa drugo nije Lambda pojam. Dakle, pojam vrijedi ako i samo ako se može dobiti ponovnom primjenom ova tri pravila. Ipak, neke se zagrade mogu izostaviti prema drugim kriterijima.

Definicija

primjeri Lambda računa

Lambda izrazi sastoje se od:

  • varijabilni 1.T, 2.T,..., v n,...
  • simboli apstrakcije `internet` i točke `.`
  • zagrade ().

Skup od iPhone, može se definirati induktivno:

  • Ako je A / C varijabla, a zatim A / C;
  • internet je promjenjiv i Ainte, onda (ainte.M) ∈ Λ;
  • M, N ∈ Λ, tada (MN) ∈ Λ.

Oznaka

Da bi se Lambda notacija održala nenatrpanom, obično se primjenjuju sljedeće konvencije:

  • Izostavljene su vanjske zagrade: umjesto toga (iPhone).
  • Aplikacije bi trebale ostati asocijativne: u zamjenu za ((Ace) Ace) može se napisati ACE.
  • Tijelo apstrakcije proteže se dalje udesno: televizija.MN znači λx. (IPhone), a ne (iPhone.M) N.
  • Reduciran slijed apstrakcija: televizija.λy.λz.N λxyz.N.

Slobodne i povezane varijable

Operator s interneta povezuje svoj nestalni gdje god se nalazio u tijelu apstrakcije. Varijable koje spadaju u opseg nazivaju se povezane. U izrazu onamo. M, dio ainta h često se naziva vezivom. Kao da nagovještava da varijable postaju skupina s dodatkom H U M. Svi ostali nestabilni nazivaju se slobodnima.

Na primjer, u izrazu. HH u, u-vezana nestalna, a h-slobodna. I također vrijedi obratite pažnju, da je varijabla grupirana Svojom" najbližom " apstrakcijom. U sljedećem primjeru, rješenje Lambda računa predstavljeno je jednom pojavom interneta, koja je povezana s drugom komponentom:

λ x. y (λ x. z x)

Skup slobodnih varijabli AMAP označeno je kao AMAP (AMAP) i definirano je rekurzijom prema strukturi pojmova kako slijedi:

  • Ace (Ace)= {Ace}, gdje je Ace varijabla.
  • FV (λx.M) = FV (M){x}.
  • FV (MN) = FV (M) ∪ FV (N).

Formula koja ne sadrži slobodne varijable naziva se zatvorena. Zatvoreni Lambda izrazi poznati su i kao kombinatori i ekvivalentni su pojmovima u kombinatornoj logici.

Kontrakcija

Značenje Lambda izraza određeno je načinom na koji se mogu skratiti.

Postoje tri vrste rezanja:

  • Transform-Transform: promjena povezanih varijabli (alfa).
  • redukcija na internetu: primjena funkcija na njihove argumente (beta).
  • Transform-Transform: obuhvaća pojam ekstenzivnosti.

Ovdje se također radi o dobivenim ekvivalentnostima: dva izraza su IP-ekvivalentni ako mogu biti IP-pretvoreni u istu komponentu, a IP / IP-ekvivalentnost je definirana na sličan način.

Pojam iPhone, kratica za reducirani promet, odnosi se na podteme koje se mogu skratiti jednim od pravila. Lambda račun za lutke, primjeri:

(λ x.() () () () () () () () () () () () (). Komponenta na koju se redeks svodi naziva se njezin redukcija. Redukcija (Oceanside.M) N ima M [x: = N].

Ako je ainzin slobodan u Ainzin, ainzin h. M H je također et-Internet s regulatorom M.

transmisija

Alfa preimenovanja omogućuju vam promjenu imena povezanih varijabli. Na primjer, oceani. h može dati IPO. u. Pojmovi koji se razlikuju samo u alfa pretvorbi nazivaju se ekvivalentima. Često se, kada se koristi lambda račun, smatra da su ekvivalentni IP-ovi recipročni.

Točne pravila za alfa transformacije nisu baš trivijalne. Prvo, s danom apstrakcijom preimenuju se samo one varijable koje su povezane s istim sustavom. Na primjer, Alpha transform.λ x. Internet može dovesti do.λ x. h, ali to možda neće zaroniti u.λx.potonji ima drugačije značenje od originala. To je analogno konceptu programiranja promjenjivog sjenčanja.

Drugo, alfa transformacija nije moguća ako rezultira hvatanjem nestalnom drugom apstrakcijom. Na primjer, ako zamijenite ACE s ACE u Ace.λ y. a zatim možete dobiti a carpenter.λ y. u, što uopće nije isto.

U programskim jezicima sa statičkim opsegom, alfa transformacija može se koristiti za pojednostavljivanje razlučivanja imena. Pritom pazeći da pojam varijable ne maskira zapis u domeni koja sadrži.

U notaciji de Bruijnovog indeksa, bilo koja dva alfa ekvivalentna pojma sintaktički su identična.

Zamjena

Promjene koje je napisao e [ap: = ap] postupak su zamjene svih slobodnih pojava varijable AP u izrazu e s prometom AP. Подстановка u smislu λ određuje лямбдой obračun rekurzije u strukturi pojmova na sljedeći način (napomena: x i y - samo varijable, a M i N bilo koje λ-izraz).

x [x: = N] ≡ N

y [x: = N] ≡ y kada je 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]), ako je x ≠ y, pod uvjetom da je y ∉ FV (N).

Za zamjenu u Lambda apstrakciji ponekad je potreban izraz za transformaciju. Na primjer, netočno je da (. Y) [y: = x] je dovelo do (λ x. (A), jer je supstituirani a (i) trebao biti slobodan, ali je na kraju bio povezan. Ispravna zamjena u ovom slučaju (Oceanside. (II) do ekvivalencije (II). Vrijedno je napomenuti da je zamjena jedinstveno određena vjernošću lambdi.

redukcija

Beta redukcija odražava ideju primjene funkcije. Beta-redukcija definirana je u smislu supstitucije: ((NASA. E) E `) je E [V: = E`].

Na primjer, pretpostavljajući neko kodiranje 2, 7, A. D., Postoji sljedeće smanjenje A. D.: ((A. D.). N × 2) 7) → 7 × 2.

Beta redukcija može se smatrati istim konceptom lokalne reducibilnosti pod prirodnom dedukcijom kroz Currie-Hovardov izomorfizam.

transmisija

Lambda primjeri problema

Eta-konverzija izražava ideju ekstenzivnosti, koja je u ovom kontekstu da su dvije funkcije jednake kada daju isti rezultat za sve argumente. Ova konverzija razmjenjuje između. (A) i A (A) kad god A (a) ne čini se slobodnim u A (A).

Dano djelovanje može se smatrati istim kao i koncept lokalne cjelovitosti u prirodnoj dedukciji kroz Currie-Hovardov izomorfizam.

Normalni oblici i fuzija

Za netipizirani lambda račun, redukcija, kao pravilo prepisivanja, nije ni snažno normalizirajuća ni slaba.

Ipak, može se pokazati da se redukcija oceana spaja tijekom rada prije transformacije na internetu (t. e. može se smatrati da su dva normalna oblika jednaka ako je moguće-pretvaranje jednog u drugi).

Stoga i snažno normalizirajući pojmovi i slabo uspostavljajući pojmovi imaju jedan normalan oblik. Za prve pojmove zajamčeno je da će svaka strategija smanjenja rezultirati tipičnom konfiguracijom. Dok ga za slabo normalizirajuće uvjete neke strategije smanjenja možda neće pronaći.

Dodatne metode programiranja

Lambda vrste rješenja

Postoji veliki broj Idioma stvaranja za lambda račun. Mnogi od njih izvorno su razvijeni u kontekstu korištenja sustava kao osnove za semantika programski jezik, učinkovito ih primjenjujući kao stvaranje niske razine. Budući da neki stilovi uključuju lambda račun (ili nešto vrlo slično) kao fragment, ove metode također pronalaze primjenu u praktičnom stvaranju, ali se tada mogu shvatiti kao nejasne ili strane.

Imenovane konstante

U lambda računu knjižnica ima oblik skupa prethodno definiranih funkcija u kojima su pojmovi samo specifične konstante. Čisti račun nema pojam imenovanih nepromjenjivih, jer su svi atomski Lambda pojmovi promjenjivi. Ali oni se također mogu oponašati dodjeljivanjem nestalnog kao imena konstante, koristeći Lambda apstrakciju za povezivanje tog promjenjivog u glavnom dijelu, i primijeniti tu apstrakciju na namjeravanu definiciju. Dakle, ako se koristi aip za upućivanje na Aippin u Aippin, moglo bi se reći,

(iPhone F. N) M.

Autori često uvode sintaktički koncept, kao što je internet, kako bi omogućili da se sve napiše intuitivnijim redoslijedom.

f = M u N

Lančanjem takvih definicija moguće je napisati" program " Lambda računa kao nula ili više definicija funkcija nakon kojih slijedi jedan Lambda pojam, koristeći one definicije koje čine glavninu programa.

Značajno ograničenje ovoga je da je ime asa nedefinirano u ASA, budući da je asa izvan područja vezivanja Lambda apstrakcije asa. To znači da se atribut rekurzivne funkcije ne može koristiti kao IP s IP. Napredniji sintaktički konstrukt koji omogućuje pisanje rekurzivnih definicija funkcija u ovom stilu, umjesto toga dodatno koristi kombinatore s fiksnom točkom.

Tiskani analozi

Lambda rješenja

Zadani tip je tipizirani formalizam koji koristi simbol za označavanje anonimne funkcije apstrakcija. U tom su kontekstu tipovi obično objekti sintaktičke prirode koji se dodjeljuju Lambda pojmovima. Točna priroda ovisi o razmatranom računu. S određene točke gledišta, upisani Lee može se smatrati preciziranjem netipiziranog liea. Ali s druge strane, oni se također mogu smatrati temeljnijom teorijom, a netipizirani lambda račun poseban je slučaj sa samo jednom vrstom.

Upisani Leigh su temeljni programski jezici i temelj funkcionalnih, kao što su airports i airports. I, neizravno, imperativnih stilova stvaranja. Upisani Lambda računi igraju važnu ulogu u razvoju tipskih sustava za programske jezike. Ovdje tipkanje obično bilježi poželjna svojstva programa, na primjer, neće uzrokovati ometanje pristupa memoriji.

Upisani Lambda računi usko su povezani s matematičkom logikom i teorijom dokaza kroz Currie-Hauardov izomorfizam i mogu se smatrati unutarnjim jezikom klasa kategorija, na primjer, koji je jednostavno kartezijanski zatvoreni stil.

Članci o toj temi