Inheritance of Proofs

M. Hofmann, Wolfgang Naraschewski, M. Steffen, T. Stroup
{"title":"Inheritance of Proofs","authors":"M. Hofmann, Wolfgang Naraschewski, M. Steffen, T. Stroup","doi":"10.1002/(SICI)1096-9942(1998)4:1<51::AID-TAPO4>3.0.CO;2-A","DOIUrl":null,"url":null,"abstract":"The Curry-Howard isomorphism, a fundamental property shared by many type theories, establishes a direct correspondence between programs and proofs. This suggests that the same structuring principles that ease programming be used to simplify proving as well. To exploit object-oriented structuring mechanisms for veriication, we extend the object-model of Pierce and Turner, based on the higher-order typed-calculus F ! , with a logical component. By enriching the (functional) signature of objects with a speciication, the methods and their correctness proofs are packed together in the objects. The uniform treatment of methods and proofs gives rise in a natural way to object-oriented proving principles | including inheritance of proofs, late binding of proofs, and encapsulation of proofs | as analogues to object-oriented programming principles. We have used Lego, a type-theoretic proof checker, to explore the feasibility of this approach. In particular, we have veriied a small hierarchy of classes. 1. Introduction Many programming languages have been developed to ease modular and structured design of programs. The popularity of powerful structuring techniques, including object-oriented ones, is a convincing argument that those mechanisms support the programming task. Depending on the programming style, they cater to divide-and-conquer strategies for breaking down large programs into abstract data types, modules, objects, or similar. Since the resulting components ideally mirror the decomposition of the problem into conceptually","PeriodicalId":293061,"journal":{"name":"Theory Pract. Object Syst.","volume":"4 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"11","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Theory Pract. Object Syst.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1002/(SICI)1096-9942(1998)4:1<51::AID-TAPO4>3.0.CO;2-A","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 11

Abstract

The Curry-Howard isomorphism, a fundamental property shared by many type theories, establishes a direct correspondence between programs and proofs. This suggests that the same structuring principles that ease programming be used to simplify proving as well. To exploit object-oriented structuring mechanisms for veriication, we extend the object-model of Pierce and Turner, based on the higher-order typed-calculus F ! , with a logical component. By enriching the (functional) signature of objects with a speciication, the methods and their correctness proofs are packed together in the objects. The uniform treatment of methods and proofs gives rise in a natural way to object-oriented proving principles | including inheritance of proofs, late binding of proofs, and encapsulation of proofs | as analogues to object-oriented programming principles. We have used Lego, a type-theoretic proof checker, to explore the feasibility of this approach. In particular, we have veriied a small hierarchy of classes. 1. Introduction Many programming languages have been developed to ease modular and structured design of programs. The popularity of powerful structuring techniques, including object-oriented ones, is a convincing argument that those mechanisms support the programming task. Depending on the programming style, they cater to divide-and-conquer strategies for breaking down large programs into abstract data types, modules, objects, or similar. Since the resulting components ideally mirror the decomposition of the problem into conceptually
证明的继承
Curry-Howard同构是许多类型理论共有的一个基本性质,它建立了程序和证明之间的直接对应关系。这表明简化编程的结构化原则也可以用于简化证明。为了利用面向对象的结构机制进行验证,我们扩展了Pierce和Turner的对象模型,基于高阶类型演算F !,其中包含逻辑组件。通过用规范丰富对象的(功能)签名,将方法及其正确性证明打包在对象中。方法和证明的统一处理以一种自然的方式产生了面向对象的证明原则,包括证明的继承、证明的后期绑定和证明的封装,作为面向对象编程原则的类比。我们使用类型理论证明检查器Lego来探索这种方法的可行性。特别是,我们已经验证了一个小的类层次结构。1. 许多编程语言都是为了简化程序的模块化和结构化设计而开发的。强大的结构化技术(包括面向对象技术)的流行是一个令人信服的论据,说明这些机制支持编程任务。根据编程风格的不同,它们采用分而治之的策略,将大型程序分解为抽象数据类型、模块、对象或类似的东西。因为所得到的组件理想地反映了问题在概念上的分解
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信