Explicit representation of terms defined by counter examples
Journal of Automated Reasoning
Journal of Logic Programming
A transformational approach to negation in logic programming
Journal of Logic Programming
Negation and constraint logic programming
Information and Computation
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Reasoning with higher-order abstract syntax in a logical framework
ACM Transactions on Computational Logic (TOCL)
Types and programming languages
Types and programming languages
Symbolic Model Checking
Fixpoint semantics for logic programming a survey
Theoretical Computer Science
Combined Static and Dynamic Assertion-Based Debugging of Constraint Logic Programs
LOPSTR'99 Selected papers from the 9th International Workshop on Logic Programming Synthesis and Transformation
Efficient Model Checking Using Tabled Resolution
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
XMC: A Logic-Programming-Based Verification Toolset
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
Definitional Reflection and the Completion
ELP '93 Proceedings of the 4th International Workshop on Extensions of Logic Programming
Compilative Constructive Negation in Constraint Logic Programs
CAAP '94 Proceedings of the 19th International Colloquium on Trees in Algebra and Programming
Higher-order pattern complement and the strict λ-calculus
ACM Transactions on Computational Logic (TOCL)
Nominal logic, a first order theory of names and binding
Information and Computation - TACS 2001
Random Testing in Isabelle/HOL
SEFM '04 Proceedings of the Software Engineering and Formal Methods, Second International Conference
Theoretical Computer Science
On equivalence and canonical forms in the LF type theory
ACM Transactions on Computational Logic (TOCL)
Analyzing security protocols with secrecy types and logic programs
Journal of the ACM (JACM)
Nominal logic programming
Nominal rewriting with name generation: abstraction vs. locality
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
Scrap your nameplate: (functional pearl)
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
A proof theory for generic judgments
ACM Transactions on Computational Logic (TOCL)
Model checking for π-calculus using proof search
CONCUR 2005 - Concurrency Theory
Verifying Termination and Reduction Properties about Higher-Order Logic Programs
Journal of Automated Reasoning
Static typing for a faulty lambda calculus
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Answer set programming: a declarative approach to solving search problems
JELIA'06 Proceedings of the 10th European conference on Logics in Artificial Intelligence
The semantics of nominal logic programs
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Mechanized metatheory for the masses: the PoplMark challenge
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
A simpler proof theory for nominal logic
FOSSACS'05 Proceedings of the 8th international conference on Foundations of Software Science and Computation Structures
RTA'05 Proceedings of the 16th international conference on Term Rewriting and Applications
Efficient software model checking of soundness of type systems
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Electronic Notes in Theoretical Computer Science (ENTCS)
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
Run your research: on the effectiveness of lightweight mechanization
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Hi-index | 0.00 |
The problem of mechanically formalizing and proving metatheoretic properties of programming language calculi, type systems, operational semantics, and related formal systems has received considerable attention recently. However, the dual problem of searching for errors in such formalizations has received comparatively little attention. In this paper, we consider the problem of bounded model-checking for metatheoretic properties of formal systems specified using nominal logic. In contrast to the current state of the art for metatheory verification, our approach is fully automatic, does not require expertise in theorem proving on the part of the user, and produces counterexamples in the case that a flaw is detected. We present two implementations of this technique, one based on negation-as-failure and one based on negation elimination, along with experimental results showing that these techniques are fast enough to be used interactively to debug systems as they are developed.