49#ifndef __CVC4__EXPR_MANAGER_H
50#define __CVC4__EXPR_MANAGER_H
71#include "util/rational.h"
98#line 38 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/expr/expr_manager_template.h"
107struct ExprManagerMapCollection;
108class StatisticsRegistry;
127 context::Context* d_ctxt;
130 NodeManager* d_nodeManager;
133 IntStat* d_exprStatisticsVars[
LAST_TYPE];
134 IntStat* d_exprStatistics[kind::LAST_KIND];
140 NodeManager* getNodeManager()
const;
146 context::Context* getContext()
const;
160 friend class ExprManagerScope;
163 friend class NodeManager;
169 StatisticsRegistry* getStatisticsRegistry() throw();
381 static
bool hasOperator(
Kind k);
484 const
std::set<
Type>& unresolvedTypes);
500 SORT_FLAG_PLACEHOLDER = 1
569 Expr mkVar(
const std::string& name,
Type type, uint32_t flags = VAR_FLAG_NONE);
623 SExpr getStatistic(const
std::
string& name) const throw();
631 static
unsigned minArity(
Kind kind);
634 static
unsigned maxArity(
Kind kind);
639#line 266 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/builtin/kinds"
642#line 276 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/builtin/kinds"
645#line 287 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/builtin/kinds"
648#line 309 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/builtin/kinds"
651#line 315 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/builtin/kinds"
654#line 343 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/builtin/kinds"
657#line 21 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/booleans/kinds"
658template <>
Expr ExprManager::mkConst(
bool const& val);
660#line 29 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/arith/kinds"
663#line 48 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/arith/kinds"
666#line 61 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/arith/kinds"
669#line 15 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/bv/kinds"
672#line 24 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/bv/kinds"
675#line 77 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/bv/kinds"
678#line 83 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/bv/kinds"
681#line 89 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/bv/kinds"
684#line 95 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/bv/kinds"
687#line 101 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/bv/kinds"
690#line 107 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/bv/kinds"
693#line 113 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/bv/kinds"
696#line 127 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/bv/kinds"
699#line 35 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/arrays/kinds"
702#line 45 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/datatypes/kinds"
705#line 77 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/datatypes/kinds"
708#line 108 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/datatypes/kinds"
711#line 116 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/datatypes/kinds"
714#line 124 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/datatypes/kinds"
717#line 144 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/datatypes/kinds"
720#line 152 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/datatypes/kinds"
723#line 18 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/sets/kinds"
726#line 62 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/strings/kinds"
729#line 68 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_cvc4/cvc4/work/cvc4-1.4/builds/powerpc-apple-darwin10.0.0d2/production/../../../src/theory/strings/kinds"
Representation of abstract values.
Representation of a constant array (an array in which the element is the same for all indices)
A class representing a type ascription.
[[ Add one-line brief description here ]]
A hash function for Boolean.
[[ Add one-line brief description here ]]
Class encapsulating an array type.
A class used to parameterize a type ascription.
Class encapsulating the bit-vector type.
Singleton class encapsulating the Boolean type.
A class to represent a chained, built-in operator.
Class encapsulating the constructor type.
A constructor for a Datatype.
Class encapsulating the datatype type.
The representation of an inductive datatype.
Expr mkBoundVar(const std::string &name, Type type)
Create a new, fresh variable for use in a binder expression (the BOUND_VAR_LIST of a FORALL,...
Statistics getStatistics() const
Get a reference to the statistics registry for this ExprManager.
Expr mkVar(Type type, uint32_t flags=VAR_FLAG_NONE)
Create a (nameless) new, fresh variable.
SortType mkSort(const std::string &name, uint32_t flags=SORT_FLAG_NONE) const
Make a new sort with the given name.
Expr mkBoundVar(Type type)
Create a (nameless) new, fresh variable for use in a binder expression (the BOUND_VAR_LIST of a FORAL...
Type getType(Expr e, bool check=false)
Get the type of an expression.
SortConstructorType mkSortConstructor(const std::string &name, size_t arity) const
Make a sort constructor from a name and arity.
Expr mkVar(const std::string &name, Type type, uint32_t flags=VAR_FLAG_NONE)
Create a new, fresh variable.
Type mkSubrangeType(const SubrangeBounds &bounds)
Make a predicate subtype type defined by the given LAMBDA expression.
Class encapsulating CVC4 expressions and methods for constructing new expressions.
Class encapsulating a function type.
Singleton class encapsulating the integer type.
A multi-precision rational constant.
Singleton class encapsulating the real type.
Class encapsulating a record type.
Class encapsulating a tuple type.
Class encapsulating the Selector type.
Class encapsulating an set type.
Class encapsulating a user-defined sort constructor.
Class encapsulating a user-defined sort.
Singleton class encapsulating the string type.
Class encapsulating the Tester type.
Class encapsulating a tuple type.
Exception thrown in the case of type-checking errors.
Class encapsulating CVC4 expression types.
Macros that should be defined everywhere during the building of the libraries and driver binary,...
A class representing a Datatype definition.
[[ Add one-line brief description here ]]
[[ Add one-line brief description here ]]
StatisticsRegistry * getStatisticsRegistry(ExprManager *)
TypeConstant
The enumeration for the built-in atomic types.
Representation of predicates for predicate subtyping.
A class representing a Record definition.
[[ Add one-line brief description here ]]
Simple representation of S-expressions.
[[ Add one-line brief description here ]]
The structure representing the extraction of one Boolean bit.
The structure representing the divisibility-by-k predicate.
Representation of subrange bounds.
Interface for expression types.
Representation of constants of uninterpreted sorts.