Zoznam všetkých cieľov
Prednášky
Cvičenia
- Syntaktická analýza termov
- Overenie syntaktickej korektnosti termov
- Vlastnosti termov
- Vyhodnotenie termov
- Syntaktická analýza termov
- Voľné a viazané premenné
- Vyhodnotenie termov $\beta,\alpha,\eta-redukcia$
- Churchove kódovanie
- Definovať a vyhodnotiť rekurzívne funkcie v $\lambda$ -kalkule pomocou Churchovho kódovania a Curryho kombinátora $Y$ .
- Typovaný NBL
- Jednoducho typovaný $\lambda$ -kalkul
- Odvodené tvary termov - väzba let
- Binárny súčinový typ - dvojica
- Súčinový typ $n$ -typov - $n$-tica
- Súčinový typ $n$ -typov s pomenovanými návesťami - Záznam
- Binárny súčtový typ
- Typ variant
- Enumeračný typ
- Typ voliteľné hodnoty (Options)
- Rekurzívne funkcie v typovanom $\lambda$ -kalkule
- Zoznamy
- Rekurzívny typ: Prirodzené čísla
- Rekurzívny typ: Zoznam
- Rekurzívny typ: Binárny vyhľadávací strom
- Odvodenie typu
- Let polymorfizmus
- Systém F
Interaktívny dokazovací systém Rocq Prover
- spustiť Rocq, pracovať v RocqIDE a rozlíšiť term Galliny, príkaz Vernacular a taktiku;
- pomocou
Definition , fun , Check , Compute a Print definovať a skúmať funkcie a ich typy;
- definovať induktívny typ, spracovať ho pomocou
match , napísať jednoduchý Fixpoint a vysvetliť úplnosť vzorov a kontrolu terminácie.
- sledovať dôkazový stav a zostaviť jednoduché dôkazy pomocou základných taktík.
- Indukcia nad prirodzenými číslami a dôkazové stavy
- Taktiky
exact , apply , rewrite , assert a replace
- Formálny a neformálny dôkaz; rozdiel medzi
bool a Prop
- Funkcie vyššieho rádu:
filter , map a fold_right
- Samostatné úlohy k dôkazom a funkciám vyššieho rádu
- Údajové štruktúry: dvojica a zoznam
- Logické uvažovanie o dvojiciach a zoznamoch
- Typ
option pre čiastočne definované funkcie
- Polymorfné verzie dvojice, zoznamu a typu
option
- Používať taktiky na prácu s rovnosťami a spormi.
- Upravovať kontext a pripravovať indukčné dôkazy.
- Kombinovať taktiky pri riešení viacerých podcieľov.
- Rozlišovať booleovské výpočty a tvrdenia v
Prop .
- Dokazovať tvrdenia s logickými spojkami a kvantifikátormi.
- Rozlišovať konštruktívne a klasické dokazovanie.
- Definovať predikáty pomocou induktívnych pravidiel.
- Analyzovať dôkazy pomocou
destruct a inversion .
- Dokazovať vlastnosti relácií a ich uzáverov.
- Formalizovať syntax, sémantiku a typy jazyka NBL.
- Odvodzovať kroky vyhodnotenia a typové úsudky.
- Dokazovať progres a zachovanie typu.
- Reprezentovať úplné a čiastočné zobrazenia pomocou funkcií.
- Dokazovať vlastnosti vyhľadávania a aktualizácie.
- Používať reflexiu a funkčnú extenzionalitu.
- Definovať syntax jednoducho typovaného lambda kalkulu.
- Formalizovať substitúciu a sémantiku malých krokov.
- Konštruovať typové odvodenia s typovým kontextom.
Ďalšie informácie