clasp is an answer set solver for (extended) normal and disjunctive logic programs. It combines the high-level modeling capacities of ASP with state-of-the-art techniques from the area of Boolean constraint solving. The primary clasp algorithm relies on conflict-driven nogood learning, a technique that proved very successful for satisfiability checking (SAT). Unlike other learning ASP solvers, clasp does not rely on legacy software, such as a SAT solver or any other existing ASP solver. Rather, clasp has been genuinely developed for answer set solving based on conflict-driven nogood learning. clasp can be applied as an ASP solver (on aspif or smodels format, as output by gringo), as a SAT solver (on a simplified version of dimacs/CNF format), as a PB solver (on OPB format), or as a C++ library in another program.

clasp provides different reasoning modes and advanced features from Boolean constraint solving including:

  • Enumeration of (Projected) Solutions
  • Optimization of Solutions
  • Cautious and Brave Reasoning
  • Conflict-driven (and optionally multithreaded) search
  • Dedicated Propagation of Extended Rules (over Cardinality and Weight Constraints)
  • Equivalence Reasoning and Resolution-based Preprocessing




clasp reads problems either from stdin, e.g

gringo encoding.lp instance.lp | clasp

or from a given file, e.g

clasp ground/problem.asp


clasp --help

to get an overview of the most important options supported by clasp.