本文整理汇总了C++中literalt::is_false方法的典型用法代码示例。如果您正苦于以下问题:C++ literalt::is_false方法的具体用法?C++ literalt::is_false怎么用?C++ literalt::is_false使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类literalt
的用法示例。
在下文中一共展示了literalt::is_false方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: land
literalt aig_prop_baset::land(literalt a, literalt b)
{
if(a.is_true()) return b;
if(b.is_true()) return a;
if(a.is_false()) return a;
if(b.is_false()) return b;
if(a==neg(b)) return const_literal(false);
if(a==b) return a;
return dest.new_and_node(a, b);
}
示例2: lxor
literalt aig_prop_baset::lxor(literalt a, literalt b)
{
if(a.is_false()) return b;
if(b.is_false()) return a;
if(a.is_true()) return neg(b);
if(b.is_true()) return neg(a);
if(a==b) return const_literal(false);
if(a==neg(b)) return const_literal(true);
// This produces up to three nodes!
// See convert_node for where this overhead is removed
return lor(land(a, neg(b)), land(neg(a), b));
}
示例3: tvt
tvt satcheck_minisat2_baset<T>::l_get(literalt a) const
{
if(a.is_true())
return tvt(true);
else if(a.is_false())
return tvt(false);
tvt result;
if(a.var_no()>=(unsigned)solver->model.size())
return tvt(tvt::TV_UNKNOWN);
using Minisat::lbool;
if(solver->model[a.var_no()]==l_True)
result=tvt(true);
else if(solver->model[a.var_no()]==l_False)
result=tvt(false);
else
return tvt(tvt::TV_UNKNOWN);
if(a.sign()) result=!result;
return result;
}
示例4: l_get
tvt cvc_convt::l_get(literalt l) const
{
if(l.is_true()) return tvt(true);
if(l.is_false()) return tvt(false);
assert(l.var_no()<boolean_assignment.size());
return tvt(boolean_assignment[l.var_no()]^l.sign());
}
示例5: l_get
tvt boolector_propt::l_get(literalt a) const
{
tvt result=tvt(false);
std::string literal;
BtorExp *boolector_literal;
size_t found;
if(a.is_true())
return tvt(true);
else if(a.is_false())
return tvt(false);
literal_cachet::const_iterator cache_result=literal_cache.find(a.var_no());
if(cache_result!=literal_cache.end())
boolector_literal = cache_result->second;
else
return tvt(tvt::TV_UNKNOWN);
literal = boolector_bv_assignment(boolector_ctx, boolector_literal);
found=literal.find("1");
if (found!=std::string::npos)
result=tvt(true);
else
result=tvt(false);
if (a.sign()) result=!result;
return result;
}
示例6: tvt
tvt z3_propt::l_get(literalt a) const
{
tvt result=tvt(false);
std::string literal;
Z3_ast z3_literal;
size_t found;
if(a.is_true())
return tvt(true);
else if(a.is_false())
return tvt(false);
literal = "l"+i2string(a.var_no());
map_prop_varst::const_iterator cache_result=map_prop_vars.find(literal.c_str());
if(cache_result!=map_prop_vars.end())
{
//std::cout << "Cache hit on " << cache_result->first << "\n";
z3_literal = cache_result->second;
Z3_app app = Z3_to_app(z3_ctx, z3_literal);
Z3_func_decl d = Z3_get_app_decl(z3_ctx, app);
literal = Z3_func_decl_to_string(z3_ctx, d);
found=literal.find("true");
if (found!=std::string::npos)
result=tvt(true);
else
result=tvt(false);
}
if (a.sign()) result=!result;
return result;
}
示例7: l_get
tvt satcheck_booleforce_baset::l_get(literalt a) const
{
assert(status==SAT);
if(a.is_true())
return tvt(true);
else if(a.is_false())
return tvt(false);
tvt result;
unsigned v=a.var_no();
assert(v<no_variables());
int r=booleforce_deref(v);
if(r>0)
result=tvt(true);
else if(r<0)
result=tvt(false);
else
result=tvt(tvt::tv_enumt::TV_UNKNOWN);
if(a.sign())
result=!result;
return result;
}
示例8: assert
void smt1_propt::set_assignment(literalt literal, bool value)
{
if(literal.is_true() || literal.is_false()) return;
unsigned v=literal.var_no();
assert(v<assignment.size());
assignment[v]=tvt(value);
}
示例9:
tvt smt1_propt::l_get(literalt literal) const
{
if(literal.is_true()) return tvt(true);
if(literal.is_false()) return tvt(false);
unsigned v=literal.var_no();
if(v>=assignment.size()) return tvt(tvt::TV_UNKNOWN);
tvt r=assignment[v];
return literal.sign()?!r:r;
}
示例10: lselect
literalt aig_prop_baset::lselect(literalt a, literalt b, literalt c)
{ // a?b:c = (a AND b) OR (/a AND c)
if(a.is_true()) return b;
if(a.is_false()) return c;
if(b==c) return b;
// This produces unnecessary clauses and variables
// See convert_node for where this overhead is removed
return lor(land(a, b), land(neg(a), c));
}
示例11: l_get
tvt qbf_squolem_coret::l_get(literalt a) const
{
if(a.is_true())
return tvt(tvt::TV_TRUE);
else if(a.is_false())
return tvt(tvt::TV_FALSE);
else if(squolem->modelIsTrue(a.var_no()))
return tvt(tvt::TV_TRUE);
else if(squolem->modelIsFalse(a.var_no()) ||
squolem->modelIsDontCare(a.var_no()))
return tvt(tvt::TV_FALSE);
else
return tvt(tvt::TV_UNKNOWN);
}
示例12: output_dot_edge
void aigt::output_dot_edge(
std::ostream& out,
nodest::size_type v,
literalt l) const
{
if(l.is_true())
{
out << "TRUE -> " << v;
}
else if(l.is_false())
{
out << "TRUE -> " << v;
out << " [arrowhead=odiamond]";
}
else
{
out << l.var_no() << " -> " << v;
if(l.sign()) out << " [arrowhead=odiamond]";
}
out << "\n";
}
示例13: l_get
tvt satcheck_smvsatt::l_get(literalt a) const
{
assert(status==SAT);
if(a.is_true())
return tvt(true);
else if(a.is_false())
return tvt(false);
tvt result;
unsigned v=a.var_no();
switch(sat_instance_value(satsolver, v))
{
case 0: result=tvt(false); break;
case 1: result=tvt(true); break;
default: result=tvt(tvt::tv_enumt::TV_UNKNOWN); break;
}
if(a.sign()) result=!result;
return result;
}
示例14: tvt
tvt satcheck_minisat1_baset::l_get(literalt a) const
{
if(a.is_true())
return tvt(true);
else if(a.is_false())
return tvt(false);
tvt result;
assert(a.var_no()!=0);
assert(a.var_no()<(unsigned)solver->model.size());
if(solver->model[a.var_no()]==l_True)
result=tvt(true);
else if(solver->model[a.var_no()]==l_False)
result=tvt(false);
else
result=tvt(tvt::TV_UNKNOWN);
if(a.sign()) result=!result;
return result;
}