Mixing Finite Success and Finite Failure in an Automated Prover

The operational semantics and typing of modern programming and specification languages are often defined using relations and proof systems. In simple settings, logic programming can be used to provide rather direct and natural interpreters for such operational semantics. More complex features of specifications such as names and their bindings, proof rules with negative premise, and the exhaustive enumeration of state spaces, all pose significant challenges to conventional logic programming systems. In this paper, we describe a simple architecture for the implementation of deduction systems that allows a specification to interleave both with finite success and finite failure. The implementation techniques for this prover are largely common ones from logic programming, i.e., logic variables, (higher-order pattern) unification, backtracking (using stream-based computation), and abstract syntax based on simply typed λ-terms. We present a particular instance of this prover architecture and its prototype implementation, based on a dual interpretation of (finite) success and failure in proof search. We discuss important differences between this prover and traditional logic programming and present an implementation of bisimulation checking for π-calculus, which cannot be so directly and declaratively done in traditional logic programming languages.

[1]  Lars Hallnäs,et al.  A Proof-Theoretic Approach to Logic Programming. II. Programs as Definitions , 1991, J. Log. Comput..

[2]  Dale Miller,et al.  A Game Semantics for Proof Search: Preliminary Results , 2005, MFPS.

[3]  Rocco De Nicola,et al.  A Symbolic Semantics for the pi-Calculus , 1996, Inf. Comput..

[4]  T. Nipkom Functional unification of higher-order patterns , 1993, LICS 1993.

[5]  Gérard P. Huet,et al.  A Unification Algorithm for Typed lambda-Calculus , 1975, Theor. Comput. Sci..

[6]  Dale Miller,et al.  Cut-elimination for a logic with definitions and induction , 2000, Theor. Comput. Sci..

[7]  Mads Dam,et al.  On the Structure of Inductive Reasoning: Circular and Tree-Shaped Proofs in the µ-Calculus , 2003, FoSSaCS.

[8]  Hubert Comon-Lundh,et al.  Equational Problems and Disunification , 1989, J. Symb. Comput..

[9]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[10]  Frank Pfenning,et al.  Higher-order pattern complement and the strict λ-calculus , 2003, TOCL.

[11]  Lars-Henrik Eriksson A Finitary Version of the Calculus of Partial Inductive Defintions , 1991, ELP.

[12]  G. Kreisel The Collected Papers of Gerhard Gentzen , 1971 .

[13]  J. Hannan,et al.  A logical framework for reasoning about logical specifications , 2004 .

[14]  Gerhard Gentzen,et al.  Investigations into Logical Deduction , 1970 .

[15]  Frank Pfenning,et al.  Tabled higher-order logic programming , 2003 .

[16]  Peter Schroeder-Heister,et al.  Rules of definitional reflection , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[17]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.

[18]  Dale Miller,et al.  A Logic Programming Language with Lambda-Abstraction, Function Variables, and Simple Unification , 1991, J. Log. Comput..

[19]  Gopalan Nadathur,et al.  Practical Higher-Order Pattern Unification with On-the-Fly Raising , 2005, ICLP.

[20]  Dale Miller,et al.  A Proof Search Specification of the π-Calculus , 2004 .

[21]  Gopalan Nadathur,et al.  A Notation for Lambda Terms: A Generalization of Environments , 1998, Theor. Comput. Sci..

[22]  Dale Miller,et al.  Unification Under a Mixed Prefix , 1992, J. Symb. Comput..

[23]  Dale Miller,et al.  A proof theory for generic judgments: an extended abstract , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[24]  Alwen Tiu Model Checking for π-Calculus Using Proof Search , 2005 .

[25]  Rocco De Nicola,et al.  A Symbolic Semantics for the π-calculus , 1994 .

[26]  Dale Miller,et al.  A proof theory for generic judgments , 2005, TOCL.

[27]  Robert F. Stärk Cut-Property and Negation as Failure , 1994, Int. J. Found. Comput. Sci..