Abstract
In a world where trusting software systems is increasingly important, formal methods and formal proof can help provide trustable foundations. Proof checking can help to reduce the size of the trusted base since we do not need to trust an entire theorem prover if we can check the proofs they produce by a trusted and smaller checker. Many approaches to building proof checkers require embedding within them a full programming language. In most many modern proof checkers and theorem provers, that programming language is a functional programming language, often a variant of ML. In fact, parts of ML e.g., strong typing, abstract datatypes, and higher-order programming were designed to make ML into a trustworthy meta-language for checking proofs. While there is considerable overlap in the foundations of logic programming and proof checking 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. Ii¾źwill argue that logic programming can have a major role in the future of this important topic.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.