10. A computerized method of performing predicate abstraction for a computer program, the method comprising: in a saturation-based symbolic decision procedure module, receiving a first set of predicates and a goal expression for the computer program, the saturation-based symbolic decision procedure module comprising a combined saturation-based symbolic decision procedure created from modularly combining two or more saturation-based symbolic decision procedures having different logics with different inference rules, the combined saturation-based symbolic decision procedure comprising a set of inference rules; storing the goal expression in computer memory; in the saturation-based symbolic decision procedure module, using the combined saturation-based symbolic decision procedure to symbolically derive a set of derived predicates for the set of inference rules, wherein each predicate out of the set of derived predicates is derived from iterative application of the set of inference rules to the first set of predicates and to predicates which have already been derived in the set of derived predicates until no new predicates are derived; generating a tree data structure comprising the first set of predicates and derived predicates for the set of inference rules; and based at least in part on the tree data structure generated for the combined saturation-based symbolic decision procedure comprising the derived predicates, extracting a predicate abstraction for the computer program, the predicate abstraction comprising the derived predicates inconsistent with the goal expression according to the different logics.
12. The method of claim 10 wherein the extracting the predicate abstraction for the computer program is further based on a binary decision diagram.