Denotational and operational semantics for Prolog
Journal of Logic Programming
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Simple operational and denotational semantics for Prolog with cut
Theoretical Computer Science - Special issue on the Second French-Soviet Workshop on Methods of Compilation and Program Construction, Nice, France, Feb. 1988
Comparative semantics for PROLOG with cut
Science of Computer Programming
On the semantics of logic programs
Proceedings of the 18th international colloquium on Automata, languages and programming
Magic templates: a spellbinding approach to logic programs
Journal of Logic Programming
Deriving descriptions of possible values of program variables by means of abstract interpretation
Journal of Logic Programming
Compile-time derivation of variable dependency using abstract interpretation
Journal of Logic Programming
A general framework for semantics-based bottom-up abstract interpretation of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Bottom-up abstract interpretation of logic programs
Theoretical Computer Science
Handbook of logic in computer science (vol. 3)
Global analysis of constraint logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Semantics of Predicate Logic as a Programming Language
Journal of the ACM (JACM)
Systematic design of program analysis frameworks
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Abstract Interpretation of Declarative Languages
Abstract Interpretation of Declarative Languages
Verification of Compiler Correctness for the WAM
TPHOLs '96 Proceedings of the 9th International Conference on Theorem Proving in Higher Order Logics
Lambda-Prolog: An Extended Logic Programming Language
Proceedings of the 9th International Conference on Automated Deduction
Abstract interpretation for constraint handling rules
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
A backward analysis for constraint logic programs
Theory and Practice of Logic Programming
Extracting a data flow analyser in constructive logic
Theoretical Computer Science - Applied semantics: Selected topics
Proof-carrying code from certified abstract interpretation and fixpoint compression
Theoretical Computer Science - Applied semantics
Fixed point semantics and partial recursion in Coq
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Parametric higher-order abstract syntax for mechanized semantics
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
The Four Colour Theorem: Engineering of a Formal Proof
Computer Mathematics
Formal verification of a realistic compiler
Communications of the ACM - Barbara Liskov: ACM's A.M. Turing Award Winner
Certified Static Analysis by Abstract Interpretation
Foundations of Security Analysis and Design V
Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Some Domain Theory and Denotational Semantics in Coq
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
seL4: formal verification of an operating-system kernel
Communications of the ACM
A certified denotational abstract interpreter
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
A simple correctness proof for magic transformation
Theory and Practice of Logic Programming
A machine-checked proof of the odd order theorem
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Hi-index | 0.00 |
Basing program analyses on formal semantics has a long and successful tradition in the logic programming paradigm. These analyses rely on results about the relative correctness of mathematically sophisticated semantics, and authors of such analyses often invest considerable effort into establishing these results. The development of interactive theorem provers such as Coq and their recent successes both in the field of program verification as well as in mathematics, poses the question whether these tools can be usefully deployed in logic programming. This paper presents formalisations in Coq of several general results about the correctness of semantics in different styles; forward and backward, top-down and bottom-up. The results chosen are paradigmatic of the kind of correctness theorems that semantic analyses rely on and are therefore well-suited to explore the possibilities afforded by the application of interactive theorem provers to this task, as well as the difficulties likely to be encountered in the endeavour. It turns out that the advantages offered by moving to a functional setting, including the possibility to apply higher-order abstract syntax, are considerable.