z3-z3-4.12.6.src.smt.smt_literal.h Maven / Gradle / Ivy
/*++
Copyright (c) 2006 Microsoft Corporation
Module Name:
smt_literal.h
Abstract:
Author:
Leonardo de Moura (leonardo) 2008-02-18.
Revision History:
--*/
#pragma once
#include "ast/ast.h"
#include "smt/smt_types.h"
#include "util/approx_set.h"
#include "util/sat_literal.h"
namespace smt {
typedef sat::literal literal;
inline literal to_literal(int x) { return sat::to_literal(x); }
const literal null_literal;
const literal true_literal(true_bool_var, false);
const literal false_literal(true_bool_var, true);
typedef svector literal_vector;
typedef sbuffer literal_buffer;
std::ostream& display(std::ostream & out, literal lit, ast_manager & m, expr * const * bool_var2expr_map);
std::ostream& display_smt2(std::ostream & out, literal lit, ast_manager & m, expr * const * bool_var2expr_map);
std::ostream& display_compact(std::ostream & out, literal lit, expr * const * bool_var2expr_map);
std::ostream& display_compact(std::ostream & out, unsigned num_lits, literal const * lits, expr * const * bool_var2expr_map);
std::ostream& display_verbose(std::ostream & out, ast_manager& m, unsigned num_lits, literal const * lits, expr * const * bool_var2expr_map, char const* sep = "\n");
template
void neg_literals(unsigned num_lits, literal const * lits, T & result) {
for (unsigned i = 0; i < num_lits; ++i)
result.push_back(~lits[i]);
}
bool backward_subsumption(unsigned num_lits1, literal const * lits1, unsigned num_lits2, literal const * lits2);
};