俄勒冈州编程语言暑期学校

类型、逻辑、语义和验证

俄勒冈州尤金大学

2015年6月15日至27日

赞助商:

2015年6月15日至27日

类型、逻辑、语义和验证

准备

在OPLSS之前,学生应在笔记本电脑上准备好以下软件

技术讲座

该节目由80分钟的国际演讲组成公认的编程语言和形式推理研究领域的领导者。

基本证明理论弗兰克·普芬宁

  1. 直觉主义逻辑。自然演绎,引入和排除的和谐,与经典逻辑的关系。
  2. 作为程序进行校对。证明词赋值,Curry-Howard同构,主题缩减,类型检查。
  3. 证明搜索和序列演算。身份与消减,左右规则,消减消除。
  4. 线性逻辑。重温了序列演算,将割约简作为并发计算,线性逻辑的连接词。
    • 极化和聚焦。弱聚焦、反转、逻辑编程。
    • 或线性逻辑中的并发编程。

第1讲视频1|视频2|视频3|视频4|笔记
第二讲视频1|视频2|视频3|视频4|笔记
第三讲视频1|视频2|视频3|视频4|注释(第L8.1-5页)
第四讲视频1|视频2|视频3|视频4|注释(第L8.5-13页)|学生笔记
第五讲视频1|视频2|视频3|视频4|注释1|注释2|注释3|学生笔记1|学生笔记2

依赖型理论导论罗伯·哈波

这一系列讲座将向观众介绍直觉主义类型理论的基本原理。从Martin-Löf的类型理论开始,将考虑几个变化,以外延和内涵的形式,并延伸到更高类型的理论。这些讲座补充了弗兰克·普芬宁(Frank Pfenning)和埃德·莫尔豪斯(Ed Morehouse)的讲座,谁将分别讲授证明理论和范畴理论(后者强调范畴逻辑)。这些讲座将为应用其他讲师(包括Adam Chlipala)编写的Coq定理证明器。它们也将作为罗伯特·康斯特布尔演讲的参考点计算类型理论,NuPRL证明开发系统的语言,与Martin-Löf的类型理论不同的是,直接基于计算基础。

第1讲视频1|视频2|视频3|视频4
第二讲视频1|视频2|视频3|视频4|视频5
第三讲视频1|视频2|视频3|视频4|视频5
第四讲视频1|视频2|视频3|视频4|视频5|学生笔记
第五讲视频1|视频2|视频3|视频4|视频5|视频6|学生笔记

基本范畴理论:证明理论的语义埃德·莫尔豪斯

本系列讲座将通过中提出的证明理论的范畴语义透镜平行讲座,“基本证明理论”。

涵盖的主题包括普遍结构、二元性、,功能性、自然性、附加性与逻辑的解释分类理论。在此过程中,我们将发现其功能需要为直觉主义一阶证明理论。

除了向学生介绍基本的分类工具和技术,这些讲座的目的是提供一种替代方案,代数,证明理论的观点。在整个过程中,我们将强调行为(与结构)表征的好处,以及图解推理。

课堂讲稿

第1讲视频1|视频2|视频3|视频4
第二讲视频1|视频2|视频3|视频4
第三讲视频1|视频2|视频3|视频4|视频5
第四讲视频1|视频2|视频3|视频4|学生笔记
第五讲
视频1|视频2|视频3|视频4|视频5

直觉主义类型理论中的归纳和归纳推理定义彼得·戴比杰

在罗伯特·哈珀演讲的基础上,我们将进一步探讨马丁·洛夫的直觉主义类型理论。这是归纳和归纳递归定义的理论基于具有依赖类型的lambda演算。该理论的“集合”是归纳定义的数据类型与普通函数编程语言中可用的数据类型类似,除了这些元素都是基础良好的结构之外。我们还将展示直觉类型理论中的数据类型可以用依赖类型的编程语言Agda实现。虽然Agda是基于直觉主义类型理论,它包含许多扩展,使其更实用作为普通函数式编程语言的真正替代品。

工具书类

第1讲视频1|视频2|视频3|视频4|练习|Web资源|低频|I类型|MLTT公司
第二讲视频1|视频2|视频3|视频4
第三讲视频1|视频2|视频3|视频4
第四讲视频1|视频2|视频3|视频4
第五讲视频1|视频2|视频3|视频4

Coq证明助手及其在编程语言语义中的应用亚当·克利帕拉

建造机器检查的Coq软件简介数学证明,建立在所介绍的类型理论基础之上在罗伯特·哈珀的演讲中,并补充了彼得·迪布杰的演讲基于Agda,一种建立在类似基础上的编程语言。我们将首先,通过归纳和等式推理;然后继续进行有关归纳定义的关系,专门应用于建模程序作为国家过渡系统。这些成分使我们有理由关于操作语义,当今大多数方法的核心关于程序行为的严格证明。讲座系列以两种最有影响力的自动证明方法示例程序安全:功能程序和Hoare的声音类型系统命令式程序的逻辑。在实践环节中,学生将鼓励将这些形式应用于具体项目,并扩展形式来处理新的编程语言特性。

第1讲视频1|视频2|视频3|视频4
第二讲视频1|视频2|视频3|视频4
第三讲视频1|视频2|视频3|视频4
第四讲视频1|视频2|视频3|视频4
第五讲视频1|视频2|视频3|视频4
第六讲视频1|视频2|视频3|视频4

逻辑关系阿迈勒

这些讲座将向学生介绍逻辑关系的证明方法。逻辑关系被用来证明各种性质,包括规范化、类型安全、程序等效性,无干扰(在安全类型语言中)和编译器正确性。我们将从如何证明规范化和类型安全开始用于简单类型lambda演算(STLC)。然后,我们将向STLC添加递归类型,并开发一个step-indexed逻辑关系,使用step-indexing确保逻辑这种关系仍然根深蒂固。我们将涵盖多态型和存在型,并开发参数相关概念与理性的逻辑关系和代表独立性。讲座还将讨论如何建立逻辑关系对应于语境对等。本系列讲座将以简要回顾过去和未来的应用作为结束逻辑关系,特别是在组合编译器正确性领域。

第1讲视频1|视频2|视频3|视频4|视频5
第二讲视频1|视频2|视频3|视频4|视频5|学生笔记1|学生笔记2|学生笔记3|学生笔记4
第三讲视频1|视频2|视频3|视频4
第四讲视频1|视频2|视频3|视频4
第五讲视频1|视频2|视频3|视频4|视频5|幻灯片

马克·比克福德

第1讲视频1|视频2|视频3|视频4|视频5|视频6
第二讲视频1|视频2|视频3|视频4|视频5

罗伯特·康斯特布尔

第1讲视频1|视频2|视频3
第二讲视频1|视频2|视频3|视频4|视频5|笔记

Youtube上视频的低分辨率拷贝

©俄勒冈州大学计算机与信息科学系,1202俄勒冈州尤金大学,邮编:97403-1202