kodkod.engine.ucore
Class FreqExtremumCRRStrategy

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

public class FreqExtremumCRRStrategy
extends CRRStrategy

A cnf-level CRR strategy that uses a frequency heuristic to pick the clauses to be excluded from the core. Instances of this strategy can be configured to pick the clause that is either least or most present in a resolution trace. A clause is considered to be least present in a trace if it has the least number of ancestors; conversely, a clause is most present if it has the greatest number of ancestors.

Author:
Emina Torlak
invariant:
traces.ResolutionTrace = nexts.Set
all i: [1..) | some traces[i] => some traces[i-1]
all i: [0..#nexts) | nexts[i] in traces[i].conflict.^antecedents
no disj i,j: [0..#nexts) | traces[i] = traces[j] && nexts[i] = nexts[j]
specfield:
traces: [0..)->ResolutionTrace
nexts: [0..)->Set

Constructor Summary
FreqExtremumCRRStrategy(boolean leastFreq)
          Constructs a new instance of DistExtremumCRRStrategy that picks either the least (leastFreq = true) or most (leastFreq = false) frequent clause in a given trace..
 
Method Summary
 
Methods inherited from class kodkod.engine.ucore.CRRStrategy
next
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FreqExtremumCRRStrategy

public FreqExtremumCRRStrategy(boolean leastFreq)
Constructs a new instance of DistExtremumCRRStrategy that picks either the least (leastFreq = true) or most (leastFreq = false) frequent clause in a given trace..