Skip to content

Commit 3de6faa

Browse files
author
Daniel Kroening
authored
Merge pull request #412 from thk123/lint/qbf
Addressing linting errors in solvers/qbf
2 parents 4205d75 + dd358a4 commit 3de6faa

13 files changed

+197
-167
lines changed

src/solvers/qbf/qbf_bdd_core.cpp

+87-73
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,28 @@ Author: CM Wintersteiger
1414

1515
#include <langapi/language_util.h>
1616

17+
#include <solvers/prop/literal.h>
18+
1719
#include <cuddObj.hh> // CUDD Library
1820

1921
/*! \cond */
2022
// FIX FOR THE CUDD LIBRARY
2123

22-
inline DdNode *
23-
DD::getNode() const
24+
/*******************************************************************\
25+
26+
Function: DD::getNode
27+
28+
Inputs:
29+
30+
Outputs:
31+
32+
Purpose:
33+
34+
\*******************************************************************/
35+
36+
inline DdNode *DD::getNode() const
2437
{
2538
return node;
26-
2739
} // DD::getNode
2840
/*! \endcond */
2941

@@ -44,7 +56,7 @@ Function: qbf_bdd_certificatet::qbf_bdd_certificatet
4456

4557
qbf_bdd_certificatet::qbf_bdd_certificatet(void) : qdimacs_coret()
4658
{
47-
bdd_manager=new Cudd(0,0);
59+
bdd_manager=new Cudd(0, 0);
4860
}
4961

5062
/*******************************************************************\
@@ -61,11 +73,10 @@ Function: qbf_bdd_certificatet::~qbf_bdd_certificatet
6173

6274
qbf_bdd_certificatet::~qbf_bdd_certificatet(void)
6375
{
64-
for(model_bddst::iterator it=model_bdds.begin();
65-
it!=model_bdds.end();
66-
it++)
76+
for(const BDD* model : model_bdds)
6777
{
68-
if(*it!=NULL) { delete(*it); *it=NULL; }
78+
if(model)
79+
delete model;
6980
}
7081
model_bdds.clear();
7182

@@ -127,16 +138,18 @@ Function: qbf_bdd_coret::~qbf_bdd_coret
127138

128139
qbf_bdd_coret::~qbf_bdd_coret()
129140
{
130-
for(bdd_variable_mapt::iterator it=bdd_variable_map.begin();
131-
it!=bdd_variable_map.end();
132-
it++)
141+
for(const BDD* variable : bdd_variable_map)
133142
{
134-
if (*it) { delete(*it); *it=NULL; }
143+
if(variable)
144+
delete variable;
135145
}
136146
bdd_variable_map.clear();
137147

138-
if(matrix) delete(matrix);
139-
matrix=NULL;
148+
if(matrix)
149+
{
150+
delete(matrix);
151+
matrix=NULL;
152+
}
140153
}
141154

142155
/*******************************************************************\
@@ -189,17 +202,15 @@ Function: qbf_bdd_coret::prop_solve
189202
propt::resultt qbf_bdd_coret::prop_solve()
190203
{
191204
{
192-
std::string msg=
193-
solver_text() + ": "+
194-
std::to_string(no_variables())+" variables, "+
195-
std::to_string(matrix->nodeCount())+" nodes";
196-
messaget::status() << msg << messaget::eom;
205+
status() << solver_text() << ": "
206+
<< std::to_string(no_variables()) << " variables, "
207+
<< std::to_string(matrix->nodeCount()) << " nodes" << eom;
197208
}
198209

199210
model_bdds.resize(no_variables()+1, NULL);
200211

201212
// Eliminate variables
202-
for(quantifierst::const_reverse_iterator it=quantifiers.rbegin();
213+
for(auto it=quantifiers.rbegin();
203214
it!=quantifiers.rend();
204215
it++)
205216
{
@@ -212,13 +223,14 @@ propt::resultt qbf_bdd_coret::prop_solve()
212223
matrix->nodeCount() << " nodes" << std::endl;
213224
#endif
214225

215-
BDD* model = new BDD();
226+
BDD *model=new BDD();
216227
const BDD &varbdd=*bdd_variable_map[var];
217-
*model = matrix->AndAbstract(varbdd.Xnor(bdd_manager->bddOne()),
218-
varbdd);
228+
*model=matrix->AndAbstract(
229+
varbdd.Xnor(bdd_manager->bddOne()),
230+
varbdd);
219231
model_bdds[var]=model;
220232

221-
*matrix = matrix->ExistAbstract(*bdd_variable_map[var]);
233+
*matrix=matrix->ExistAbstract(*bdd_variable_map[var]);
222234
}
223235
else if(it->type==quantifiert::UNIVERSAL)
224236
{
@@ -227,10 +239,10 @@ propt::resultt qbf_bdd_coret::prop_solve()
227239
matrix->nodeCount() << " nodes" << std::endl;
228240
#endif
229241

230-
*matrix = matrix->UnivAbstract(*bdd_variable_map[var]);
242+
*matrix=matrix->UnivAbstract(*bdd_variable_map[var]);
231243
}
232244
else
233-
throw ("Unquantified variable");
245+
throw "unquantified variable";
234246
}
235247

236248
if(*matrix==bdd_manager->bddOne())
@@ -261,7 +273,7 @@ Function: qbf_bdd_coret::is_in_core
261273

262274
bool qbf_bdd_coret::is_in_core(literalt l) const
263275
{
264-
throw ("NYI");
276+
throw "nyi";
265277
}
266278

267279
/*******************************************************************\
@@ -278,7 +290,7 @@ Function: qbf_bdd_coret::m_get
278290

279291
qdimacs_coret::modeltypet qbf_bdd_coret::m_get(literalt a) const
280292
{
281-
throw ("NYI");
293+
throw "nyi";
282294
}
283295

284296
/*******************************************************************\
@@ -299,7 +311,7 @@ literalt qbf_bdd_coret::new_variable()
299311

300312
bdd_variable_map.resize(res.var_no()+1, NULL);
301313
BDD &var=*(new BDD());
302-
var = bdd_manager->bddVar();
314+
var=bdd_manager->bddVar();
303315
bdd_variable_map[res.var_no()]=&var;
304316

305317
return res;
@@ -326,17 +338,17 @@ void qbf_bdd_coret::lcnf(const bvt &bv)
326338

327339
BDD clause(bdd_manager->bddZero());
328340

329-
for(unsigned long i=0; i<new_bv.size(); i++)
341+
for(const literalt &l : new_bv)
330342
{
331-
literalt l=new_bv[i];
332343
BDD v(*bdd_variable_map[l.var_no()]);
333344

334-
if(l.sign()) v = ~v;
345+
if(l.sign())
346+
v=~v;
335347

336-
clause |= v;
348+
clause|=v;
337349
}
338350

339-
*matrix &= clause;
351+
*matrix&=clause;
340352
}
341353

342354
/*******************************************************************\
@@ -353,15 +365,17 @@ Function: qbf_bdd_coret::lor
353365

354366
literalt qbf_bdd_coret::lor(literalt a, literalt b)
355367
{
356-
literalt nl = new_variable();
368+
literalt nl=new_variable();
357369

358370
BDD abdd(*bdd_variable_map[a.var_no()]);
359371
BDD bbdd(*bdd_variable_map[b.var_no()]);
360372

361-
if(a.sign()) abdd = ~abdd;
362-
if(b.sign()) bbdd = ~bbdd;
373+
if(a.sign())
374+
abdd=~abdd;
375+
if(b.sign())
376+
bbdd=~bbdd;
363377

364-
*bdd_variable_map[nl.var_no()] |= abdd | bbdd;
378+
*bdd_variable_map[nl.var_no()]|=abdd | bbdd;
365379

366380
return nl;
367381
}
@@ -380,25 +394,26 @@ Function: qbf_bdd_coret::lor
380394

381395
literalt qbf_bdd_coret::lor(const bvt &bv)
382396
{
383-
forall_literals(it, bv)
384-
if(*it==const_literal(true))
385-
return const_literal(true);
397+
for(const literalt &literal : bv)
398+
{
399+
if(literal==const_literal(true))
400+
return literal;
401+
}
386402

387-
literalt nl = new_variable();
403+
literalt nl=new_variable();
388404

389-
BDD &orbdd = *bdd_variable_map[nl.var_no()];
405+
BDD &orbdd=*bdd_variable_map[nl.var_no()];
390406

391-
forall_literals(it, bv)
407+
for(const literalt &literal : bv)
392408
{
393-
literalt l=*it;
394-
395-
if(l==const_literal(false))
409+
if(literal==const_literal(false))
396410
continue;
397411

398-
BDD v(*bdd_variable_map[l.var_no()]);
399-
if(l.sign()) v = ~v;
412+
BDD v(*bdd_variable_map[literal.var_no()]);
413+
if(literal.sign())
414+
v=~v;
400415

401-
orbdd |= v;
416+
orbdd|=v;
402417
}
403418

404419
return nl;
@@ -420,23 +435,19 @@ void qbf_bdd_coret::compress_certificate(void)
420435
{
421436
status() << "Compressing Certificate" << eom;
422437

423-
for(quantifierst::const_iterator it=quantifiers.begin();
424-
it!=quantifiers.end();
425-
it++)
438+
for(const quantifiert& quantifier : quantifiers)
426439
{
427-
if(it->type==quantifiert::EXISTENTIAL)
440+
if(quantifier.type==quantifiert::EXISTENTIAL)
428441
{
429-
const BDD &var=*bdd_variable_map[it->var_no];
430-
const BDD &model=*model_bdds[it->var_no];
442+
const BDD &var=*bdd_variable_map[quantifier.var_no];
443+
const BDD &model=*model_bdds[quantifier.var_no];
431444

432445
if(model==bdd_manager->bddOne() ||
433446
model==bdd_manager->bddZero())
434447
{
435-
for(quantifierst::const_iterator it2=it;
436-
it2!=quantifiers.end();
437-
it2++)
448+
for(const quantifiert &quantifier2 : quantifier)
438449
{
439-
BDD &model2=*model_bdds[it2->var_no];
450+
BDD &model2=*model_bdds[quantifier2.var_no];
440451

441452
if(model==bdd_manager->bddZero())
442453
model2=model2.AndAbstract(~var, var);
@@ -464,7 +475,7 @@ const exprt qbf_bdd_certificatet::f_get(literalt l)
464475
{
465476
quantifiert q;
466477
if(!find_quantifier(l, q))
467-
throw ("No model for unquantified variable");
478+
throw "no model for unquantified variable";
468479

469480
// universal?
470481
if(q.type==quantifiert::UNIVERSAL)
@@ -473,7 +484,7 @@ const exprt qbf_bdd_certificatet::f_get(literalt l)
473484
variable_mapt::const_iterator it=variable_map.find(l.var_no());
474485

475486
if(it==variable_map.end())
476-
throw "Variable map error";
487+
throw "variable map error";
477488

478489
const exprt &sym=it->second.first;
479490
unsigned index=it->second.second;
@@ -485,7 +496,8 @@ const exprt qbf_bdd_certificatet::f_get(literalt l)
485496
uint_type.set(ID_width, 32);
486497
extract_expr.copy_to_operands(from_integer(index, uint_type));
487498

488-
if(l.sign()) extract_expr.negate();
499+
if(l.sign())
500+
extract_expr.negate();
489501

490502
return extract_expr;
491503
}
@@ -517,17 +529,17 @@ const exprt qbf_bdd_certificatet::f_get(literalt l)
517529
model.PrintMinterm();
518530
#endif
519531

520-
int* cube;
532+
int *cube;
521533
DdGen *generator;
522-
// CUDD_VALUE_TYPE value;
523534

524535
exprt result=or_exprt();
525536

526-
Cudd_ForeachPrime(bdd_manager->getManager(),
527-
model.getNode(), model.getNode(),
528-
generator,
529-
cube)
530-
// Cudd_ForeachCube(bdd_manager->getManager(), model.getNode(), generator, cube, value)
537+
Cudd_ForeachPrime(
538+
bdd_manager->getManager(),
539+
model.getNode(),
540+
model.getNode(),
541+
generator,
542+
cube)
531543
{
532544
exprt prime=and_exprt();
533545

@@ -540,7 +552,8 @@ const exprt qbf_bdd_certificatet::f_get(literalt l)
540552

541553
for(signed i=0; i<bdd_manager->ReadSize(); i++)
542554
{
543-
if(quantifiers[i].var_no==l.var_no()) break; // is this sound?
555+
if(quantifiers[i].var_no==l.var_no())
556+
break; // is this sound?
544557

545558
if(cube[i]!=2)
546559
{
@@ -567,9 +580,10 @@ const exprt qbf_bdd_certificatet::f_get(literalt l)
567580
final=false_exprt();
568581
else if(result.operands().size()==1)
569582
final=result.op0();
570-
else final=result;
583+
else
584+
final=result;
571585

572-
function_cache[l.var_no()] = final;
586+
function_cache[l.var_no()]=final;
573587

574588
if(l.sign())
575589
return not_exprt(final);

src/solvers/qbf/qbf_bdd_core.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ Author: CM Wintersteiger
1414

1515
#include "qdimacs_core.h"
1616

17-
class Cudd;
18-
class BDD;
17+
class Cudd; // NOLINT(*)
18+
class BDD; // NOLINT(*)
1919

20-
class qbf_bdd_certificatet : public qdimacs_coret
20+
class qbf_bdd_certificatet:public qdimacs_coret
2121
{
2222
protected:
23-
Cudd* bdd_manager;
23+
Cudd *bdd_manager;
2424

2525
typedef std::vector<BDD*> model_bddst;
2626
model_bddst model_bdds;

src/solvers/qbf/qbf_quantor.cpp

+3-7
Original file line numberDiff line numberDiff line change
@@ -110,14 +110,10 @@ propt::resultt qbf_quantort::prop_solve()
110110
write_qdimacs_cnf(out);
111111
}
112112

113-
//std::string options=" --equivalences=0";
114-
std::string options="";
115-
116113
// solve it
117-
int res=system(("quantor "+qbf_tmp_file+
118-
options+
119-
" -o "+result_tmp_file).c_str());
120-
assert(0 == res);
114+
int res=system((
115+
"quantor "+qbf_tmp_file+" -o "+result_tmp_file).c_str());
116+
assert(0==res);
121117

122118
bool result=false;
123119

0 commit comments

Comments
 (0)