SHF:Small:RUI: Deep Induction Rules for Advanced Data Types

SHF:Small:RUI:高级数据类型的深度归纳规则

基本信息

  • 批准号:
    2203217
  • 负责人:
  • 金额:
    $ 61.31万
  • 依托单位:
  • 依托单位国家:
    美国
  • 项目类别:
    Standard Grant
  • 财政年份:
    2022
  • 资助国家:
    美国
  • 起止时间:
    2022-10-01 至 2025-09-30
  • 项目状态:
    未结题

项目摘要

A particularly successful approach to software verification is deductive verification. Deductive verification generates mathematical proof obligations from software specifications, and, when these proof obligations are met, software implementations are guaranteed to conform to the specifications from which they were generated. Generated obligations can be discharged by means of hand-written mathematical proofs, but modern software is sufficiently complex that this is often tedious and error-prone, if not outright infeasible. Increasingly, therefore, proofs are developed in proof assistants like Agda, Coq, Idris, and Lean. Induction is one of the most important proof techniques available in such proof assistants. Indeed, almost all non-trivial proofs involving data types are either proved by induction outright or rely on lemmas that are. For this reason, every time a new data type is declared in, say, Coq, an induction rule is automatically generated for it. But because they traverse only the top layer, rather than all of the layers of a data structure, there are some properties of data types that should be amenable to induction but that the structural induction rules generated by Coq cannot prove. Deep induction is a recently developed generalization of structural induction that does indeed induct over all of the data present in data structures. This project's novelty is that it extends deep induction from the algebraic data types (ADTs) and (truly) nested types typically handled by Coq to their more expressive generalizations known as generalized ADTs (GADTs) and inductive families (IFs). The project's impact is thus to make it possible to detect errors and verify program properties that cannot be expressed just using ADTs and nested types, but that can be expressed using GADTs and IFs.The project involves developing a principled, conceptually simple, uniform, and comprehensive framework for deep induction for GADTs and IFs, including: i) a grammar that generates a very general class of GADTs, including all those from the literature; ii) a novel endofunctor initial-algebra-like semantics for GADTs that justifies their deep induction rules; iii) translations between GADTs and IFs that yield similar semantics, and thus deep induction rules, for IFs; and iv) implemented tools that generate deep induction rules for GADTs and IFs, together with witnesses that prove them correct, directly from their syntax. Overall, the project applies state-of-the-art theory to improve state-of-the-art verification practice. Theoretically, endofunctor initial algebra semantics is one of the cornerstones of the theory of data types, and is key to deriving even structural induction rules for them. A particularly compelling feature of the project's framework for deep induction is that the novel "maximally functorial interpretations" of GADTs and IFs that serve as its foundation are based on the same well-established principles as, and indeed specialize to, the standard initial algebra semantics for ADTs and nested types. It thus delivers a uniform semantics for ADTs, (truly) nested types, GADTs, and IFs, as well as a uniform methodology for deriving their deep induction rules. Practically speaking, this makes it possible to incorporate deep induction for GADTs and IFs into modern proof assistants by conservatively extending the standard induction techniques currently in use for ADTs, rather than by developing fundamentally new approaches. Even incorporating deep induction just for ADTs into existing proof assistants will significantly extend and improve them.This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
一种特别成功的软件验证方法是演绎验证。演绎验证根据软件规范生成数学证明义务,并且当满足这些证明义务时,保证软件实现符合生成它们的规范。生成的义务可以通过手写的数学证明来履行,但现代软件非常复杂,这通常是乏味且容易出错的,甚至是完全不可行的。因此,越来越多的证明是在 Agda、Coq、Idris 和 Lean 等证明助手中开发的。归纳法是此类证明助手中可用的最重要的证明技术之一。事实上,几乎所有涉及数据类型的重要证明要么直接通过归纳法证明,要么依赖于引理。因此,每次在 Coq 中声明一个新的数据类型时,都会自动为其生成一个归纳规则。但由于它们仅遍历数据结构的顶层,而不是所有层,因此数据类型的某些属性应该适合归纳,但 Coq 生成的结构归纳规则无法证明。深度归纳是最近开发的结构归纳的概括,它确实归纳了数据结构中存在的所有数据。该项目的新颖之处在于,它将深度归纳从通常由 Coq 处理的代数数据类型 (ADT) 和(真正的)嵌套类型扩展到更具表现力的概括,即广义 ADT (GADT) 和归纳族 (IF)。因此,该项目的影响是使检测错误和验证程序属性成为可能,这些属性不能仅使用 ADT 和嵌套类型来表达,但可以使用 GADT 和 IF 来表达。该项目涉及开发一个有原则的、概念上简单的、统一的和GADT 和 IF 深度归纳的综合框架,包括: i) 生成非常通用的 GADT 类的语法,包括所有来自文献的语法; ii) GADT 的新颖的类似于初始代数的内函子语义,证明了其深层归纳规则的合理性; iii) GADT 和 IF 之间的翻译,产生相似的语义,从而为 IF 产生深层归纳规则; iv) 实现了为 GADT 和 IF 生成深度归纳规则的工具,并直接从语法中证明它们是正确的。总体而言,该项目应用最先进的理论来改进最先进的验证实践。从理论上讲,函子初始代数语义是数据类型理论的基石之一,并且是推导数据类型结构归纳规则的关键。该项目的深度归纳框架的一个特别引人注目的特征是,作为其基础的 GADT 和 IF 的新颖“最大函数解释”基于与标准初始代数语义相同的既定原则,并且实际上专门针对标准初始代数语义。对于 ADT 和嵌套类型。因此,它为 ADT、(真正的)嵌套类型、GADT 和 IF 提供了统一的语义,以及用于导出其深层归纳规则的统一方法。实际上,这使得通过保守地扩展目前用于 ADT 的标准归纳技术,而不是开发全新的方法,将 GADT 和 IF 的深度归纳纳入现代证明助手中成为可能。即使将仅针对 ADT 的深度归纳纳入现有的证明助手中,也将显着扩展和改进它们。该奖项反映了 NSF 的法定使命,并通过使用基金会的智力优点和更广泛的影响审查标准进行评估,被认为值得支持。

项目成果

期刊论文数量(0)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)

数据更新时间:{{ journalArticles.updateTime }}

{{ item.title }}
{{ item.translation_title }}
  • DOI:
    {{ item.doi }}
  • 发表时间:
    {{ item.publish_year }}
  • 期刊:
  • 影响因子:
    {{ item.factor }}
  • 作者:
    {{ item.authors }}
  • 通讯作者:
    {{ item.author }}

数据更新时间:{{ journalArticles.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ monograph.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ sciAawards.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ conferencePapers.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ patent.updateTime }}

Patricia Johann其他文献

Staged Notational Definitions
分阶段符号定义
  • DOI:
    10.1007/978-3-540-39815-8_6
  • 发表时间:
    2003-09-22
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Walid Taha;Patricia Johann
  • 通讯作者:
    Patricia Johann
Lumberjack Summer Camp: A Cross-Institutional Undergraduate Research Experience in Computer Science
伐木工人夏令营:计算机科学的跨机构本科研究经历
  • DOI:
    10.1076/csed.11.4.279.3830
  • 发表时间:
    2001-12-01
  • 期刊:
  • 影响因子:
    2.7
  • 作者:
    Patricia Johann;F. Turbak
  • 通讯作者:
    F. Turbak
The Impact of seq on Free Theorems-Based Program Transformations
seq 对基于自由定理的程序转换的影响
  • DOI:
    10.1017/cbo9781316092415.002
  • 发表时间:
    2006
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Patricia Johann;J. Voigtländer
  • 通讯作者:
    J. Voigtländer
Structural Resolution: a Framework for Coinductive Proof Search and Proof Construction in Horn Clause Logic
结构解析:霍恩子句逻辑中的共归纳证明搜索和证明构造的框架
  • DOI:
  • 发表时间:
    2015
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Ekaterina Komendantskaya;Patricia Johann
  • 通讯作者:
    Patricia Johann
(Deep) induction rules for GADTs
GADT 的(深度)归纳规则
  • DOI:
  • 发表时间:
    2021
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Patricia Johann;Enrico Ghiorzi
  • 通讯作者:
    Enrico Ghiorzi

Patricia Johann的其他文献

{{ item.title }}
{{ item.translation_title }}
  • DOI:
    {{ item.doi }}
  • 发表时间:
    {{ item.publish_year }}
  • 期刊:
  • 影响因子:
    {{ item.factor }}
  • 作者:
    {{ item.authors }}
  • 通讯作者:
    {{ item.author }}

{{ truncateString('Patricia Johann', 18)}}的其他基金

SHF:Small:RUI: Semantic Complexity of Advanced Data Types
SHF:Small:RUI:高级数据类型的语义复杂性
  • 批准号:
    1906388
  • 财政年份:
    2019
  • 资助金额:
    $ 61.31万
  • 项目类别:
    Standard Grant
SHF: Small: RUI: New Foundations for Indexed Programming
SHF:小型:RUI:索引编程的新基础
  • 批准号:
    1713389
  • 财政年份:
    2017
  • 资助金额:
    $ 61.31万
  • 项目类别:
    Standard Grant
SHF: Small: Relational Parametricity for Program Verification
SHF:小:程序验证的关系参数
  • 批准号:
    1420175
  • 财政年份:
    2014
  • 资助金额:
    $ 61.31万
  • 项目类别:
    Standard Grant
Categorical Foundations for Indexed Programming
索引编程的分类基础
  • 批准号:
    EP/G068917/1
  • 财政年份:
    2010
  • 资助金额:
    $ 61.31万
  • 项目类别:
    Research Grant
RUI:Initial Algebra Packages for GADTs: Principled Tools for Structured Programming
RUI:GADT 的初始代数包:结构化编程的原则工具
  • 批准号:
    0700341
  • 财政年份:
    2007
  • 资助金额:
    $ 61.31万
  • 项目类别:
    Standard Grant
RUI: Provable Safety for Performance-Improving Free Theorems-Based Program Transformations
RUI:可证明安全性,可提高性能的基于自由定理的程序转换
  • 批准号:
    0429072
  • 财政年份:
    2004
  • 资助金额:
    $ 61.31万
  • 项目类别:
    Continuing Grant
RUI: Testing and Enhancing a Prototype Program Fusion Engine
RUI:测试和增强原型程序融合引擎
  • 批准号:
    0296006
  • 财政年份:
    2001
  • 资助金额:
    $ 61.31万
  • 项目类别:
    Standard Grant
RUI: Testing and Enhancing a Prototype Program Fusion Engine
RUI:测试和增强原型程序融合引擎
  • 批准号:
    9900510
  • 财政年份:
    1999
  • 资助金额:
    $ 61.31万
  • 项目类别:
    Standard Grant
Mathematical Sciences: Toward a Theory of Well-Founded Orderings for Use in Automated Deduction
数学科学:走向一种用于自动演绎的有根据的排序理论
  • 批准号:
    9696043
  • 财政年份:
    1995
  • 资助金额:
    $ 61.31万
  • 项目类别:
    Standard Grant
Mathematical Sciences: Toward a Theory of Well-Founded Orderings for Use in Automated Deduction
数学科学:走向一种用于自动演绎的有根据的排序理论
  • 批准号:
    9510164
  • 财政年份:
    1995
  • 资助金额:
    $ 61.31万
  • 项目类别:
    Standard Grant

相似国自然基金

小分子代谢物Catechin与TRPV1相互作用激活外周感觉神经元介导尿毒症瘙痒的机制研究
  • 批准号:
    82371229
  • 批准年份:
    2023
  • 资助金额:
    49 万元
  • 项目类别:
    面上项目
DHEA抑制小胶质细胞Fis1乳酸化修饰减轻POCD的机制
  • 批准号:
    82301369
  • 批准年份:
    2023
  • 资助金额:
    30 万元
  • 项目类别:
    青年科学基金项目
SETDB1调控小胶质细胞功能及参与阿尔茨海默病发病机制的研究
  • 批准号:
    82371419
  • 批准年份:
    2023
  • 资助金额:
    49 万元
  • 项目类别:
    面上项目
PTBP1驱动H4K12la/BRD4/HIF1α复合物-PKM2正反馈环路促进非小细胞肺癌糖代谢重编程的机制研究及治疗方案探索
  • 批准号:
    82303616
  • 批准年份:
    2023
  • 资助金额:
    30 万元
  • 项目类别:
    青年科学基金项目

相似海外基金

Collaborative Research: SHF: Small: RUI: CMOS+X: Honey-ReRAM Enabled 3D Neuromorphic Accelerator
合作研究:SHF:小型:RUI:CMOS X:Honey-ReRAM 支持的 3D 神经形态加速器
  • 批准号:
    2247342
  • 财政年份:
    2023
  • 资助金额:
    $ 61.31万
  • 项目类别:
    Standard Grant
Collaborative Research: SHF: Small: RUI: Keystone: Modular Concurrent Software Verification
协作研究:SHF:小型:RUI:Keystone:模块化并发软件验证
  • 批准号:
    2243636
  • 财政年份:
    2023
  • 资助金额:
    $ 61.31万
  • 项目类别:
    Standard Grant
Collaborative Research: SHF: Small: RUI: Keystone: Modular Concurrent Software Verification
协作研究:SHF:小型:RUI:Keystone:模块化并发软件验证
  • 批准号:
    2243637
  • 财政年份:
    2023
  • 资助金额:
    $ 61.31万
  • 项目类别:
    Standard Grant
Collaborative Research: SHF: Small: RUI: CMOS+X: Honey-ReRAM Enabled 3D Neuromorphic Accelerator
合作研究:SHF:小型:RUI:CMOS X:Honey-ReRAM 支持的 3D 神经形态加速器
  • 批准号:
    2247343
  • 财政年份:
    2023
  • 资助金额:
    $ 61.31万
  • 项目类别:
    Standard Grant
Collaborative Research: SHF: Small: RUI: Context-aware Models of Source Code Summarization
协作研究:SHF:小型:RUI:源代码摘要的上下文感知模型
  • 批准号:
    2100050
  • 财政年份:
    2021
  • 资助金额:
    $ 61.31万
  • 项目类别:
    Standard Grant
{{ showInfoDetail.title }}

作者:{{ showInfoDetail.author }}

知道了