We present the architecture of a high-performance constraint solver R-Solve that extends the gains made in SAT performance over the past fifteen years on static decision problems to problems that require on-the-fly adaptation, solution space exploration and optimization. R-Solve facilitates collaborative parallel solving and provides an efficient system for unrestricted incremental solving via Smart Repair. R-Solve can address problems in dynamic planning and constrained optimization involving complex logical and arithmetic constraints.
Please help me write a proper abstract based on the patent claims. CLAIM: 1-16. (canceled) 17. A method for facilitating communication between a solver and a controller, the method comprising: integrating an application program interface (API) with a solver, the API comprising: a first transmit function to notify the controller a clause learned by the solver; a receive function to receive from the controller at least one of: (i) one or more clauses to be added to a solver database, and (ii) one or more clauses to be removed from the solver database. 18. The method of claim 17, wherein the first transmit function is further configured to notify the controller by the solver at least one antecedent clause of the clause learned by the solver. 19. The method of claim 17, further comprising invoking the first transmit function by the solver when a learnt clauses buffer reaches a limit on number of learnt clauses. 20. The method of claim 17, further comprising processing by the solver one or more received clauses while the solver is running. 21. The method of claim 17, further comprising processing by the solver one or more received clauses after the solver has stopped running, before the solver starts running again. 22. The method of claim 17, wherein the API further comprises: a second transmit function to notify to the controller a clause to be shared by the controller with one or more other solvers. 23. The method of claim 22, further comprising invoking the second transmit function by the solver when a sharable clauses buffer reaches a limit on number of clauses to be shared. 24-39. (canceled) 40. An interface system for facilitating communication between a solver and a controller, comprising: a memory module comprising instructions which, when executed by a processor configured as a solver, provide an application program interface (API) to the solver, the API comprising: a first transmit function to notify the controller a clause learned by the solver; a receive function to receive from the controller at least one of: (i) one or more clauses to be added to a solver database, and (ii) one or more clauses to be removed from the solver database. 41. The system of claim 40, wherein the first transmit function is further configured to notify the controller by the solver at least one antecedent clause of the clause learned by the solver. 42. The system of claim 40, further comprising a solver configured to invoke the first transmit function when a learnt clauses buffer reaches a limit on number of learnt clauses. 43. The system of claim 40, further comprising a solver configured to process one or more received clauses while the solver is running. 44. The system of claim 40, further comprising a solver configured to process one or more received clauses after the solver has stopped running, before the solver starts running again. 45. The system of claim 40, wherein the API further comprises: a second transmit function to notify to the controller a clause to be shared by the controller with one or more other solvers. 46. The system of claim 45, further comprising a solver configured to invoke the second transmit function when a sharable clauses buffer reaches a limit on number of clauses to be shared.