Computer Aided Verification

Volume 2102 of the series Lecture Notes in Computer Science pp 246-249


ICS: Integrated Canonizer and Solver?

  • Jean-Christophe FilliâtreAffiliated withLRI, URA 410 CNRS Bat 490, Université Paris
  • , Sam OwreAffiliated withComputer Science Laboratory SRI International
  • , Harald Rue*BAffiliated withComputer Science Laboratory SRI International
  • , Natarajan ShankarAffiliated withComputer Science Laboratory SRI International

* Final gross prices may vary according to local VAT.

Get Access


Decision procedures are at the core of many industrial-strength verification systems such as ACL2 [KM97], PVS [ORS92], or STeP [MtSg96]. Effective use of decision procedures in these verification systems require the management of large assertional contexts. Many existing decision procedures, however, lack an appropriate API for managing contexts and efficiently switching between contexts, since they are typically used in a fire-and-forget environment.

ICS (Integrated Canonizer and Solver) is a decision procedure developed at SRI International. It does not only efficiently decide formulas in a useful combination of theories but it also provides an API that makes it suitable for use in applications with highly dynamic environments such as proof search or symbolic simulation.

The theory decided by ICS is a quantifier-free, first-order theory with uninterpreted function symbols and a rich combination of datatype theories including arithmetic, tuples, arrays, sets, and bit-vectors. This theory is particularly interesting for many applications in the realm of software and hardware verification. Combinations of a multitude of datatypes occur naturally in system specifications and the use of uninterpreted function symbols have proven to be essential for many real-world verifications.