Inter4ql  5.2
Valuation.h
1 #ifndef __VALUATION_H__
2 #define __VALUATION_H__
3 
4 #include "Logic.h"
5 
6 #include <map>
7 #include <vector>
8 
9 namespace Inter4ql {
10  class Value;
11  class Valuation {
12  private:
13  std::map<std::vector<Value *>, logic_type::type> valuation;
14  public:
18  Valuation();
25  bool add_element(const std::vector<Value *>& args, logic_type::type value);
30  logic_type::type get_logic_value(const std::vector<Value*>& vect);
36  bool remove_element(const std::vector<Value *>& args);
41  void expand_by(const std::vector<Value *>& vals);
46  void remove_inconsistent(const Valuation& val);
52 
57  bool is_all_unknown() const;
58 
59  void print();
60 
61  decltype(valuation)::iterator begin() { return valuation.begin(); };
62  const decltype(valuation)::const_iterator begin() const { return valuation.cbegin(); };
63  decltype(valuation)::iterator end() { return valuation.end(); };
64  const decltype(valuation)::const_iterator end() const { return valuation.cend(); };
65  const decltype(valuation)::size_type size() const { return valuation.size(); };
66  const decltype(valuation)::const_iterator find(const std::vector<Value *>& a) const {return this->valuation.find(a);};
67  };
68 }
69 
70 #endif
type
Enumeration type for four-valued logic.
Definition: Types.h:45
logic_type::type get_logic_value(const std::vector< Value *> &vect)
gets logic value for a given arguments
Definition: Valuation.cc:43
Definition: Application.cc:37
bool remove_element(const std::vector< Value *> &args)
removes element from valuation
Definition: Valuation.cc:64
void expand_by(const std::vector< Value *> &vals)
expands current valuation by adding another variable
Definition: Valuation.cc:86
logic_type::type get_first_logic_value() const
gets first logic value in the list (if no variables then it would be a global logic value) ...
Definition: Valuation.cc:140
Definition: Valuation.h:11
void remove_inconsistent(const Valuation &val)
remove all valuations that are inconsistent in argument
Definition: Valuation.cc:148
Valuation()
constructor
Definition: Valuation.cc:11
bool is_all_unknown() const
checks whether all elements of valuation are unknown
Definition: Valuation.cc:131
bool add_element(const std::vector< Value *> &args, logic_type::type value)
adds element to valuation
Definition: Valuation.cc:16