Skip to content

Commit b6b90d6

Browse files
author
Martin Blicha
committed
removing the now redundant parameter of CoreSMTSolver::addOriginalClause_
1 parent 6bbfd27 commit b6b90d6

File tree

5 files changed

+11
-25
lines changed

5 files changed

+11
-25
lines changed

src/cnfizers/Cnfizer.cc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -430,8 +430,7 @@ bool Cnfizer::addClause(const vec<Lit> & c_in)
430430
}
431431

432432
#endif
433-
opensmt::pair<CRef, CRef> iorefs{CRef_Undef, CRef_Undef};
434-
bool res = solver.addOriginalSMTClause(c, iorefs);
433+
bool res = solver.addOriginalSMTClause(c);
435434
return res;
436435
}
437436
//

src/smtsolvers/CoreSMTSolver.cc

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -269,17 +269,9 @@ Var CoreSMTSolver::newVar(bool sign, bool dvar)
269269
return v;
270270
}
271271

272-
273272
bool CoreSMTSolver::addOriginalClause_(const vec<Lit> & _ps)
274-
{
275-
opensmt::pair<CRef, CRef> fake;
276-
return addOriginalClause_(_ps, fake);
277-
}
278-
279-
bool CoreSMTSolver::addOriginalClause_(const vec<Lit> & _ps, opensmt::pair<CRef, CRef> & inOutCRefs)
280273
{
281274
assert(decisionLevel() == 0);
282-
inOutCRefs = {CRef_Undef, CRef_Undef};
283275
if (!isOK()) { return false; }
284276
bool logsProofForInterpolation = this->logsProofForInterpolation();
285277
vec<Lit> ps;
@@ -307,16 +299,16 @@ bool CoreSMTSolver::addOriginalClause_(const vec<Lit> & _ps, opensmt::pair<CRef,
307299
}
308300
}
309301
ps.shrink(i - j);
302+
CRef clauseToInsert = CRef_Undef;
310303
if (logsProofForInterpolation) {
311304
vec<Lit> original;
312305
ps.copyTo(original);
313306
for(Lit l : resolvedUnits) {
314307
original.push(l);
315308
}
316309
CRef inputClause = ca.alloc(original, false);
317-
CRef outputClause = resolvedUnits.empty() ? inputClause :
310+
clauseToInsert = resolvedUnits.empty() ? inputClause :
318311
ps.size() == 0 ? CRef_Undef : ca.alloc(ps, false);
319-
inOutCRefs = {inputClause, outputClause};
320312
proof->newOriginalClause(inputClause);
321313
if (!resolvedUnits.empty()) {
322314
proof->beginChain( inputClause );
@@ -325,7 +317,7 @@ bool CoreSMTSolver::addOriginalClause_(const vec<Lit> & _ps, opensmt::pair<CRef,
325317
assert(reason(v) != CRef_Undef);
326318
proof->addResolutionStep(reason(v), v);
327319
}
328-
proof->endChain(outputClause);
320+
proof->endChain(clauseToInsert);
329321
}
330322
}
331323
if (ps.size() == 0) {
@@ -334,7 +326,7 @@ bool CoreSMTSolver::addOriginalClause_(const vec<Lit> & _ps, opensmt::pair<CRef,
334326
if (ps.size() == 1)
335327
{
336328
assert(value(ps[0]) == l_Undef);
337-
CRef reasonForAssignment = inOutCRefs.second;
329+
CRef reasonForAssignment = clauseToInsert;
338330
assert((logsProofForInterpolation && reasonForAssignment != CRef_Undef) || (!logsProofForInterpolation && reasonForAssignment == CRef_Undef));
339331
uncheckedEnqueue(ps[0], reasonForAssignment);
340332
CRef confl = propagate();
@@ -343,8 +335,7 @@ bool CoreSMTSolver::addOriginalClause_(const vec<Lit> & _ps, opensmt::pair<CRef,
343335
}
344336
else
345337
{
346-
CRef clauseToAttach = logsProofForInterpolation ? inOutCRefs.second : ca.alloc(ps, false);
347-
inOutCRefs.second = clauseToAttach;
338+
CRef clauseToAttach = logsProofForInterpolation ? clauseToInsert : ca.alloc(ps, false);
348339
clauses.push(clauseToAttach);
349340
attachClause(clauseToAttach);
350341
// MB: TODO: remove this undo_stack

src/smtsolvers/CoreSMTSolver.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,6 @@ class CoreSMTSolver
255255
bool addOriginalClause(Lit p, Lit q, Lit r); // Add a ternary clause to the solver.
256256
protected:
257257
bool addOriginalClause_(const vec<Lit> & _ps); // Add a clause to the solver
258-
bool addOriginalClause_(const vec<Lit> & _ps, opensmt::pair<CRef, CRef> & inOutCRefs); // Add a clause to the solver without making superflous internal copy. Will change the passed vector 'ps'. Write the new clause to cr
259258
public:
260259
// Solving:
261260
//

src/smtsolvers/SimpSMTSolver.cc

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,8 @@ lbool SimpSMTSolver::solve_(bool do_simp, bool turn_off_simp)
184184
//=================================================================================================
185185
// Added code
186186

187-
bool SimpSMTSolver::addOriginalSMTClause(const vec<Lit> & smt_clause, opensmt::pair<CRef, CRef> & inOutCRefs)
187+
bool SimpSMTSolver::addOriginalSMTClause(const vec<Lit> & smt_clause)
188188
{
189-
inOutCRefs = {CRef_Undef, CRef_Undef};
190189
assert( config.sat_preprocess_theory == 0 );
191190

192191
// Check that the variables exist in the solver
@@ -213,7 +212,7 @@ bool SimpSMTSolver::addOriginalSMTClause(const vec<Lit> & smt_clause, opensmt::p
213212
cerr << "XXX skipped handling of unary theory literal?" << endl;
214213
}
215214
int nclauses = clauses.size();
216-
if (!CoreSMTSolver::addOriginalClause_(smt_clause, inOutCRefs))
215+
if (!CoreSMTSolver::addOriginalClause_(smt_clause))
217216
return false;
218217

219218
if (use_simplification && clauses.size() == nclauses + 1)
@@ -622,8 +621,7 @@ bool SimpSMTSolver::eliminateVar(Var v)
622621
vec<Lit>& resolvent = add_tmp;
623622
for (int i = 0; i < pos.size(); i++) {
624623
for (int j = 0; j < neg.size(); j++) {
625-
opensmt::pair<CRef,CRef> dummy {CRef_Undef, CRef_Undef};
626-
if (merge(ca[pos[i]], ca[neg[j]], v, resolvent) && !addOriginalSMTClause(resolvent, dummy))
624+
if (merge(ca[pos[i]], ca[neg[j]], v, resolvent) && !addOriginalSMTClause(resolvent))
627625
return false;
628626
}
629627
}
@@ -665,8 +663,7 @@ bool SimpSMTSolver::substitute(Var v, Lit x)
665663

666664
removeClause(cls[i]);
667665

668-
opensmt::pair<CRef,CRef> dummy {CRef_Undef, CRef_Undef};
669-
if (!addOriginalSMTClause(subst_clause, dummy))
666+
if (!addOriginalSMTClause(subst_clause))
670667
return ok = false;
671668
}
672669

src/smtsolvers/SimpSMTSolver.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class SimpSMTSolver : public CoreSMTSolver
6363
//
6464
Var newVar (bool polarity = true, bool dvar = true) override;
6565

66-
bool addOriginalSMTClause(const vec<Lit> & smt_clause, opensmt::pair<CRef, CRef> & inOutCRefs);
66+
bool addOriginalSMTClause(const vec<Lit> & smt_clause);
6767
public:
6868

6969
bool substitute(Var v, Lit x); // Replace all occurences of v with x (may cause a contradiction).

0 commit comments

Comments
 (0)