Základy λ- kalkulu doc. Dr. Ing. Miroslav Beneš  katedra informatiky, A-1007  59 732 4213.

Slides:



Advertisements
Podobné prezentace
DOTAZOVACÍ JAZYKY slajdy přednášce DBI006
Advertisements

Deduktivní soustava výrokové logiky
Vstup a výstup Ing. Lumír Návrat  katedra informatiky, A-1018 
Vstup a výstup doc. Dr. Ing. Miroslav Beneš  katedra informatiky, A-1007 
Programování funkcí v Excelu
Uživatelem definované typy doc. Dr. Ing. Miroslav Beneš  katedra informatiky, A-1007 
Seznamy v jazyce Haskell doc. Dr. Ing. Miroslav Beneš  katedra informatiky, A-1007 
Predikátová logika 1. řádu
12.přednáška integrační metody per partes substituce
Predikátová logika1 Predikátová logika 1. řádu Teď „logika naostro“ !
Programovací jazyk Prolog
Algebra.
JUI - 1. přednáška Funkcionální programování Úvod do jazyka Lisp RNDr. Jiří Dvořák, CSc.
Ústav technologie, mechanizace a řízení staveb
2IT – PVY – objektové DBS Bc. Jiří Šilhán
Úpravy algebraických výrazů
Základní číselné množiny
Základy práce na PC Ing. Jan Roubíček.
Základní zásady pro výpočty v buňce 1)Každý vzorec musí začínat znakem „rovná se“ =. 2)Pokud znak nenapíšeme, program nic nespočítá. 3)Zápis vzorce nesmí.
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
Formální axiomatické teorie Teorie relací a funkcí.
Sémantická analýza Jakub Yaghob
Syntaxí řízený překlad
Gramatiky a jazyky Přednáška z předmětu Řízení v komplexních systémech
JUI - 2. přednáška Základní funkce, definice funkcí RNDr. Jiří Dvořák, CSc.
Predikátová logika.
Predikátová logika.
Počítače a programování 1
Abstraktní datové typy doc. Dr. Ing. Miroslav Beneš  katedra informatiky, A-1007 
5. Procedury a funkce Procedura je samostatně odladěný algoritmus, v programu může být volána vícekrát. Dvojí terminologie - rozlišujeme procedury a funkce.
TENTO PROJEKT JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM
Výroková logika.
Informatika I 1. přednáška
JavaScript Funkce.
C – cyklus while Mgr. Lenka Švancarová.
NEÚPLNÁ PODMÍNKA V JAVĚ. VÝVOJOVÝ DIAGRAM +- Podmínka Příkaz_1.
Programovací jazyk Haskell doc. Dr. Ing. Miroslav Beneš  katedra informatiky, A-1007 
Formalní axiomatické teorie
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
Výroková logika.
XQuery Dotazovací jazyk XML Daniel Privalenkov. O čem bude prezentace Nutnost dotazovacího jazyku v XML Rychlý přehled XQuery Několik příkladů.
Marie Duží vyučující: Marek Menšík Logika: systémový rámec rozvoje oboru v ČR a koncepce logických propedeutik pro mezioborová studia.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B3 Autor Ing. Jiří Kalousek Období vytvoření listopad.
Seznamy v jazyce Haskell Ing. Lumír Návrat  katedra informatiky, D-403 
PŘÍKAZ CYKLU S PODMÍNKOU NA ZAČÁTKU
Predikátová logika1 Predikátová logika 1. řádu Teď „logika naostro“ !
P114_51 P114 Konstrukce užití - kalkulu 5. P114_52 Témata TIL s jednoduchou teorií typů atomické konstrukce konstrukce aplikace konstrukce abstrakce konstrukce.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
IB111 Programování a algoritmizace
Deduktivní odvozování v TIL
TENTO PROJEKT JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ REPUBLIKY Vypracoval: Mgr. Lukáš Bičík Elipsa.
Algoritmizace a programování Cykly – While 1. Test Příští hodina test na větvení Konstrukce IF..ELSE případně IF..ELIF..ELSE.
TENTO PROJEKT JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ REPUBLIKY Vypracoval: Mgr. Lukáš Bičík Goniometrické rovnice.
TENTO PROJEKT JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ REPUBLIKY Vypracoval: Mgr. Lukáš Bičík Logaritmické rovnice.
Hyperbola Vypracoval: Mgr. Lukáš Bičík
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Výukový materiál zpracován v rámci projektu
Znázornění dopravní sítě grafem a kostra grafu Předmět: Teorie dopravy - cvičení Ing. František Lachnit, Ph.D.
Soustava dvou lineárních rovnic o dvou neznámých I.
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Úloha syntézy čtyřčlenného rovinného mechanismu
Predikátová logika (1. řádu).
Marie Duží TIL ( ) Marie Duží
MU002 – Informační technologie Základy algoritmizace 5/13
Číslo projektu: CZ.1.07/1.4.00/ Název DUM:
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Predikátová logika.
Definiční obory. Množiny řešení. Intervaly.
Vyhodnocování aritmetického výrazu (1)
Transkript prezentace:

Základy λ- kalkulu doc. Dr. Ing. Miroslav Beneš  katedra informatiky, A-1007 

2ÚDPJ - Základy λ-kalkulu λ-kalkul 1930 Alonzo Church netypovaný λ-kalkul netypovaný λ-kalkul matematická teorie funkcí matematická teorie funkcí Základ všech funkcionálních jazyků Některé konstrukce i v imperativních jazycích (např. Python)

3ÚDPJ - Základy λ-kalkulu Syntaxe λ-kalkulu Proměnné x, y, z, f, g, … x, y, z, f, g, … λ-abstrakce (λx. e) (λx. e)Aplikace (e 1 e 2 ) (e 1 e 2 ) Konvence pro závorky λx. λy. e 1 e 2 = (λx. (λy. e 1 e 2 )) λx. λy. e 1 e 2 = (λx. (λy. e 1 e 2 )) e 1 e 2 e 3 = ((e 1 e 2 ) e 3 ) e 1 e 2 e 3 = ((e 1 e 2 ) e 3 )

4ÚDPJ - Základy λ-kalkulu Proměnná označuje libovolnou hodnotu v daném kontextu označuje vždy tutéž hodnotu (neexistuje možnost přiřazení) vázaná a volná proměnná λ x. f x vázaná volná

5ÚDPJ - Základy λ-kalkulu λ-abstrakce λ x. e funkce s parametrem x a tělem e funkce s parametrem x a tělem e λ x y. e funkce s parametry x, y a tělem e funkce s parametry x, y a tělem e ekvivalentní zápisu λ x. (λ y. e) ekvivalentní zápisu λ x. (λ y. e) λ e. e (λ f x (f x x)) (λ f x (f x x))

6ÚDPJ - Základy λ-kalkulu Aplikace (e 1 e 2 ) aplikace funkce e 1 na argument e 2 aplikace funkce e 1 na argument e 2 (f x y) aplikace funkce (f x) na argument y aplikace funkce (f x) na argument y aplikace funkce f na argumenty x a y aplikace funkce f na argumenty x a y

7ÚDPJ - Základy λ-kalkulu Substituce e 1 [e 2 /x] nahrazení všech volných výskytů proměnné x ve výrazu e 1 za výraz e 2 nahrazení všech volných výskytů proměnné x ve výrazu e 1 za výraz e 2 substituce musí být platná (volná proměnná ve výrazu e 2 se nesmí stát vázanou) substituce musí být platná (volná proměnná ve výrazu e 2 se nesmí stát vázanou) (λ x y. f x y) [g z / f] = λ x y. (g z) x y (λ x y. f x y) [g z / x] = λ x y. f x y (λ x y. f x y) [g y / f] = není platná subst.

8ÚDPJ - Základy λ-kalkulu Vyhodnocování λ-výrazů α-redukce λ x. e ↔ λ y. e[ y / x ] λ x. e ↔ λ y. e[ y / x ] přejmenování vázané proměnné přejmenování vázané proměnné substituce musí být platná substituce musí být platná β-redukce (λ x. e 1 ) e 2 ↔ e 1 [ e 2 / x ] (λ x. e 1 ) e 2 ↔ e 1 [ e 2 / x ] “volání funkce“ – nahrazení parametru hodnotou argumentu “volání funkce“ – nahrazení parametru hodnotou argumentu substituce musí být platná substituce musí být platná

9ÚDPJ - Základy λ-kalkulu Vyhodnocování λ-výrazů η-redukce λ x. f x ↔ f λ x. f x ↔ f odstranění abstrakce odstranění abstrakce proměnná x nesmí být volná v f proměnná x nesmí být volná v f Funkce jsou ekvivalentní, pokud pro všechny hodnoty parametrů dávají tentýž výsledek. Funkce jsou ekvivalentní, pokud pro všechny hodnoty parametrů dávají tentýž výsledek. umožňuje definovat řezy funkcí umožňuje definovat řezy funkcí (+1) = λ x. (x + 1) (+1) = λ x. (x + 1)

10ÚDPJ - Základy λ-kalkulu Příklady (λ f x. f x x) (λ x y. p y x) = β λ x. (λ x y. p y x) x x = α λ z. (λ x y. p y x) z z = β λ z. (λ y. p y z) z = β λ z. p z z (λ f x. f x x) (λ x y. p y x) = η (λ f x. f x x) (λ y. p y) = η (λ f x. f x x) p = β λ x. p x x

11ÚDPJ - Základy λ-kalkulu Normalizační teorémy redex --- reducible expression výraz, který lze dále redukovat; α-redex, β-redex výraz, který lze dále redukovat; α-redex, β-redex normální forma výrazu výraz neobsahuje žádný β-redex výraz neobsahuje žádný β-redex Church-Rosserovy teorémy Pokud e1 ↔ e2, pak existuje výraz e takový, že Pokud e1 ↔ e2, pak existuje výraz e takový, že e1 → e a e2 → e e1 → e a e2 → e Pokud e1 → e2 a e2 je v normální formě, pak existuje redukční posloupnost z e1 do e2 (normální redukční posloupnost) Pokud e1 → e2 a e2 je v normální formě, pak existuje redukční posloupnost z e1 do e2 (normální redukční posloupnost) Pokud existuje normální forma, lze k ní dojít normální redukční posloupností (leftmost outermost redex)