依赖类型的函数编程语言(如Agda)能够表达非常精确的数据类型。当这些数据本身对类型进行编码时,我们获得了一种强大的机制,可以在仔细限定的Universe上抽象泛型操作。本课程将从Agda中的快速依赖型编程入门开始,然后探索宇宙构建的技术和后果。最重要的是“模式函子”,它决定归纳和共归纳数据类型的节点结构。我们将考虑这些函子的语法表示(允许像符号微分一样有用的操作),并将它们与更统一的抽象概念“容器”联系起来。我们将把双寿命容器铅暴露为描述效应系统的“交互结构”。之后,我们开始研究宇宙上的函子,获得了归纳递归定义的强大功能,并使用该功能构建依赖类型的宇宙。
本课程获得复杂系统工程主题的财务支持SICSA公司苏格兰信息与计算机科学联盟。
前提条件:
本课程假设您熟悉类型化函数编程,但不需要具有独立类型编程或Agda的经验。
然而,我们确实建议提前接触Agda。早期在爱丁堡举办的Agda入门课程的材料可在以下网址找到:
位置:
实验室会议将在4.12,阿普尔顿大厦
讲座将在房间里进行2.33,信息学论坛
课程材料:
所有课程材料都将在网上提供。
克隆初始存储库后,不要忘记提取最新更改:
git拉动原点
注册和组织:
请让我们知道您要来,以便我们做好相应的准备:
- Danel Ahman<D.Ahman{ät}ed.ac.uk>
- 萨姆·林德利
邮件列表:
欢迎在agda-Course-13{ät}-inf.ed.ac.uk邮件列表中发布课程公告、讨论和提问。非注册用户:欢迎您也加入,请给Danel或Sam发电子邮件加入,并注明您不是机器。
时间表:
14:00-15:00:实验课(从11月14日开始每周进行实验)
15:00-15:30:休息
15:30-16:30:讲座
16:30-17:00:休息
17:00-18:00:讲座
18:00-…:发布…
授课计划:
-
2013年11月14日:通过矢量介绍
2013年11月28日:简单型λ-微积分的元编程
2013年12月12日:容器和W型
2014年1月16日:索引的容器
2014年1月30日:归纳递归
2014年2月20日:观察平等
2014年4月3日:类型理论中的类型理论