Logical Relations for Program Verification
Logical Relations for Program Verification
批准号:
EP/K023837/1
负责人:
Neil Ghani
金额:
$56.38万
依托单位国家:
英国
项目类别:
Research Grant
财政年份:
2013
资助国家:
英国
项目状态:
已结题
起止时间:
2013 至 --
中文摘要
点击翻译按钮获取中文摘要
英文摘要
In an economy as relentlessly digital as the modern worldwide one, inwhich everything from toasters to interpersonal communications toglobal financial services are computerised, the need for formallyverified software cannot be overestimated. Formal verification usesmathematical techniques to prove that programs actually perform thecomputations they are intended to perform (e.g., that text editorsreally do save files when a SAVE command is issued or that automaticpilots really do correctly execute flight plans) and also avoidperforming unintended ones (e.g., leaking credit card details orlaunching nuclear weapons without authorisation). Since programmersmake 15 to 50 errors per 1000 lines of code, and since repairing themaccounts for some 80% of project expenses, the ever-increasing sizeand sophistication of programs makes formal verification increasinglycritical to modern software development.Mathematical reasoning lies at the core of all formal verification,and so is crucial for building truly secure and reliable software.One of the key techniques for formally verifying properties ofsoftware systems uses logical relations. Logical relations provide ameans of deriving properties of a software system directly from thesystem itself; as a result, they can be used to prove importantproperties of programs, programming languages, and languageimplementations. Logical relations have been developed for corefragments of many modern programming languages and verificationsystems. They are currently extended to richer programming languagesand properties by constructing plausible variants of the definitionsof logical relations for appropriate core fragments and checking thatthe mathematical theory goes through. But as languages and propertiesto be proved have become increasingly sophisticated and expressive,this ad hoc approach has become both difficult and unsustainable. Ithas also led to an enormous constellation of complicated andnon-reusable logical relations that "work" for particular languagefeatures, rather than their principled and transferrable developmentfrom fundamental principles. In short, logical relations havestruggled to keep pace with developments in programming languages,with the obvious consequences for security and reliability of softwaresystems.We aim to revolutionise the landscape of logical relations byproviding framework for their development and use that is principled,conceptually simple, reusable, and uniform (rather than ad hoc). Ourframework will be capable of both describing the wide array of logicalrelations already used in existing applications and prescribing newlogical relations for future ones. It will be based on themathematical concept of comprehension for a fibration, which has not previously been identified as a key ingredient inthe construction of logical relations. Our use of it thusdistinguishes our framework from all other treatments of logicalrelations in the literature. Comprehension allows explicit representation of logical properties oflanguages within those languages themselves. This means that ourframework will be implementable, so we will produce a logic forderiving consequences of logical relations and a prototypeimplementation of that logic in a modern interactive theoremprover. This will allow users to experiment with our framework, andallow their experiences with it to feed back into itsfoundations. We will also apply our new framework for logicalrelations to cutting-edge problems that are the focus of activeresearch and for which there is presently no consensus on the wayforward. Successful application of our framework will show that it cansolve problems that are the focus of active research, aswell as open up unanticipated new research directions. Conversely, thepractical applications we pursue will raise challenges that prompt usto further refine its foundations
期刊论文(9)
专著(0)
科研奖励(0)
会议论文
登录
查看更多内容
DOI:
10.1016/j.tcs.2018.05.026
发表时间:
2018-09-12
期刊:
THEORETICAL COMPUTER SCIENCE
影响因子:
1.1
作者:
[Ghani, Neil, Kupke, Clemens, Forsberg, Fredrik Nordvall]
通讯作者:
Forsberg, Fredrik Nordvall
DOI:
10.2168/lmcs-11(1:13)2015
发表时间:
2015
期刊:
Logical Methods in Computer Science
影响因子:
0.6
作者:
[Ghani N]
通讯作者:
Ghani N
DOI:
--
发表时间:
2017
期刊:
Leibniz International Proceedings in Informatics, LIPIcs
影响因子:
--
作者:
[Ghani N.]
通讯作者:
Ghani N.
DOI:
10.1145/2535838.2535852
发表时间:
2014-01-01
期刊:
ACM SIGPLAN NOTICES
影响因子:
--
作者:
[Atkey, Robert, Ghani, Neil, Johann, Patricia]
通讯作者:
Johann, Patricia
DOI:
10.1016/j.entcs.2015.12.011
发表时间:
2015-12-21
期刊:
ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE
影响因子:
--
作者:
[Ghani, Neil, Johann, Patricia, Revell, Tim]
通讯作者:
Revell, Tim
共 7 条
Homotopy Type Theory: Programming and Verification
-
批准号:EP/M016951/1
-
项目类别:Research Grant
-
资助金额:$63.66万
-
财政年份:2015
-
负责人:Neil Ghani
-
依托单位:
Reusability and Dependent Types
-
批准号:EP/G034699/1
-
项目类别:Research Grant
-
资助金额:$18.89万
-
财政年份:2009
-
负责人:Neil Ghani
-
依托单位:
Theory And Applications of Induction Recursion
-
批准号:EP/G033056/1
-
项目类别:Research Grant
-
资助金额:$39.62万
-
财政年份:2009
-
负责人:Neil Ghani
-
依托单位:
海外基金