Search algorithms in type theory

Abstract In this paper, we take an abstract view of search by describing search procedures via particular kinds of proofs in type theory. We rely on the proofs-as-programs interpretation to extract programs from our proofs. Using these techniques we explore, in depth, a large family of search problems by parameterizing the specification of the problem. A constructive proof is presented which has as its computational content a correct search procedure for these problems. We show how a classical extension to an otherwise constructive system can be used to describe a typical use of the nonlocal control operator call/cc. Using the classical typing of nonlocal control we extend our purely constructive proof to incorporate a sophisticated backtracking technique known as ‘conflict-directed backjumping’ (CBJ). A variant of this proof is formalized in Nuprl yielding a correct-by-construction implementation of CBJ. The extracted program has been translated into Scheme and serves as the basis for an implementation of a new solution to the Hamiltonian circuit problem. This paper demonstrates a nontrivial application of the proofs-as-programs paradigm by applying the technique to the derivation of a sophisticated search algorithm; also, it shows the generality of the resulting implementation by demonstrating its application in a new problem domain for CBJ.

[1]  Judith L. Underwood,et al.  Aspects of the Computational Content of Proofs , 1994 .

[2]  Robert Harper,et al.  Typing first-class continuations in ML , 1991, POPL '91.

[3]  Ulrich Berger,et al.  Program Extraction from Classical Proofs , 1994, LCC.

[4]  Roberto J. Bayardo,et al.  Using CSP Look-Back Techniques to Solve Real-World SAT Instances , 1997, AAAI/IAAI.

[5]  A. B. Baker Intelligent backtracking on constraint satisfaction problems: experimental and theoretical results , 1995 .

[6]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[7]  Jean-François Puget,et al.  Applications of Constraint Programming , 1995, CP.

[8]  Douglas J. Howe Reasoning About Functional Programs in Nuprl , 1993, Functional Programming, Concurrency, Simulation and Automated Reasoning.

[9]  Peter C. Cheeseman,et al.  Where the Really Hard Problems Are , 1991, IJCAI.

[10]  Eugene C. Freuder,et al.  Contradicting Conventional Wisdom in Constraint Satisfaction , 1994, ECAI.

[11]  Michel Parigot,et al.  Lambda-Mu-Calculus: An Algorithmic Interpretation of Classical Natural Deduction , 1992, LPAR.

[12]  Daniel P. Friedman,et al.  Programming with Continuations , 1984 .

[13]  Chetan R. Murthy Extracting Constructive Content From Classical Proofs , 1990 .

[14]  James L. Caldwell,et al.  Moving proofs-as-programs into practice , 1997, Proceedings 12th IEEE International Conference Automated Software Engineering.

[15]  Roberto J. Bayardo,et al.  Using CSP Look-Back Techniques to Solve Exceptionally Hard SAT Instances , 1996, CP.

[16]  Olivier Danvy,et al.  Abstracting control , 1990, LISP and Functional Programming.

[17]  Barbara M. Smith,et al.  Sparse Constraint Graphs and Exceptionally Hard Problems , 1995, IJCAI.

[18]  Robert Pollack The theory of LEGO , 1995 .

[19]  Stefano Berardi,et al.  A Symmetric Lambda Calculus for Classical Program Extraction , 1994, Inf. Comput..

[20]  Thierry Coquand,et al.  The Calculus of Constructions , 1988, Inf. Comput..

[21]  Stefano Berardi,et al.  Witness extraction in classical logic through normalization , 1993 .

[22]  Douglas R. Smith,et al.  ITAS: A Portable, Interactive Transportation Scheduling Tool Using a Search Engine Generated from Formal Specifications , 1996, AIPS.

[23]  James L. Caldwell Classical Propositional Decidability via Nuprl Proof Extraction , 1998, TPHOLs.

[24]  J. Gaschnig Performance measurement and analysis of certain search algorithms. , 1979 .

[25]  Peter Norvig,et al.  Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp , 1991 .

[26]  Silvano Martello,et al.  Algorithm 595: An Enumerative Algorithm for Finding Hamiltonian Circuits in a Directed Graph , 1983, TOMS.

[27]  Patrick Prosser,et al.  HYBRID ALGORITHMS FOR THE CONSTRAINT SATISFACTION PROBLEM , 1993, Comput. Intell..

[28]  Friedrich L. Bauer,et al.  Revised report on the algorithm language ALGOL 60 , 1963, CACM.

[29]  D. H. Bartley,et al.  Revised4 report on the algorithmic language scheme , 1991, LIPO.

[30]  Douglas R. Smith,et al.  Synthesis of Planning and Scheduling Software , 1996 .

[31]  Timothy G. Griffin,et al.  A formulae-as-type notion of control , 1989, POPL '90.

[32]  Chetan R. Murthy An evaluation semantics for classical proofs , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[33]  Douglas J. Howe,et al.  Implementing Metamathematics as an Approach to Automatic Theorem Proving , 1989 .

[34]  Robert M. Haralick,et al.  Increasing Tree Search Efficiency for Constraint Satisfaction Problems , 1979, Artif. Intell..

[35]  Peter E. Lauer,et al.  Functional Programming, Concurrency, Simulation and Automated Reasoning , 1993, Lecture Notes in Computer Science.

[36]  Peter van Beek,et al.  A Theoretical Evaluation of Selected Backtracking Algorithms , 1995, IJCAI.

[37]  Ian P. Gent,et al.  The Logic of Search Algorithms: Theory and Applications , 1997, CP.

[38]  James R. Russell,et al.  A constructive proof of Higman's lemma , 1990, [1990] Proceedings. Fifth Annual IEEE Symposium on Logic in Computer Science.

[39]  Zhaohui Luo,et al.  Computation and reasoning - a type theory for computer science , 1994, International series of monographs on computer science.

[40]  Barbara M. Smith,et al.  The Phase Transition Behaviour of Maintaining Arc Consistency , 1996, ECAI.

[41]  Douglas R. Smith,et al.  A High-Level Derivation of Global Search Algorithms (with Constraint Propagation) , 1997, Sci. Comput. Program..

[42]  Robert Hieb,et al.  Continuations and concurrency , 1990, PPOPP '90.

[43]  Per Martin-Löf,et al.  Constructive mathematics and computer programming , 1984 .

[44]  Matthew L. Ginsberg,et al.  Dynamic Backtracking , 1993, J. Artif. Intell. Res..