Relative Completeness for Logics of Functional Programs

函数式程序逻辑的相对完整性

基本信息

  • 批准号:
    EP/I01456X/1
  • 负责人:
  • 金额:
    $ 1.71万
  • 依托单位:
  • 依托单位国家:
    英国
  • 项目类别:
    Research Grant
  • 财政年份:
    2011
  • 资助国家:
    英国
  • 起止时间:
    2011 至 无数据
  • 项目状态:
    已结题

项目摘要

Program logics play an important role in Computer Science to complement testing. A program logic allows one to prove that a program satisfies a given specification. Seminal work has been done in the early seventies by Hoare on axiomatic semantics for stateful programs. Since then many calculi have been developed for all kinds of programming languages and meanwhile mechanizations of these logics in numerous verification tools exist. Two properties of a program logic are of particular interest: Soundness states that any property one can prove of a program in the calculus is actually valid. Completeness states the converse, namely that any valid property can also be derived. In an ideal world, a formal calculus for a program logic would be both, sound and complete, thus faithfully and completely reflecting the semantics of programs and correctness assertions, also called specifications. However, due to Goedel's Incompleteness Theorem it is hopeless to look for (absolutely) complete program logics since for any formal system S there always exists a correctness assertion which is true but cannot be proved in S.In spite of this, one might ask whether the axioms of some program logic are sufficient to derive all true correctness assertions relative to some complete theory of data as e.g. all true sentences of first order arithmetic. This was first investigated for simple imperative languages where specifications are so-called Hoare triples, of the form {P}C{Q} where C is a program, P the pre-condition, and Q the post-condition. Such a triple states that if C is run in a state fulfilling P and terminates, the resulting new state will meet assertion Q. The Hoare-calculus then provides a set of rules and axioms how one can derive such triples, ie. proofs that programs meet a certain specification given by pre- and post-conditions.The property of relative completeness for such a logic was established by Cook in his seminal paper for a simple variant of Hoare logic. He showed that all correct partial correctness assertions of the form {P}C{Q} can be derived using the rules of Hoare's logic provided we are allowed to use all true sentences of first order arithmetic as axioms. The reason for this is that the language of first order arithmetic is strong enough to express for all programs P its input/output relation by a formula of first order arithmetic.Program logics, however, are also of interest for functional programs. Popular functional programming languages are ML, Caml, or Haskell. Pure functional languages do not use state but recursively defined data structures and higher-order functions on them. To the best of our knowledge the question whether relative completeness holds for logics of functional programming languages has not been investigated systematically and thoroughly. Therefore, this project will investigate logics such as D. Scott's LCF (or extensions of it). Experience tells us that verification of most purely functional programs can be expressed within LCF. But it is also easy to find assertions which can neither be proved nor disproved within LCF, like the specification of 'parallel or'. The reason simply is that the former holds in the Scott model but its negation holds in the fully abstract model. It is important to note that these two models are not different w.r.t. the data type NAT of natural numbers (and also the data type NAT->NAT of unary functions on NAT) but they do differ at higher types. Accordingly, it does not make sense to ask whether LCF is relatively complete w.r.t. to a full axiomatization of its first order part since the latter -- unlike for a basic imperative language -- does not fully determine the (higher type part of the) model.Thus, the right question, the one we will tackle in this project, is whether 'natural' models for PCF can have nice complete axiomatizations.
Program logics play an important role in Computer Science to complement testing. A program logic allows one to prove that a program satisfies a given specification. Seminal work has been done in the early seventies by Hoare on axiomatic semantics for stateful programs. Since then many calculi have been developed for all kinds of programming languages and meanwhile mechanizations of these logics in numerous verification tools exist. Two properties of a program logic are of particular interest: Soundness states that any property one can prove of a program in the calculus is actually valid. Completeness states the converse, namely that any valid property can also be derived. In an ideal world, a formal calculus for a program logic would be both, sound and complete, thus faithfully and completely reflecting the semantics of programs and correctness assertions, also called specifications. However, due to Goedel's Incompleteness Theorem it is hopeless to look for (absolutely) complete program logics since for any formal system S there always exists a correctness assertion which is true but cannot be proved in S.In spite of this, one might ask whether the axioms of some program logic are sufficient to derive all true correctness assertions relative to some complete theory of data as e.g. all true sentences of first order arithmetic. This was first investigated for simple imperative languages where specifications are so-called Hoare triples, of the form {P}C{Q} where C is a program, P the pre-condition, and Q the post-condition. Such a triple states that if C is run in a state fulfilling P and terminates, the resulting new state will meet assertion Q. The Hoare-calculus then provides a set of rules and axioms how one can derive such triples, ie. proofs that programs meet a certain specification given by pre- and post-conditions.The property of relative completeness for such a logic was established by Cook in his seminal paper for a simple variant of Hoare logic. He showed that all correct partial correctness assertions of the form {P}C{Q} can be derived using the rules of Hoare's logic provided we are allowed to use all true sentences of first order arithmetic as axioms. The reason for this is that the language of first order arithmetic is strong enough to express for all programs P its input/output relation by a formula of first order arithmetic.Program logics, however, are also of interest for functional programs. Popular functional programming languages are ML, Caml, or Haskell. Pure functional languages do not use state but recursively defined data structures and higher-order functions on them. To the best of our knowledge the question whether relative completeness holds for logics of functional programming languages has not been investigated systematically and thoroughly. Therefore, this project will investigate logics such as D. Scott's LCF (or extensions of it). Experience tells us that verification of most purely functional programs can be expressed within LCF. But it is also easy to find assertions which can neither be proved nor disproved within LCF, like the specification of 'parallel or'. The reason simply is that the former holds in the Scott model but its negation holds in the fully abstract model. It is important to note that these two models are not different w.r.t. the data type NAT of natural numbers (and also the data type NAT->NAT of unary functions on NAT) but they do differ at higher types. Accordingly, it does not make sense to ask whether LCF is relatively complete w.r.t. to a full axiomatization of its first order part since the latter -- unlike for a basic imperative language -- does not fully determine the (higher type part of the) model.Thus, the right question, the one we will tackle in this project, is whether 'natural' models for PCF can have nice complete axiomatizations.

项目成果

期刊论文数量(1)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)
Relative Completeness for Logics of Functional Programs
函数式程序逻辑的相对完整性
{{ 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 }}

Bernhard Reus其他文献

Formalizing Synthetic Domain Theory
形式化综合域理论
Self-referencing Programs
自引用程序
  • DOI:
    10.1007/978-3-319-27889-6_10
  • 发表时间:
    2016
  • 期刊:
  • 影响因子:
    2.9
  • 作者:
    Bernhard Reus
  • 通讯作者:
    Bernhard Reus
Semantics and logic of object calculi
对象演算的语义和逻辑
Modular Semantics and Logics of Classes
类的模块化语义和逻辑
About Hoare Logics for Higher-Order Store
关于高阶存储的 Hoare Logics
  • DOI:
    10.1007/11523468_108
  • 发表时间:
    2005
  • 期刊:
  • 影响因子:
    5.4
  • 作者:
    Bernhard Reus;T. Streicher
  • 通讯作者:
    T. Streicher

Bernhard Reus的其他文献

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

{{ truncateString('Bernhard Reus', 18)}}的其他基金

Workshop Domains IX
工作坊领域 IX
  • 批准号:
    EP/G016267/1
  • 财政年份:
    2008
  • 资助金额:
    $ 1.71万
  • 项目类别:
    Research Grant
From Reasoning Principles for Function Pointers To Logics for Self-Configuring Programs
从函数指针的推理原理到自配置程序的逻辑
  • 批准号:
    EP/G003173/1
  • 财政年份:
    2008
  • 资助金额:
    $ 1.71万
  • 项目类别:
    Research Grant

相似海外基金

III: Small: 3D Graph Neural Networks: Completeness, Efficiency, and Applications
III:小:3D 图神经网络:完整性、效率和应用
  • 批准号:
    2243850
  • 财政年份:
    2023
  • 资助金额:
    $ 1.71万
  • 项目类别:
    Standard Grant
Linear and Non-linear Completeness
线性和非线性完整性
  • 批准号:
    2770849
  • 财政年份:
    2022
  • 资助金额:
    $ 1.71万
  • 项目类别:
    Studentship
Assessing completeness and accuracy of the EHRs harbored at BigMouth Dental Data Repository-Supplement
评估 BigMouth 牙科数据存储库补充的 EHR 的完整性和准确性
  • 批准号:
    10654981
  • 财政年份:
    2021
  • 资助金额:
    $ 1.71万
  • 项目类别:
Assessing completeness and accuracy of the EHRs harbored at BigMouth Dental Data Repository
评估 BigMouth 牙科数据存储库中保存的 EHR 的完整性和准确性
  • 批准号:
    10218506
  • 财政年份:
    2021
  • 资助金额:
    $ 1.71万
  • 项目类别:
Assessing completeness and accuracy of the EHRs harbored at BigMouth Dental Data Repository
评估 BigMouth 牙科数据存储库中保存的 EHR 的完整性和准确性
  • 批准号:
    10468940
  • 财政年份:
    2021
  • 资助金额:
    $ 1.71万
  • 项目类别:
Constructive Semantics and the Completeness Problem
构造语义和完整性问题
  • 批准号:
    421182908
  • 财政年份:
    2019
  • 资助金额:
    $ 1.71万
  • 项目类别:
    Research Grants
GoodReports: An online tool helping authors find and use reporting checklists to improve completeness of reporting
GoodReports:帮助作者查找和使用报告清单以提高报告完整性的在线工具
  • 批准号:
    MR/S036741/1
  • 财政年份:
    2019
  • 资助金额:
    $ 1.71万
  • 项目类别:
    Research Grant
III: Small: Methods for Auditing and Enhancing Completeness of Ontologies
III:小:审计和增强本体完整性的方法
  • 批准号:
    1931134
  • 财政年份:
    2019
  • 资助金额:
    $ 1.71万
  • 项目类别:
    Standard Grant
I-Corps: Data Completeness and Inconsistency Analysis Platform
I-Corps:数据完整性和不一致分析平台
  • 批准号:
    1928279
  • 财政年份:
    2019
  • 资助金额:
    $ 1.71万
  • 项目类别:
    Standard Grant
Evaluating the completeness of scanning in hand-held whole breast ultrasound exams
评估手持式全乳超声检查扫描的完整性
  • 批准号:
    10230372
  • 财政年份:
    2019
  • 资助金额:
    $ 1.71万
  • 项目类别:
{{ showInfoDetail.title }}

作者:{{ showInfoDetail.author }}

知道了