public interface ReductionStrategy
SATProver
.traces: ResolutionTrace[]
nexts: IntSet[]
#traces = #nexts
no disj i,j: [0..#nexts) | traces[i] = traces[j] && nexts[i] = nexts[j]
SATProver.reduce(ReductionStrategy)
Modifier and Type | Method and Description |
---|---|
IntSet |
next(ResolutionTrace trace)
Returns the next subtrace of the specified trace to be analyzed, given
as a set of indices into the trace.
|
IntSet next(ResolutionTrace trace)
let t = this.traces[#this.traces-1], n = this.nexts[#this.nexts-1] |
unsat(t.elts[n].literals) =>
(all i: n.ints | let j = #{k: n.ints | k < i} | t.elts[i].equals(trace.elts[j]))
else
trace = t
let next = { i: int | 0 <= i < trace.size()-1 } |
trace.elts[next].antecedents in trace.elts[next] and
(some i: [0..#trace) | i !in next and no trace[i].antecedents) and
this.nexts' = this.nexts + #this.nexts->next and
this.traces' = this.traces + #this.traces->trace
© Emina Torlak 2005-present