Agda实施者会议三十六

第36届Agda实施者会议将于2023年5月10日至2023年5月16日在荷兰代尔夫特举行。它将在托管社交中心位于代尔夫特市中心,火车站正前方。我们可以在网上参加上午的会谈,但会议的其余部分只能在现场进行。

注册截止日期 :2023年4月12日(软截止日期)
目标三十六 :2023年5月10日至2023年05月16日
目录

程序



规划


5月10日星期三(会议室1+2)
09:30欢迎
10:15咖啡休息时间
10:30谈话:纪尧姆·阿拉斯(Guillaume Allais),串行数据上的无缝、正确和通用编程
11:15咖啡休息时间
11:30讨论
12:30午餐
14:00代码Sprint
16:00咖啡休息时间
16:15总结会议
5月11日星期四(会议室1+2)
09:30谈话:Sára Juho ová,关于Agda2HS的可用性
10:15咖啡休息时间
10:30(伊瓦尔的谈话移至周五)
11:15咖啡休息时间
11:3012:00谈话:Andre Knispel,语法元编程
13:00午餐
14:00代码Sprint
16:00咖啡休息时间
16:15总结会议
5月12日星期五(会议室1+2)
09:30谈话:Ivar de Bruin,改进Agda的模块系统
10:15咖啡休息时间
10:30谈话:昆廷·卡努,赫希猜想的正式反驳
11:15咖啡休息时间
11:30讨论
12:30午餐
14:00代码Sprint
16:00咖啡休息时间
16:15总结会议
5月13日星期六(会议室1+2)
10:00谈话:Jesper Cockx
11:00谈话:詹姆斯·查普曼,私人账本
12:00午餐
14:00快乐黑客
5月14日星期日
整天前往Scheveningen+Meijendel自然保护区
5月15日星期一(会议室1+2)
09:30谈话:Orestis Melkonian,分类账程序逻辑
10:15咖啡休息时间
10:30谈话:Marcin Jan Turek-Grzybowski,CubeViz2:开发和可视化立方Agda证明的交互式工具
11:15咖啡休息时间
11:30讨论
12:30午餐
14:00代码Sprint
16:00咖啡休息时间
16:15总结会议
5月16日,星期二(会议室1+2)
09:30谈话:Wouter Swierstra,
10:15咖啡休息时间
10:30谈话:Joey Eremondi,关于逐步相关类型编程语言的设计 取消
11:15咖啡休息时间
11:30讨论
12:30午餐
14:00代码Sprint
16:00咖啡休息时间
16:15总结会议

会谈


正确构造到组合子的转换(Functional Pearl)
沃特·斯威斯特拉
 
分类帐的程序逻辑
奥雷斯蒂斯·梅尔科尼安
如今,分布式账本以比特币、以太坊和卡达诺等加密货币的形式管理大量货币资金。为了确保此类分类账的安全,添加新条目的操作必须在密码上可靠,但如何有效地推理这种不断增长的线性数据结构还不太清楚。本文将分布式账本视为计算机程序,在执行时在各方之间转移资金。因此,熟悉的程序逻辑,如霍尔逻辑和分离逻辑,可以在这种新颖的设置中定义。借鉴并发分离逻辑的思想,这使得模块化推理原则能够适用于任何账本的任意片段。本文中的所有结果都在Agda证明助手中进行了机械化处理公开可用.
序列化数据上的无缝、正确和通用编程
纪尧姆·阿拉斯
在类型化函数式语言中,只有先将数据反序列化到内存中的树中,然后将其表示为节点作为结构和子rm作为指针的图形,才能以类型安全的方式操作数据。我们演示了如何使用Idris 2中实现的QTT来定义一小部分序列化数据类型,并提供通用程序,允许用户处理缓冲区中连续存储的值。我们的方法允许实现者以正确的构造方式证明处理存储在缓冲区中的数据的IO函数的完整功能正确性。
硕士论文:改进Agda的模块系统
伊瓦尔·德布鲁因
在过去的几个月里,我研究了将Agda转换为结构化模块系统以提高其性能的可能性。为此,我为Agda的简化版本创建了许多不同版本的模块系统,并分析了它们在各种场景中的性能。在这次演讲中,我想展示我发现了什么,并解释我认为在执行任何重构之前仍需要做什么。
硕士论文:关于Agda2HS的可用性
萨拉·尤霍·奥娃
(周三或周四)
对于我的硕士论文,我一直致力于改进Agda2HS,并研究是否以及如何使其更可用。我想用这次演讲来讨论我在用户研究中的改变和发现。
博士论文:一种渐进依赖型编程语言的设计
乔伊·埃雷蒙迪
简短摘要:我描述了一种渐进依赖类型的设计,当缺少类型、证明或程序的部分时,可以通过该系统运行依赖类型的程序。这有双重目的。首先,它减少了依赖类型的输入障碍,使代码迁移到使用依赖类型语言更容易,并且允许安全使用索引类型,即使缺少类型或证明信息。其次,它为现代语言中已经存在的类型化漏洞提供了动态语义,因此当漏洞缺失时,程序可以安全运行,为程序员提供了关于哪些术语应该填补漏洞的有用信息。在演讲中,我提出了一个关于渐进依赖类型编程的愿景,以及由此产生的技术挑战和一些挑战的解决方案。
基于证明相关分离代数的作用域API
杰斯珀考克斯
简短摘要:依赖类型语言(包括Agda)的大多数实现和形式化使用deBruijn索引或其变体来表示变量。然而,这需要对许多操作的索引进行低级修改,因此很容易导致错误。在本次演讲中,我将介绍一个用于处理作用域和绑定器的实用API,该API基于Arjen Rouvoet的*证明相关分离代数*,三元关系决定了一个作用域中的名称如何分布在另两个作用域上。该项目的目标是创建一种更安全、更方便的方法,为Agda-Core和agda2hs等项目定义范围良好的语法。
Hirsch猜想的形式化证明
昆廷·卡努
本演示的目的是描述我们对Santos等人关于多面体(有界凸多面体)直径的所谓Hirsch猜想反例的形式验证工作。与纸笔证明相比,我们的方法完全是计算性的:我们在Coq中实现了一个算法,并证明了该算法的正确性,该算法在证明助手内显式计算多边形的顶点-边图及其直径。此算法只需要基本计算,例如矩阵乘法或集合操作,这些计算是使用有效的数据类型作为持久数组来实现的。我们强调用于执行算法的Coq约简机制,以及用于证明其正确性的数据细化技术。
CubeViz2:开发和可视化立方Agda证明的交互式工具
马金·扬·图雷克·格奇博夫斯基
立方体Viz2是一种工具,旨在支持开发过程并提高立方体Agda代码的可读性。建立在Elm的早期工作,当前版本在Haskell中实现,并提供与Emacs和Agda编译器的集成。在本次演讲中,我将简要概述该实现,分享一些示例,并邀请Agda社区提供反馈。该项目已进入发布的早期阶段,可以通过相对简单的设置来使用。此外,我们还将介绍对Agda编译器进行的一些初始修改,以实现与CubeViz2的集成,并就如何将这些更改与正在进行的Agda开发结合起来寻求建议。作为奖励,将在演讲中加入互动活动,力求为观众提供愉快且信息丰富的体验
合成元编程
安德烈·克尼斯佩尔
在这次演讲中,我将介绍我的解决方案,以解决证明助手有时不够灵活,而且总是非常大的问题:语法元编程。虽然元编程支持是用于策略开发的证明助手的一个常见功能(最显著的是在Coq和Lean 3中),但如果给予语法足够的权限,它也可以用于实现表面语言的基本每个功能。例如,模块系统、统一/推理、数据类型定义以及术语和文字的符号。实现这种元编程风格的参考系统是用Agda编写的,大约为3k LOC。上面所有的例子都是作为元程序实现的。

讨论提案


有话要说
阿格达维基
Lorem ipsum dolor sit amet,consectetur Lorem ip sum dollor sit amet,consectedur Lorem icsum dodor sit amat,concetteur Lorem ipsum悲哀坐amet,oncetetur洛雷姆ipsum悲伤坐amet
有话要说
阿格达维基

代码Sprint提案


agda2列车
Orestis Melkonian。。。
我一直在制作一个简单的Agda后端的原型,用于生成用于机器学习目的的训练数据:https://github.com/omelkonian/agda2train网站它“编译”Agda程序以训练数据,方法是遍历(类型检查)内部语法,并为每个可能的漏洞输出当前上下文、其类型和填充它的术语。我想讨论一下将此工具用于其他非ML目的的机会(例如实现type-on-hover),讨论后端设计/实现问题(例如,使`checkInternal`更健壮,还原类似项目的优化等),并研究如何在使用方面(即在Emacs上,在后端之外)获得相同的信息。这可以作为代码冲刺和讨论,取决于其他人的兴趣。
倍数
詹姆斯·查普曼。。。
agda2rust后端;扩展schmitty以支持模型检查;将agda2hs扩展到gadts;扩展agda2hs以支持将命题编译为快速检查属性;支持零知识电路/证明的开发
二进制分布
安德烈亚斯·阿贝尔
各种较小的想法:使预先构建的二进制文件更容易搜索错误;改进agda分布,使二进制分布可用;使标准库更易于安装;为Agda提供完善的CI经验
Agda库
费利克斯·切鲁比尼
为自然、列表、功能数据结构和反射创建一个标准库,因为每个人似乎都在重新设计它。
https://github.com/agda/agda-base网站
制定一些策略
安德烈·克尼斯佩尔
我们有幺半群和半环(?)解算器,但我们没有任何处理累积性的工具
消灭公关中的漏洞
马金·扬·图雷克·格奇博夫斯基
有一个预先存在的PR(链接?)存在与电子邮件相关的错误,需要帮助修复
Agda的可视化工具
马金·扬·图雷克·格奇博夫斯基
有一些预先存在的工作(链接?)是基于Agda的一个分支。将其迁移到master或移动到反射API
ChatGPT实验
马金·扬·图雷克·格奇博夫斯基
有一个类似于奥雷斯蒂斯的小实验。
迁移Idris与Agda对话中使用的代码
纪尧姆·阿拉斯
迁移代码以进行一些基准测试。
完成不透明实现
Amélia Liao和Jesper Cockx
 
极性注释和agda2hs错误压缩
卢卡斯·埃斯科特
 
对Agda的印象
佩奥·博雷尔
https://github.com/agda/agda/issues/3883
实现Ivar的论文
博丹·列斯尼科夫
 
修复出现的问题-检查性能问题
杰斯珀考克斯
 
减少meta的实例化
杰斯珀考克斯
现在有一个选项可以在序列化期间避免尽可能多的实例化。我们可以试着避免像现在在类型检查时那样进行大量实例化吗?已经有一些工作了https://github.com/agda/agda/issues/3094
可编程统一
詹姆斯·麦金纳
实现可编程的统一,其中用户知道某些东西是内射的,但转换检查器没有意识到。内射杂注只影响模式匹配。失落的统一可以做到这一点,但人们需要更精细的东西。https://github.com/agda/agda/issues/6546
是否可行
阿格达维基
Lorem ipsum dolor sit amet,consectetur Lorem ip sum dollor sit amet,consectedur Lorem icsum dodor sit amat,concetteur Lorem ipsum悲哀坐amet,oncetetur洛雷姆ipsum悲伤坐amet

组织


会议将由Jesper Cockx主持。会议将从5月10日星期三至5月16日星期二持续7天,包括5月14日星期日的一个游览日。

会议地点


Agda实施者会议第三十六次将于社交中心位于代尔夫特市中心火车站前。

  • 地址:代尔夫特市Van Leeuwenhoekpark 1 2611 DW
  • 房间:会议室1+2

旅行


前往代尔夫特

代尔夫特市位于海牙(Den Haag)和鹿特丹之间。距离代尔夫特最近的机场是阿姆斯特丹史基浦机场(AMS)和鹿特丹海牙机场(RTM)。

  • 史基浦机场有火车直达代尔夫特(通常每15分钟直达一次)。对于某些连接,您需要在莱顿换车。
  • 鹿特丹-海牙机场有巴士直达鹿特丹。鹿特丹有到代尔夫特的火车连接(通常每10分钟或更短时间有一条直达线路)。

您还可以从以下地点乘坐高速列车到达阿姆斯特丹和鹿特丹:

  • 德国和瑞士(ICE International via Utrecht)
  • 比利时和法国(泰国)
  • 英格兰(欧洲之星)

代尔夫特有两个火车站:

  • 主要火车站代尔夫特站(与阿姆斯特丹、海牙、鹿特丹和其他荷兰城市有频繁的城际(IC)连接)。
  • 较小的火车站代尔夫特校区站(只有Sprinter(SPR)连接,城际列车不在此停车)。

要确定您到代尔夫特(或代尔夫脱)的所有公共交通路线和旅行时间,请使用9292。为了确定您的列车连接和旅行时间,您可以使用NS公司.

我们建议前往主要火车站代尔夫特站。会议地点位于公共汽车站台对面,一旦你走出主火车站,你就会看到前面有一座高楼。

在大多数自行车店都可以租到自行车,例如Fietsplushttps://goo.gl/maps/DWotyhEo4EXD8Nsk9?coh=178572&entry=tt离车站很近。

注册


要注册,您可以填写以下表格并发送给托马斯[dot]lamiaux@ens-paris-saclay.fr你也只能直接在部分参与者中填写你的名字。在这种情况下,您还可以通过复制和粘贴方框示例来直接添加对话/讨论/代码sprint建议。

如果您不能亲自参加,可以在线参加早上的谈话。您可以通过电子邮件或直接添加姓名进行注册添加到列表中。

收件人:托马斯[点]lamiaux@ens-paris-saclay.fr
对象:Agda实施者会议登记表三十六
  • 姓名:
  • 在线或面对面:
  • 机构:
  • 饮食限制:
  • 如果你想发表演讲:
    • 标题
    • 简短摘要(可选)
  • 如果你想建议一个谈话主题:
    • 主题
    • 简短描述(可选)
  • 如果您希望建议代码冲刺:
    • 建议书
    • 简短描述(可选)
  • 其他评论:

没有注册费。交通、住宿和膳食费用由参与者承担。

感谢我们的赞助商我们可以为想参加会议的学生和弱势群体提供一些旅行和住宿资金。要申请,请发送电子邮件至杰斯珀.参加活动本身是免费的。

住宿


我们建议您留在社交中心这家酒店与今年Agda实施者会议的地点相同。我们预先预订了10个房间。为了让你预订其中一个房间,请用这个链接请注意,酒店客房是先到先得的。一旦你走出主火车站“代尔夫特站”,社交中心就在你面前,穿过公共汽车站台。

代尔夫特其他位置便利的酒店包括Ibis Styles酒店,大运河酒店,皇家大桥酒店.

餐厅


下面是推荐餐厅的列表。Delft还有很多其他地方值得探索,如果你找到一个好的地方,可以随意将其添加到这个列表中!

廉价(<10欧元):

优质:价格比(10-20欧元):

更别致(>20欧元):

啤酒和饮料:

远足


周日,我们将乘电车从代尔夫特到Scheveningen公司从那里徒步旅行到Meijendel自然保护区我们于10:00在代尔夫特中心站旁边的电车站见面,或于11:00在Scheveningen的Zwarte Pad站见面。有轨电车每15分钟一班,我们计划10点13分乘一班。如果你没有荷兰公共交通卡,最便宜的票是8张一日票,你可以通过HTM票务应用程序或者在车站。有关有轨电车的详细信息,请参阅:Delft至Zwarte Pad的有轨电车.

我们建议在海滩和梅延德尔徒步旅行有很多选择这13.5公里的往返行程.午餐可以吃荷兰煎饼博尔德里吉·梅詹德尔(Boerderij Meijendel)(大约在远足的一半),或者带上你自己的野餐。

参与者


亲自出席

  • 卢卡斯·埃斯科特
  • 沃特·斯威斯特拉(可能不是整天都在那里)
  • 内森·范·道恩
  • 杰斯珀考克斯
  • 博丹·列斯尼科夫
  • 萨拉·尤霍奥娃(并非所有日子)
  • 阿瑟·阿杰德
  • Casper Bach Poulsen(并非所有日子)
  • Orestis Melkonian(10号周三晚点到达,16号周二早点离开)
  • 纪尧姆·阿拉斯
  • Ivar de Bruin(并非所有日子)
  • 佩奥·博瑟尔
  • 安德烈·克尼斯佩尔
  • 马金·扬·图雷克·格奇博夫斯基
  • 乔伊·埃雷蒙迪
  • 卢卡斯·霍尔顿
  • 费利克斯·切鲁比尼
  • 乔纳森·科茨
  • 昆廷·卡努(周三至周五)
  • 廖美莉(Amélia Liao)
  • 詹姆斯·麦金纳
  • 尼尔斯·范德魏德(仅5月15日和16日)
  • 安德烈亚斯·阿贝尔
  • 詹姆斯·查普曼(5月10日星期三上午抵达)

在线参加

  • 托马斯·拉米奥
  • 陈良亭
  • 奈杰尔·伯克
  • 约翰·利奥
  • 奥斯卡·埃里克森
  • 马修·达吉特
  • (你的名字在这里)

赞助商


非常感谢我们的赞助商:

IOG公司

总结说明



5月10日星期三


  • 詹姆斯(agda2rust):目前正在阅读agda to rust学生报告。
  • 安德烈亚斯(二进制分布):用温的行动来解决问题。问题是我们是否可以保留当前的部署操作,一些人目前依赖(也许?)。
  • 费利克斯(agda-base):回购创建!从std-lib复制的一些基本内容,已经讨论了一些(命名)约定。
  • 安德烈(元编程):现在只是收集想法。
  • Marcin:致力于现有的公关。关于如何使用立体格式的更清晰的想法。
  • 纪尧姆(连载):进一步移植到Agda。目前正在定义不安全视图。
  • 艾米和佩奥:目前正在修复终止检查程序,以(希望)允许使用无偿(S)Prop。
  • 詹姆斯和内森:一些人从事性病公关工作。

5月11日星期四


  • 艾米(不透明):对当前的设计不满意,艾米目前正在与杰斯珀修复,同时提出一个更好的设计。
  • Andreas:查看2.6.4版本的问题,最好是在夏天之前发布。
  • Bohdan:目前正在调查问题#6541.
  • 奥雷斯蒂斯和安德烈(stdlib-meta):正在合并奥雷斯蒂和安德烈的前奏曲。
  • Felix(agda-base):从stdlib(和stdlib-meta。
  • 马辛:公关方面取得进展。更多方块。
  • Guillaume(序列化):移植到Agda上,以便它可以读取二进制文件。玩agda2hs(有一个新的PR:https://github.com/agda/agda2hs/pull/177),查看stdlib的PR。
  • 乔纳森:???
  • Nathan和James:阅读更多stdlib PR(#1928,二项式定理的证明)。
  • 佩奥和卢卡斯:我们对考克对归纳数据类型的分析有了基本的了解。但Coq拒绝了太多我们负担不起的严格阳性数据类型,所以我们还没有一个完整的解决方案。开始黑客攻击。
  • 詹姆斯·查普曼:反思与施密蒂讨论。与Lucas Holten一起,让agda2rust进行编译和工作。联系学生了解许可。
  • 卢卡斯·霍尔滕(Lucas Holten):为他的论文编写示例,收集了一些关于转换检查的信息。
  • 杰斯珀:支持。开始使用新类型的occurrents-checker查看性能回归。将尽量不减少类型。

5月12日星期五


  • 安德烈亚斯:想加入PropOmega。但首先进行一些重构,将Type、Prop和SSet内部折叠为一个带参数的构造函数。
  • Orestis&James C:主要讨论模型检查,尝试一些现有工具(Kind2模型检查)。还讨论了agda2hs的下一步行动。
  • 安德烈:花了一整天重构stdlib-meta。令人惊讶的是,它似乎能很好地与立体代码一起工作。
  • 费利克斯:试着使用小隔间里的1个实验室的战术。
  • Peio和Lucas:试图扩展Coq的归纳递归位置表示,以适应Agda更宽松的数据类型(Agda可能会严格认为非齐次参数是正的,Coq永远不会这样认为)。考虑到放弃这一点,也许可以实现模仿Coq的受限检查。
  • Marcin:将计算机代数系统与Agda集成。在反射API中添加了一种解析表面级语法的方法[[https://github.com/agda/agda/pull/6629|新公关开放]。这项工作的动机将于明天展示!
  • James M&Nathan:花了一天时间关闭了另外三个公关。内森在置换的奇偶定理方面取得了一些进展。
  • Guillaume:使用反射在编译时捕获文件,并在编译时使用类型良好的模板。
  • 乔纳森:还在做内置公关。
  • 艾米:在不透明的公关、对抗CI方面取得了更多进展。
  • 杰斯珀:从事公关工作,总是使用快速还原引擎。这将有助于提高类型化发生检查程序perf回归的性能幻灯片。

5月15日星期一


  • 纪尧姆:拿到了模板引擎在阿格达工作!它在运行在编译时使用Wen的“execTC”检索一个(胡子)模板,并根据应用到它的任何数据进行类型检查。生成一些适当的错误消息。下一步:stdlib中的条件计算?
  • 詹姆斯·M:揭示检查最终在stdlib中被弃用。
  • 内森:关于置换定理的更多工作。
  • 艾米:对hcomp数据类型的小优化正在变成一次彻底的重写。实现了忽略检查道具在终端检查中。你不能再在Prop上递归(仅)。帮助Andre实现“为统一注入”杂注。展开文档中的一些改进。
  • 马辛:从菲利克斯那里得到了一些关于立方体格达公关的建议。在Macaulay 2周围制作包装纸?
  • 卢卡斯:删除了一个带有极性注释的错误,其中创建的元没有任何极性限制。Amy在使用内部类型检查器重新进行类型检查时给出了实例化的技巧。
  • 安德烈:致力于统一内射的杂注。编写一些文档。有关元编程库的更多(清理)工作。(明天?)来个展示会。
  • Orestis:原型工作与Agda内的Kind2模型检查器接口,使用执行TC.
  • James C:收到agda2rust学生的回复,他们对在后台做更多工作感兴趣。在一些硕士论文的基础上,研究Agda中的密码协议和游戏的形式化。
  • 费利克斯:与马辛讨论了如何从阿格达内部使用外部工具。特别是拥有更强大的环形解决方案。目前正在尝试确定1实验室所依赖的内容,这可能是agda-base的一部分。
  • 安德烈亚斯:新增普罗奥米加。花费了大量时间重构和修复角落案例SSet欧米茄.
  • 杰斯珀:考虑为事件检查器记忆延迟计算。
  • 博丹:成为公关。

5月16日星期二


  • 杰斯珀:仍在改进事件检查器。在快速还原中发现了一些错误。
  • Andreas和James C:在Delay monad中执行NbE。将旧代码移植到新(er)stdlib。该项目是[[https://github.com/andreasabel/continuous-normalization网站|live here],展示使用setup-agda-github操作构建和部署agda项目是多么容易。
  • 纪尧姆:在agda源代码中做了更多的事情。似乎不会影响Agda的性能,可能会增加编译时间。
  • 马辛:设法将麦考莱2的结果提取到阿格达中!
  • 乔纳森:把Agda编译成WASM!速度太慢,无法使用,但很有希望。
  • 费利克斯:接着是agda-base。考虑将agda-base拆分为更小的片段(因为1lab重新定义了原语,但其他人没有)。
  • 安德烈:试图为J.反联合写一个策略。使“为统一注入”杂注通过了所有测试。
  • 佩奥:(一次又一次地)玩精密望远镜。
  • 艾米:整天挤虫子!
页面最后一次修改时间为2023年5月17日上午10:29
技术支持私人维基