kodkod.engine.ucore
Class MinTopStrategy

java.lang.Object
  extended by kodkod.engine.ucore.MinTopStrategy
All Implemented Interfaces:
ReductionStrategy

public class MinTopStrategy
extends java.lang.Object
implements ReductionStrategy

A strategy for generating unsat cores that are minimal at the logic level. Specifically, let C be a core that is minimal according to this strategy, and let F(C) be the top-level logic constraints corresponding to C. Then, this strategy guarantees that there is no clause c in C such that F(C - c) is a strict subset of F(C). Furthermore, it also guarantees that for all f in F(C), F(C) - f is satisfiable. This is a stronger guarantee than that of HybridStrategy. In general, using this strategy is more expensive, timewise, than using HybridStrategy.

This strategy will work properly only on CNFs generated by the kodkod Translator.

Author:
Emina Torlak
See Also:
HybridStrategy

Constructor Summary
MinTopStrategy(TranslationLog log)
          Constructs a min top strategy that will use the given translation log to relate the cnf clauses back to the logic constraints from which they were generated.
 
Method Summary
 IntSet next(ResolutionTrace trace)
          Returns the next subtrace of the specified trace to be analyzed, given as a set of indices into the trace.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MinTopStrategy

public MinTopStrategy(TranslationLog log)
Constructs a min top strategy that will use the given translation log to relate the cnf clauses back to the logic constraints from which they were generated.

Method Detail

next

public IntSet next(ResolutionTrace trace)
Returns the next subtrace of the specified trace to be analyzed, given as a set of indices into the trace. If there are no more subtraces to be analyzed (i.e. the given trace is minimal according to the minimality measure used by this strategy), returns the empty set.

Specified by:
next in interface ReductionStrategy
Returns:
this.nexts'[#this.nexts-1]
See Also:
ReductionStrategy.next(kodkod.engine.satlab.ResolutionTrace)