Semseter Project: Generalized Computational Caching
Problem Description
In building a cache for Satisfiability, it is necessary to have a standard input
formal for describing SAT problems. The language most widely used by SAT solvers is DIMACS.
Truth value assignments
If the cache can return one or more thruth value assignments, then types must be
defined for an assignment and for a set of assginments.
Cache Query API
A simple API for a SAT Cache can consist of this one function:
Query(P)
Submit a SAT problem P (presumably as a DIMACS file or equivalent representation)
to the cache and recieve one of these responses:
- Cache miss.
- Answer is easy to determine using sepcified method.
- Cache hit with a truth value response (0 means unsatisfiable, 1 means satisfiable)
- Cache hit with one or more satisfying assignments.
- Cache hit with all satisfying assignments.
Cache Assertion API
If external loading of the cache is allowed, these additional functions
can be implemented.
Assert_sat(P, v)
Assert that satisfiability of problem P has truth value v.
Assert_soln(P, a)
Assert that truth value assignment a satisfies problem P.
Assert_easy(P, m)
Assert that determining the solvability of P is easy using method m.