The Interface is the Message


Authors

Harald Rueß and Natarajan Shankar

Abstract

A decision procedure for the satisfiability (validity) problem is a total predicate on a class of formulas that determines whether a given formula is satisfiable. It might seem that a simple binary interface for a decision procedure as a function that takes a formula and returns $\mathit{Yes}$ or $\mathit{No}$ according to whether the formula is satisfiable, would be adequate. On the contrary, we have observed that decision procedures need rich interfaces in order to be deployed most effectively. Decision procedures are frequently used in an online manner so that atomic formulas are added to a context incrementally, and claims are tested against the context. The application programmer interface (API) should include operations for asserting and retracting information, testing claims, and for creating, deleting, and browsing contexts. The decision procedures might need to exchange information with other inference procedures such as a rewriter, typechecker, or an external constraint solver. We discuss the basic issues in the design of modular interfaces for decision procedures that allow a rich range of interactions with other decision procedures and external applications. Our experience includes the integration of ground decision procedures, BDD packages, model checkers, and rewriters into PVS, and with the integration of ground decision procedures with SAT solving. The discussion here is mostly centered around the design of the API for ICS.

gzipped postscript

BibTeX Entry

@inproceedings{RuessShankar:QPQ03,
  TITLE = {The Interface is the Message}
  AUTHOR = {Harald Rue{\ss} and Natarajan Shankar},
  BOOKTITLE = {Proceedings of the First QPQ Workshop on Deductive Software Components},
  YEAR = {2003},
  MONTH = {July}, 
  ADDRESS = {Miami, Floria},
  URL = {http://www.qpq.org} 
}

Harald Ruess: ruess@csl.sri.com