Affiliation:
1. Inria Saclay & LIX, École Polytechnique, 1 rue Honoré d’Estienne d’Orves, Bâtiment Alan Turing, 91120, Palaiseau, France
Abstract
Abstract
In a world where trusting software systems is increasingly important, formal methods and formal proof can help provide some basis for trust. Proof checking can help to reduce the size of the
trusted base
since we do not need to trust an entire theorem prover: instead, we only need to trust a (smaller and simpler) proof checker. Many approaches to building proof checkers require embedding within them a full programming language. In most modern proof checkers and theorem provers, that programming language is a functional programming language, often a variant of ML. In fact, aspects of ML (e.g., strong typing, abstract datatypes, and higher-order programming) were designed to make ML a trustworthy “meta-language” for checking proofs. While there is considerable overlap between logic programming and proof checking (e.g., both benefit from unification, backtracking search, efficient term structures, etc.), the discipline of logic programming has, in fact, played a minor role in the history of proof checking. I will argue that logic programming can have a major role in the future of this important topic.
Funder
European Research Council
Publisher
Association for Computing Machinery (ACM)
Subject
Theoretical Computer Science,Software
Reference60 articles.
1. Logic Programming with Focusing Proofs in Linear Logic
2. Assaf A (2015) A framework for defining computational higher-order logics. PhD thesis École Polytechnique
3. Baelde D (2012) Least and greatest fixed points in linear logic. ACM Trans Comput Logic 13(1)
4. Baelde D Chaudhuri K Gacek A Miller D Nadathur G Tiu A Wang Y (2014) Abella: a system for reasoning about relational specifications. J Formal Reas 7(2)
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献