cprover
decision_proceduret Class Referenceabstract

#include <decision_procedure.h>

Inheritance diagram for decision_proceduret:
[legend]
Collaboration diagram for decision_proceduret:
[legend]

Public Types

enum  resultt { resultt::D_SATISFIABLE, resultt::D_UNSATISFIABLE, resultt::D_ERROR }
 
- Public Types inherited from messaget
enum  message_levelt {
  M_ERROR =1, M_WARNING =2, M_RESULT =4, M_STATUS =6,
  M_STATISTICS =8, M_PROGRESS =9, M_DEBUG =10
}
 

Public Member Functions

 decision_proceduret (const namespacet &_ns)
 
virtual ~decision_proceduret ()
 
virtual exprt get (const exprt &expr) const =0
 
virtual void print_assignment (std::ostream &out) const =0
 
virtual void set_to (const exprt &expr, bool value)=0
 
void set_to_true (const exprt &expr)
 
void set_to_false (const exprt &expr)
 
virtual resultt dec_solve ()=0
 
resultt operator() ()
 
virtual std::string decision_procedure_text () const =0
 
- Public Member Functions inherited from messaget
virtual void set_message_handler (message_handlert &_message_handler)
 
message_handlertget_message_handler ()
 
 messaget ()
 
 messaget (const messaget &other)
 
messagetoperator= (const messaget &other)
 
 messaget (message_handlert &_message_handler)
 
virtual ~messaget ()
 
mstreamtget_mstream (unsigned message_level) const
 
mstreamterror () const
 
mstreamtwarning () const
 
mstreamtresult () const
 
mstreamtstatus () const
 
mstreamtstatistics () const
 
mstreamtprogress () const
 
mstreamtdebug () const
 
void conditional_output (mstreamt &mstream, const std::function< void(mstreamt &)> &output_generator) const
 Generate output to mstream using output_generator if the configured verbosity is at least as high as that of mstream. More...
 

Protected Attributes

const namespacetns
 
- Protected Attributes inherited from messaget
message_handlertmessage_handler
 
mstreamt mstream
 

Additional Inherited Members

- Static Public Member Functions inherited from messaget
static unsigned eval_verbosity (const std::string &user_input, const message_levelt default_verbosity, message_handlert &dest)
 Parse a (user-)provided string as a verbosity level and set it as the verbosity of dest. More...
 
static mstreamteom (mstreamt &m)
 
static mstreamtendl (mstreamt &m)
 

Detailed Description

Definition at line 20 of file decision_procedure.h.

Member Enumeration Documentation

◆ resultt

Enumerator
D_SATISFIABLE 
D_UNSATISFIABLE 
D_ERROR 

Definition at line 47 of file decision_procedure.h.

Constructor & Destructor Documentation

◆ decision_proceduret()

decision_proceduret::decision_proceduret ( const namespacet _ns)
inlineexplicit

Definition at line 23 of file decision_procedure.h.

◆ ~decision_proceduret()

decision_proceduret::~decision_proceduret ( )
virtual

Definition at line 14 of file decision_procedure.cpp.

Member Function Documentation

◆ dec_solve()

◆ decision_procedure_text()

virtual std::string decision_proceduret::decision_procedure_text ( ) const
pure virtual

◆ get()

virtual exprt decision_proceduret::get ( const exprt expr) const
pure virtual

◆ operator()()

resultt decision_proceduret::operator() ( void  )
inline

Definition at line 52 of file decision_procedure.h.

References dec_solve().

◆ print_assignment()

virtual void decision_proceduret::print_assignment ( std::ostream &  out) const
pure virtual

Implemented in smt2_convt, prop_conv_solvert, and boolbvt.

◆ set_to()

virtual void decision_proceduret::set_to ( const exprt expr,
bool  value 
)
pure virtual

◆ set_to_false()

void decision_proceduret::set_to_false ( const exprt expr)
inline

◆ set_to_true()

Member Data Documentation

◆ ns

const namespacet& decision_proceduret::ns
protected

Definition at line 61 of file decision_procedure.h.

Referenced by arrayst::add_array_Ackermann_constraints(), arrayst::add_array_constraints(), arrayst::add_array_constraints_array_of(), arrayst::add_array_constraints_equality(), arrayst::add_array_constraints_if(), arrayst::add_array_constraints_update(), arrayst::add_array_constraints_with(), string_refinementt::add_lemma(), bv_refinementt::arrays_overapproximated(), boolbvt::boolbv_set_equality_to_true(), boolbvt::bv_get_rec(), boolbvt::bv_get_unbounded_array(), bv_refinementt::check_SAT(), arrayst::collect_arrays(), arrayst::collect_indices(), boolbvt::convert_add_sub(), bv_pointerst::convert_address_of_rec(), smt2_convt::convert_address_of_rec(), bv_pointerst::convert_bitvector(), boolbvt::convert_bitvector(), boolbvt::convert_bv_typecast(), boolbvt::convert_byte_extract(), smt2_convt::convert_byte_extract(), boolbvt::convert_byte_update(), boolbvt::convert_equality(), smt2_convt::convert_expr(), bv_refinementt::convert_floatbv_op(), boolbvt::convert_floatbv_op(), smt2_convt::convert_floatbv_typecast(), boolbvt::convert_floatbv_typecast(), boolbvt::convert_index(), smt2_convt::convert_index(), boolbvt::convert_member(), smt2_convt::convert_member(), smt2_convt::convert_minus(), bv_refinementt::convert_mult(), smt2_convt::convert_plus(), bv_pointerst::convert_pointer_type(), boolbvt::convert_power(), boolbvt::convert_quantifier(), boolbvt::convert_struct(), smt2_convt::convert_struct(), smt2_convt::convert_type(), smt2_convt::convert_typecast(), boolbvt::convert_unary_minus(), smt2_convt::convert_union(), boolbvt::convert_union(), boolbvt::convert_update_rec(), boolbvt::convert_verilog_case_equality(), smt2_convt::convert_with(), boolbvt::convert_with(), boolbvt::convert_with_struct(), boolbvt::convert_with_union(), string_refinementt::dec_solve(), smt2_convt::define_object_size(), bv_pointerst::do_postponed(), smt2_convt::find_symbols_rec(), smt2_convt::flatten2bv(), smt2_convt::flatten_array(), string_refinementt::get(), boolbvt::is_unbounded_array(), smt2_convt::parse_literal(), smt2_convt::parse_rec(), arrayst::record_array_equality(), string_refinementt::set_to(), smt2_convt::type2id(), boolbvt::type_conversion(), smt2_convt::unflatten(), and smt2_convt::use_array_theory().


The documentation for this class was generated from the following files: