kodkod.engine.ucore
Class DistExtremumCRRStrategy

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

public final class DistExtremumCRRStrategy
extends CRRStrategy

A cnf-level CRR strategy that uses a distance 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 closest to or furthest from the conflict close. (A clause is considered to be furthest from the conflict if its shortest path to the conflict is longer than all other clauses' shortest paths to the conflict.)

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
DistExtremumCRRStrategy(boolean closest)
          Constructs a new instance of DistExtremumCRRStrategy that picks either the closest (closest = true) or furthest clause from the conflict (closest = false).
 
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

DistExtremumCRRStrategy

public DistExtremumCRRStrategy(boolean closest)
Constructs a new instance of DistExtremumCRRStrategy that picks either the closest (closest = true) or furthest clause from the conflict (closest = false).