当前位置: X-MOL 学术J. Funct. Program. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Constructive Galois Connections
Journal of Functional Programming ( IF 1.1 ) Pub Date : 2019-07-08 , DOI: 10.1017/s0956796819000066
DAVID DARAIS , DAVID VAN HORN

Galois connections are a foundational tool for structuring abstraction in semantics, and their use lies at the heart of the theory of abstract interpretation. Yet, mechanization of Galois connections using proof assistants remains limited to restricted modes of use, preventing their general application in mechanized metatheory and certified programming. This paper presents constructive Galois connections, a variant of Galois connections that is effective both on paper and in proof assistants; is complete with respect to a large subset of classical Galois connections; and enables more general reasoning principles, including the “calculational” style advocated by Cousot. To design constructive Galois connections, we identify a restricted mode of use of classical ones which is both general and amenable to mechanization in dependently typed functional programming languages. Crucial to our metatheory is the addition of monadic structure to Galois connections to control a “specification effect.” Effectful calculations may reason classically, while pure calculations have extractable computational content. Explicitly moving between the worlds of specification and implementation is enabled by our metatheory. To validate our approach, we provide two case studies in mechanizing existing proofs from the literature: the first uses calculational abstract interpretation to design a static analyzer, and the second forms a semantic basis for gradual typing. Both mechanized proofs closely follow their original paper-and-pencil counterparts, employ reasoning principles not captured by previous mechanization approaches, support the extraction of verified algorithms, and are novel.

中文翻译:

建设性的伽罗瓦连接

伽罗瓦连接是构建语义抽象的基础工具,它们的使用是抽象解释理论的核心。然而,使用证明助手对伽罗瓦连接进行机械化仍然仅限于受限的使用模式,从而阻碍了它们在机械化元理论和认证编程中的普遍应用。本文提出建设性的伽罗瓦连接,伽罗瓦连接的一种变体,在纸上和证明助手中都有效;对于经典伽罗瓦连接的一个大子集是完备的;并支持更一般的推理原则,包括 Cousot 提倡的“计算”风格。为了设计建设性的伽罗瓦连接,我们确定了一种使用经典连接的受限模式,该模式既通用又易于在依赖类型的函数式编程语言中进行机械化。对我们的元理论至关重要的是在伽罗瓦连接中添加一元结构以控制“规范效应”。有效的计算可能是经典的推理,而纯粹的计算具有可提取的计算内容。我们的元理论支持在规范和实现的世界之间明确移动。为了验证我们的方法,我们提供了两个将文献中现有证明机械化的案例研究:第一个使用计算抽象解释来设计静态分析器,第二个形成渐进式类型的语义基​​础。两种机械化证明都紧跟其原始的纸笔证明,采用以前机械化方法未捕获的推理原理,支持提取经过验证的算法,并且是新颖的。
更新日期:2019-07-08
down
wechat
bug