Flatten libcvc4 build structure; remove some #include interdependences
authorMorgan Deters <mdeters@cs.nyu.edu>
Wed, 6 Nov 2013 21:58:16 +0000 (16:58 -0500)
committerMorgan Deters <mdeters@cs.nyu.edu>
Thu, 7 Nov 2013 22:47:19 +0000 (17:47 -0500)
81 files changed:
configure.ac
src/Makefile.am
src/compat/Makefile.am
src/context/Makefile [deleted file]
src/context/Makefile.am [deleted file]
src/decision/Makefile [deleted file]
src/decision/Makefile.am [deleted file]
src/expr/Makefile.am
src/expr/attribute.h
src/expr/expr_template.cpp
src/expr/node.cpp
src/expr/node.h
src/expr/node_manager.cpp
src/expr/node_manager.h
src/expr/node_manager_attributes.h [new file with mode: 0644]
src/expr/type.cpp
src/expr/type_checker_template.cpp
src/expr/type_node.cpp
src/expr/type_node.h
src/parser/Makefile.am
src/printer/Makefile [deleted file]
src/printer/Makefile.am [deleted file]
src/printer/ast/ast_printer.cpp
src/printer/cvc/cvc_printer.cpp
src/printer/smt2/smt2_printer.cpp
src/proof/Makefile [deleted file]
src/proof/Makefile.am [deleted file]
src/prop/Makefile [deleted file]
src/prop/Makefile.am [deleted file]
src/prop/bvminisat/Makefile [deleted file]
src/prop/minisat/Makefile [deleted file]
src/smt/Makefile [deleted file]
src/smt/Makefile.am [deleted file]
src/smt/boolean_terms.cpp
src/smt/model_postprocessor.cpp
src/theory/Makefile [deleted file]
src/theory/Makefile.am [deleted file]
src/theory/Makefile.subdirs
src/theory/arith/Makefile [deleted file]
src/theory/arith/Makefile.am [deleted file]
src/theory/arrays/Makefile [deleted file]
src/theory/arrays/Makefile.am [deleted file]
src/theory/arrays/theory_arrays_rewriter.cpp [new file with mode: 0644]
src/theory/arrays/theory_arrays_rewriter.h
src/theory/arrays/theory_arrays_type_rules.h
src/theory/booleans/Makefile [deleted file]
src/theory/booleans/Makefile.am [deleted file]
src/theory/builtin/Makefile [deleted file]
src/theory/builtin/Makefile.am [deleted file]
src/theory/bv/Makefile [deleted file]
src/theory/bv/Makefile.am [deleted file]
src/theory/datatypes/Makefile [deleted file]
src/theory/datatypes/Makefile.am [deleted file]
src/theory/datatypes/datatypes_rewriter.h
src/theory/datatypes/theory_datatypes_type_rules.h
src/theory/example/Makefile [deleted file]
src/theory/example/Makefile.am [deleted file]
src/theory/idl/Makefile [deleted file]
src/theory/idl/Makefile.am [deleted file]
src/theory/quantifiers/Makefile [deleted file]
src/theory/quantifiers/Makefile.am [deleted file]
src/theory/quantifiers/symmetry_breaking.h
src/theory/quantifiers/term_database.h
src/theory/quantifiers/theory_quantifiers.h
src/theory/rewriter.h
src/theory/rewriter_attributes.h
src/theory/rewriterules/Makefile [deleted file]
src/theory/rewriterules/Makefile.am [deleted file]
src/theory/strings/Makefile [deleted file]
src/theory/strings/Makefile.am [deleted file]
src/theory/theory.h
src/theory/uf/Makefile [deleted file]
src/theory/uf/Makefile.am [deleted file]
src/theory/uf/equality_engine.h
src/theory/uf/theory_uf.h
src/theory/uf/theory_uf_model.cpp
src/theory/uf/theory_uf_strong_solver.h
src/util/datatype.cpp
test/unit/Makefile.am
test/unit/expr/attribute_white.h
test/unit/expr/node_manager_black.h

index 56f462b343ef082fc7880d4a11d0d0184ccbb42f..1859d63164e4f451ff64ae752b9d31a6f9acaa30 100644 (file)
@@ -1212,6 +1212,8 @@ AC_SUBST(FLAG_VISIBILITY_HIDDEN)
 AC_SUBST(cvc4_LDFLAGS)
 AC_SUBST(pcvc4_LDFLAGS)
 
+AM_CONDITIONAL(WHITE_AND_BLACK_TESTS, [test -z "$FLAG_VISIBILITY_HIDDEN"])
+
 # remember the command line used for configure
 AC_SUBST(cvc4_config_cmdline)
 
index e6d5f80edb0119041d7cf38a24c9bf4d39029d78..0bbc49e134898f22eb1765597ec598ca20fe951f 100644 (file)
@@ -14,70 +14,410 @@ LIBCVC4_VERSION = @CVC4_LIBRARY_VERSION@
 
 AM_CPPFLAGS = \
        -D__BUILDING_CVC4LIB \
+        -D __STDC_LIMIT_MACROS \
+        -D __STDC_FORMAT_MACROS \
        -I@builddir@ -I@srcdir@/include -I@srcdir@
-AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
+AM_CXXFLAGS = -Wall -Wno-unknown-pragmas -Wno-parentheses $(FLAG_VISIBILITY_HIDDEN)
 
-SUBDIRS = lib options expr util context theory prop decision smt printer proof . parser compat bindings main
+SUBDIRS = lib options expr util prop/minisat prop/bvminisat . parser compat bindings main
+THEORIES = builtin booleans uf arith bv arrays datatypes quantifiers rewriterules idl strings
 
 lib_LTLIBRARIES = libcvc4.la
-if HAVE_CXXTESTGEN
-check_LTLIBRARIES = libcvc4_noinst.la
-endif
 
 libcvc4_la_LDFLAGS = -version-info $(LIBCVC4_VERSION)
 
 # This "tricks" automake into linking us as a C++ library (rather than
 # as a C library, which messes up exception handling support)
-nodist_EXTRA_libcvc4_noinst_la_SOURCES = dummy.cpp
 nodist_EXTRA_libcvc4_la_SOURCES = dummy.cpp
-libcvc4_noinst_la_SOURCES = git_versioninfo.cpp svn_versioninfo.cpp
-libcvc4_la_SOURCES = git_versioninfo.cpp svn_versioninfo.cpp
+libcvc4_la_SOURCES = \
+       git_versioninfo.cpp \
+       svn_versioninfo.cpp \
+       context/context.cpp \
+       context/context.h \
+       context/context_mm.cpp \
+       context/context_mm.h \
+       context/cdo.h \
+       context/cdlist.h \
+       context/cdchunk_list.h \
+       context/cdlist_forward.h \
+       context/cdqueue.h \
+       context/cdtrail_queue.h \
+       context/cdtrail_hashmap.h \
+       context/cdtrail_hashmap_forward.h \
+       context/cdinsert_hashmap.h \
+       context/cdinsert_hashmap_forward.h \
+       context/cdhashmap.h \
+       context/cdhashmap_forward.h \
+       context/cdhashset.h \
+       context/cdhashset_forward.h \
+       context/cdvector.h \
+       context/cdmaybe.h \
+       context/stacking_map.h \
+       context/stacking_vector.h \
+       context/cddense_set.h \
+       decision/decision_mode.h \
+       decision/decision_mode.cpp \
+       decision/decision_engine.h \
+       decision/decision_engine.cpp \
+       decision/decision_strategy.h \
+       decision/justification_heuristic.h \
+       decision/justification_heuristic.cpp \
+       decision/options_handlers.h \
+       printer/printer.h \
+       printer/printer.cpp \
+       printer/dagification_visitor.h \
+       printer/dagification_visitor.cpp \
+       printer/model_format_mode.h \
+       printer/model_format_mode.cpp \
+       printer/ast/ast_printer.h \
+       printer/ast/ast_printer.cpp \
+       printer/smt1/smt1_printer.h \
+       printer/smt1/smt1_printer.cpp \
+       printer/smt2/smt2_printer.h \
+       printer/smt2/smt2_printer.cpp \
+       printer/cvc/cvc_printer.h \
+       printer/cvc/cvc_printer.cpp \
+       printer/tptp/tptp_printer.h \
+       printer/tptp/tptp_printer.cpp \
+       printer/options_handlers.h \
+       proof/proof.h \
+       proof/sat_proof.h \
+       proof/sat_proof.cpp \
+       proof/cnf_proof.h \
+       proof/cnf_proof.cpp \
+       proof/theory_proof.h \
+       proof/theory_proof.cpp \
+       proof/proof_manager.h \
+       proof/proof_manager.cpp \
+       prop/registrar.h \
+       prop/prop_engine.cpp \
+       prop/prop_engine.h \
+       prop/theory_proxy.h \
+       prop/theory_proxy.cpp \
+       prop/cnf_stream.h \
+       prop/cnf_stream.cpp \
+       prop/sat_solver.h \
+       prop/sat_solver_types.h \
+       prop/sat_solver_factory.h \
+       prop/sat_solver_factory.cpp \
+       prop/sat_solver_registry.h \
+       prop/sat_solver_registry.cpp \
+       prop/options_handlers.h \
+       smt/smt_engine.cpp \
+       smt/smt_engine.h \
+       smt/model_postprocessor.cpp \
+       smt/model_postprocessor.h \
+       smt/smt_engine_scope.cpp \
+       smt/smt_engine_scope.h \
+       smt/command_list.cpp \
+       smt/command_list.h \
+       smt/modal_exception.h \
+       smt/boolean_terms.h \
+       smt/boolean_terms.cpp \
+       smt/logic_exception.h \
+       smt/simplification_mode.h \
+       smt/simplification_mode.cpp \
+       smt/options_handlers.h \
+       theory/decision_attributes.h \
+       theory/logic_info.h \
+       theory/logic_info.cpp \
+       theory/output_channel.h \
+       theory/interrupted.h \
+       theory/type_enumerator.h \
+       theory/theory_engine.h \
+       theory/theory_engine.cpp \
+       theory/theory_test_utils.h \
+       theory/theory.h \
+       theory/theory.cpp \
+       theory/theoryof_mode.h \
+       theory/theory_registrar.h \
+       theory/rewriter.h \
+       theory/rewriter_attributes.h \
+       theory/rewriter.cpp \
+       theory/substitutions.h \
+       theory/substitutions.cpp \
+       theory/valuation.h \
+       theory/valuation.cpp \
+       theory/shared_terms_database.h \
+       theory/shared_terms_database.cpp \
+       theory/term_registration_visitor.h \
+       theory/term_registration_visitor.cpp \
+       theory/ite_simplifier.h \
+       theory/ite_simplifier.cpp \
+       theory/unconstrained_simplifier.h \
+       theory/unconstrained_simplifier.cpp \
+       theory/quantifiers_engine.h \
+       theory/quantifiers_engine.cpp \
+       theory/model.h \
+       theory/model.cpp \
+       theory/rep_set.h \
+       theory/rep_set.cpp \
+       theory/atom_requests.h \
+       theory/atom_requests.cpp \
+       theory/options_handlers.h \
+       theory/uf/theory_uf.h \
+       theory/uf/theory_uf.cpp \
+       theory/uf/theory_uf_type_rules.h \
+       theory/uf/theory_uf_rewriter.h \
+       theory/uf/equality_engine.h \
+       theory/uf/equality_engine_types.h \
+       theory/uf/equality_engine.cpp \
+       theory/uf/symmetry_breaker.h \
+       theory/uf/symmetry_breaker.cpp \
+       theory/uf/theory_uf_strong_solver.h \
+       theory/uf/theory_uf_strong_solver.cpp \
+       theory/uf/theory_uf_model.h \
+       theory/uf/theory_uf_model.cpp \
+       theory/uf/options_handlers.h \
+       theory/bv/theory_bv_utils.h \
+       theory/bv/type_enumerator.h \
+       theory/bv/bitblaster.h \
+       theory/bv/bitblaster.cpp \
+       theory/bv/bv_to_bool.h \
+       theory/bv/bv_to_bool.cpp \
+       theory/bv/bv_subtheory.h \
+       theory/bv/bv_subtheory_core.h \
+       theory/bv/bv_subtheory_core.cpp \
+       theory/bv/bv_subtheory_bitblast.h \
+       theory/bv/bv_subtheory_bitblast.cpp \
+       theory/bv/bv_subtheory_inequality.h \
+       theory/bv/bv_subtheory_inequality.cpp \
+       theory/bv/bv_inequality_graph.h \
+       theory/bv/bv_inequality_graph.cpp \
+       theory/bv/bitblast_strategies.h \
+       theory/bv/bitblast_strategies.cpp \
+       theory/bv/slicer.h \
+       theory/bv/slicer.cpp \
+       theory/bv/theory_bv.h \
+       theory/bv/theory_bv.cpp \
+       theory/bv/theory_bv_rewrite_rules.h \
+       theory/bv/theory_bv_rewrite_rules_core.h \
+       theory/bv/theory_bv_rewrite_rules_operator_elimination.h \
+       theory/bv/theory_bv_rewrite_rules_constant_evaluation.h \
+       theory/bv/theory_bv_rewrite_rules_normalization.h \
+       theory/bv/theory_bv_rewrite_rules_simplification.h \
+       theory/bv/theory_bv_type_rules.h \
+       theory/bv/theory_bv_rewriter.h \
+       theory/bv/theory_bv_rewriter.cpp \
+       theory/bv/cd_set_collection.h \
+       theory/idl/idl_model.h \
+       theory/idl/idl_model.cpp \
+       theory/idl/idl_assertion.h \
+       theory/idl/idl_assertion.cpp \
+       theory/idl/idl_assertion_db.h \
+       theory/idl/idl_assertion_db.cpp \
+       theory/idl/theory_idl.h \
+       theory/idl/theory_idl.cpp \
+       theory/builtin/theory_builtin_type_rules.h \
+       theory/builtin/type_enumerator.h \
+       theory/builtin/theory_builtin_rewriter.h \
+       theory/builtin/theory_builtin_rewriter.cpp \
+       theory/builtin/theory_builtin.h \
+       theory/builtin/theory_builtin.cpp \
+       theory/datatypes/theory_datatypes_type_rules.h \
+       theory/datatypes/type_enumerator.h \
+       theory/datatypes/theory_datatypes.h \
+       theory/datatypes/datatypes_rewriter.h \
+       theory/datatypes/theory_datatypes.cpp \
+       theory/strings/theory_strings.h \
+       theory/strings/theory_strings.cpp \
+       theory/strings/theory_strings_rewriter.h \
+       theory/strings/theory_strings_rewriter.cpp \
+       theory/strings/theory_strings_type_rules.h \
+       theory/strings/type_enumerator.h \
+       theory/strings/theory_strings_preprocess.h \
+       theory/strings/theory_strings_preprocess.cpp \
+       theory/strings/regexp_operation.cpp \
+       theory/strings/regexp_operation.h \
+       theory/arrays/theory_arrays_type_rules.h \
+       theory/arrays/type_enumerator.h \
+       theory/arrays/theory_arrays_rewriter.h \
+       theory/arrays/theory_arrays_rewriter.cpp \
+       theory/arrays/theory_arrays.h \
+       theory/arrays/theory_arrays.cpp \
+       theory/arrays/union_find.h \
+       theory/arrays/union_find.cpp \
+       theory/arrays/array_info.h \
+       theory/arrays/array_info.cpp \
+       theory/arrays/static_fact_manager.h \
+       theory/arrays/static_fact_manager.cpp \
+       theory/quantifiers/theory_quantifiers_type_rules.h \
+       theory/quantifiers/theory_quantifiers.h \
+       theory/quantifiers/quantifiers_rewriter.h \
+       theory/quantifiers/quantifiers_rewriter.cpp \
+       theory/quantifiers/theory_quantifiers.cpp \
+       theory/quantifiers/instantiation_engine.h \
+       theory/quantifiers/instantiation_engine.cpp \
+       theory/quantifiers/trigger.h \
+       theory/quantifiers/trigger.cpp \
+       theory/quantifiers/candidate_generator.h \
+       theory/quantifiers/candidate_generator.cpp \
+       theory/quantifiers/inst_match.h \
+       theory/quantifiers/inst_match.cpp \
+       theory/quantifiers/model_engine.h \
+       theory/quantifiers/model_engine.cpp \
+       theory/quantifiers/modes.cpp \
+       theory/quantifiers/modes.h \
+       theory/quantifiers/term_database.h \
+       theory/quantifiers/term_database.cpp \
+       theory/quantifiers/first_order_model.h \
+       theory/quantifiers/first_order_model.cpp \
+       theory/quantifiers/model_builder.h \
+       theory/quantifiers/model_builder.cpp \
+       theory/quantifiers/quantifiers_attributes.h \
+       theory/quantifiers/quantifiers_attributes.cpp \
+       theory/quantifiers/inst_gen.h \
+       theory/quantifiers/inst_gen.cpp \
+       theory/quantifiers/quant_util.h \
+       theory/quantifiers/quant_util.cpp \
+       theory/quantifiers/inst_match_generator.h \
+       theory/quantifiers/inst_match_generator.cpp \
+       theory/quantifiers/macros.h \
+       theory/quantifiers/macros.cpp \
+       theory/quantifiers/inst_strategy_e_matching.h \
+       theory/quantifiers/inst_strategy_e_matching.cpp \
+       theory/quantifiers/inst_strategy_cbqi.h \
+       theory/quantifiers/inst_strategy_cbqi.cpp \
+       theory/quantifiers/full_model_check.h \
+       theory/quantifiers/full_model_check.cpp \
+       theory/quantifiers/bounded_integers.h \
+       theory/quantifiers/bounded_integers.cpp \
+       theory/quantifiers/first_order_reasoning.h \
+       theory/quantifiers/first_order_reasoning.cpp \
+       theory/quantifiers/rewrite_engine.h \
+       theory/quantifiers/rewrite_engine.cpp \
+       theory/quantifiers/relevant_domain.h \
+       theory/quantifiers/relevant_domain.cpp \
+       theory/quantifiers/symmetry_breaking.h \
+       theory/quantifiers/symmetry_breaking.cpp \
+       theory/quantifiers/options_handlers.h \
+       theory/rewriterules/theory_rewriterules_rules.h \
+       theory/rewriterules/theory_rewriterules_rules.cpp \
+       theory/rewriterules/theory_rewriterules.h \
+       theory/rewriterules/theory_rewriterules.cpp \
+       theory/rewriterules/theory_rewriterules_rewriter.h \
+       theory/rewriterules/theory_rewriterules_type_rules.h \
+       theory/rewriterules/theory_rewriterules_preprocess.h \
+       theory/rewriterules/theory_rewriterules_params.h \
+       theory/rewriterules/rr_inst_match.h \
+       theory/rewriterules/rr_inst_match_impl.h \
+       theory/rewriterules/rr_inst_match.cpp \
+       theory/rewriterules/rr_trigger.h \
+       theory/rewriterules/rr_trigger.cpp \
+       theory/rewriterules/rr_candidate_generator.h \
+       theory/rewriterules/rr_candidate_generator.cpp \
+       theory/rewriterules/efficient_e_matching.h \
+       theory/rewriterules/efficient_e_matching.cpp \
+       theory/arith/theory_arith_type_rules.h \
+       theory/arith/type_enumerator.h \
+       theory/arith/arithvar.h \
+       theory/arith/arithvar.cpp \
+       theory/arith/bound_counts.h \
+       theory/arith/arith_rewriter.h \
+       theory/arith/arith_rewriter.cpp \
+       theory/arith/arith_static_learner.h \
+       theory/arith/arith_static_learner.cpp \
+       theory/arith/constraint_forward.h \
+       theory/arith/constraint.h \
+       theory/arith/constraint.cpp \
+       theory/arith/congruence_manager.h \
+       theory/arith/congruence_manager.cpp \
+       theory/arith/normal_form.h\
+       theory/arith/normal_form.cpp \
+       theory/arith/arith_utilities.h \
+       theory/arith/delta_rational.h \
+       theory/arith/delta_rational.cpp \
+       theory/arith/partial_model.h \
+       theory/arith/partial_model.cpp \
+       theory/arith/linear_equality.h \
+       theory/arith/linear_equality.cpp \
+       theory/arith/simplex_update.h \
+       theory/arith/simplex_update.cpp \
+       theory/arith/callbacks.h \
+       theory/arith/callbacks.cpp \
+       theory/arith/matrix.h \
+       theory/arith/matrix.cpp \
+       theory/arith/tableau.h \
+       theory/arith/tableau.cpp \
+       theory/arith/tableau_sizes.h \
+       theory/arith/tableau_sizes.cpp \
+       theory/arith/error_set.h \
+       theory/arith/error_set.cpp \
+       theory/arith/simplex.h \
+       theory/arith/simplex.cpp \
+       theory/arith/dual_simplex.h \
+       theory/arith/dual_simplex.cpp \
+       theory/arith/fc_simplex.h \
+       theory/arith/fc_simplex.cpp \
+       theory/arith/soi_simplex.h \
+       theory/arith/soi_simplex.cpp \
+       theory/arith/approx_simplex.h \
+       theory/arith/approx_simplex.cpp \
+       theory/arith/attempt_solution_simplex.h \
+       theory/arith/attempt_solution_simplex.cpp \
+       theory/arith/theory_arith.h \
+       theory/arith/theory_arith.cpp \
+       theory/arith/theory_arith_private_forward.h \
+       theory/arith/theory_arith_private.h \
+       theory/arith/theory_arith_private.cpp \
+       theory/arith/dio_solver.h \
+       theory/arith/dio_solver.cpp \
+       theory/arith/arith_heuristic_pivot_rule.h \
+       theory/arith/arith_heuristic_pivot_rule.cpp \
+       theory/arith/arith_unate_lemma_mode.h \
+       theory/arith/arith_unate_lemma_mode.cpp \
+       theory/arith/arith_propagation_mode.h \
+       theory/arith/arith_propagation_mode.cpp \
+       theory/arith/options_handlers.h \
+       theory/booleans/type_enumerator.h \
+       theory/booleans/theory_bool.h \
+       theory/booleans/theory_bool.cpp \
+       theory/booleans/theory_bool_type_rules.h \
+       theory/booleans/theory_bool_rewriter.h \
+       theory/booleans/theory_bool_rewriter.cpp \
+       theory/booleans/circuit_propagator.h \
+       theory/booleans/circuit_propagator.cpp \
+       theory/booleans/boolean_term_conversion_mode.h \
+       theory/booleans/boolean_term_conversion_mode.cpp \
+       theory/booleans/options_handlers.h
+
+nodist_libcvc4_la_SOURCES = \
+       smt/smt_options.cpp \
+       theory/rewriter_tables.h \
+       theory/theory_traits.h \
+       theory/type_enumerator.cpp
+
 libcvc4_la_LIBADD = \
        @builddir@/options/liboptions.la \
        @builddir@/util/libutil.la \
        @builddir@/expr/libexpr.la \
-       @builddir@/context/libcontext.la \
-       @builddir@/proof/libproof.la \
-       @builddir@/prop/libprop.la \
-       @builddir@/prop/minisat/libminisat.la \
-       @builddir@/prop/bvminisat/libbvminisat.la \
-       @builddir@/printer/libprinter.la \
-       @builddir@/smt/libsmt.la \
-       @builddir@/theory/libtheory.la \
-       @builddir@/decision/libdecision.la
-libcvc4_noinst_la_LIBADD = \
-       @builddir@/options/liboptions.la \
-       @builddir@/util/libutil.la \
-       @builddir@/expr/libexpr.la \
-       @builddir@/context/libcontext.la \
-       @builddir@/proof/libproof.la \
-       @builddir@/prop/libprop.la \
        @builddir@/prop/minisat/libminisat.la \
-       @builddir@/prop/bvminisat/libbvminisat.la \
-       @builddir@/printer/libprinter.la \
-       @builddir@/smt/libsmt.la \
-       @builddir@/theory/libtheory.la \
-       @builddir@/decision/libdecision.la
+       @builddir@/prop/bvminisat/libbvminisat.la
 
 if CVC4_NEEDS_REPLACEMENT_FUNCTIONS
 libcvc4_la_LIBADD += \
        @builddir@/lib/libreplacements.la
-libcvc4_noinst_la_LIBADD += \
-       @builddir@/lib/libreplacements.la
 endif
 
 if CVC4_USE_GLPK
 libcvc4_la_LIBADD += $(GLPK_LIBS)
-libcvc4_noinst_la_LIBADD += $(GLPK_LIBS)
 endif
 
+BUILT_SOURCES = \
+       theory/rewriter_tables.h \
+       theory/theory_traits.h \
+       theory/type_enumerator.cpp
+
 CLEANFILES = \
        svn_versioninfo.cpp \
        svninfo.tmp \
        svninfo \
        git_versioninfo.cpp \
        gitinfo.tmp \
-       gitinfo
+       gitinfo \
+       theory/rewriter_tables.h \
+       theory/theory_traits.h \
+       theory/type_enumerator.cpp
 
 EXTRA_DIST = \
        include/cvc4_private_library.h \
@@ -86,7 +426,33 @@ EXTRA_DIST = \
        include/cvc4_private.h \
        include/cvc4_public.h \
        include/cvc4.h \
-       cvc4.i
+       cvc4.i \
+       smt/smt_options_template.cpp \
+       smt/modal_exception.i \
+       smt/logic_exception.i \
+       smt/smt_engine.i \
+       theory/logic_info.i \
+       theory/rewriter_tables_template.h \
+       theory/theory_traits_template.h \
+       theory/type_enumerator_template.cpp \
+       theory/mktheorytraits \
+       theory/mkrewriter \
+       theory/Makefile.subdirs \
+       theory/uf/kinds \
+       theory/bv/kinds \
+       theory/idl/kinds \
+       theory/builtin/kinds \
+       theory/datatypes/kinds \
+       theory/strings/kinds \
+       theory/arrays/kinds \
+       theory/quantifiers/kinds \
+       theory/rewriterules/kinds \
+       theory/arith/kinds \
+       theory/booleans/kinds \
+        theory/example/ecdata.h \
+        theory/example/ecdata.cpp \
+        theory/example/theory_uf_tim.h \
+        theory/example/theory_uf_tim.cpp
 
 svn_versioninfo.cpp: svninfo
        $(AM_V_GEN)( \
@@ -199,3 +565,30 @@ uninstall-local:
        -rmdir "$(DESTDIR)$(includedir)/cvc4/bindings"
        -rmdir "$(DESTDIR)$(includedir)/cvc4"
        -rmdir "$(DESTDIR)$(libdir)/ocaml/cvc4"
+
+include @top_srcdir@/src/theory/Makefile.subdirs
+
+theory/rewriter_tables.h: theory/rewriter_tables_template.h theory/mkrewriter @top_builddir@/src/theory/.subdirs @top_srcdir@/src/theory/*/kinds
+       $(AM_V_at)chmod +x @srcdir@/theory/mkrewriter
+       $(AM_V_at)$(am__mv) $@ $@~ 2>/dev/null || true
+       $(AM_V_GEN)(@srcdir@/theory/mkrewriter \
+               $< \
+               `cat @top_builddir@/src/theory/.subdirs` \
+       > $@) || (rm -f $@ && exit 1)
+
+theory/theory_traits.h: theory/theory_traits_template.h theory/mktheorytraits @top_builddir@/src/theory/.subdirs @top_srcdir@/src/theory/*/kinds
+       $(AM_V_at)chmod +x @srcdir@/theory/mktheorytraits
+       $(AM_V_at)$(am__mv) $@ $@~ 2>/dev/null || true
+       $(AM_V_GEN)(@srcdir@/theory/mktheorytraits \
+               $< \
+               `cat @top_builddir@/src/theory/.subdirs` \
+       > $@) || (rm -f $@ && exit 1)
+
+theory/type_enumerator.cpp: theory/type_enumerator_template.cpp theory/mktheorytraits @top_builddir@/src/theory/.subdirs @top_srcdir@/src/theory/*/kinds
+       $(AM_V_at)chmod +x @srcdir@/theory/mktheorytraits
+       $(AM_V_at)$(am__mv) $@ $@~ 2>/dev/null || true
+       $(AM_V_GEN)(@srcdir@/theory/mktheorytraits \
+               $< \
+               `cat @top_builddir@/src/theory/.subdirs` \
+       > $@) || (rm -f $@ && exit 1)
+
index 11dffe9f0a90e0423d4224c20d58ade95d0f5bfb..5a8bd454ebe0eba4926a4805ed24bfd0370b8ec1 100644 (file)
@@ -20,26 +20,17 @@ AM_CXXFLAGS = -Wall -Wno-unknown-pragmas
 if CVC4_BUILD_LIBCOMPAT
 
 lib_LTLIBRARIES = libcvc4compat.la
-if HAVE_CXXTESTGEN
-check_LTLIBRARIES = libcvc4compat_noinst.la
-endif
 
 libcvc4compat_la_LDFLAGS = \
        -version-info $(LIBCVC4COMPAT_VERSION)
-libcvc4compat_noinst_la_LDFLAGS =
 
 libcvc4compat_la_LIBADD = \
        -L@builddir@/.. -lcvc4 \
        -L@builddir@/../parser -lcvc4parser
-libcvc4compat_noinst_la_LIBADD = \
-       -L@builddir@/.. -lcvc4 \
-       -L@builddir@/../parser -lcvc4parser
 
 if CVC4_NEEDS_REPLACEMENT_FUNCTIONS
 libcvc4compat_la_LIBADD += \
        @builddir@/../lib/libreplacements.la
-libcvc4compat_noinst_la_LIBADD += \
-       @builddir@/../lib/libreplacements.la
 endif
 
 libcvc4compat_la_SOURCES = \
@@ -47,11 +38,6 @@ libcvc4compat_la_SOURCES = \
        cvc3_compat.cpp
 libcvc4compat_la_CXXFLAGS = -fno-strict-aliasing
 
-libcvc4compat_noinst_la_SOURCES = \
-       cvc3_compat.h \
-       cvc3_compat.cpp
-libcvc4compat_noinst_la_CXXFLAGS = -fno-strict-aliasing
-
 else
 
 EXTRA_DIST = \
diff --git a/src/context/Makefile b/src/context/Makefile
deleted file mode 100644 (file)
index 44ac0f2..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../..
-srcdir = src/context
-
-include $(topdir)/Makefile.subdir
diff --git a/src/context/Makefile.am b/src/context/Makefile.am
deleted file mode 100644 (file)
index 524bd5f..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -I@builddir@/.. -I@srcdir@/../include -I@srcdir@/..
-AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libcontext.la
-
-libcontext_la_SOURCES = \
-       context.cpp \
-       context.h \
-       context_mm.cpp \
-       context_mm.h \
-       cdo.h \
-       cdlist.h \
-       cdchunk_list.h \
-       cdlist_forward.h \
-       cdqueue.h \
-       cdtrail_queue.h \
-       cdtrail_hashmap.h \
-       cdtrail_hashmap_forward.h \
-       cdinsert_hashmap.h \
-       cdinsert_hashmap_forward.h \
-       cdhashmap.h \
-       cdhashmap_forward.h \
-       cdhashset.h \
-       cdhashset_forward.h \
-       cdvector.h \
-       cdmaybe.h \
-       stacking_map.h \
-       stacking_vector.h \
-       cddense_set.h
diff --git a/src/decision/Makefile b/src/decision/Makefile
deleted file mode 100644 (file)
index 27978f8..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../..
-srcdir = src/decision
-
-include $(topdir)/Makefile.subdir
diff --git a/src/decision/Makefile.am b/src/decision/Makefile.am
deleted file mode 100644 (file)
index f75a17a..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -I@builddir@/.. -I@srcdir@/../include -I@srcdir@/..
-AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libdecision.la
-
-libdecision_la_SOURCES = \
-       decision_mode.h \
-       decision_mode.cpp \
-       decision_engine.h \
-       decision_engine.cpp \
-       decision_strategy.h \
-       justification_heuristic.h \
-       justification_heuristic.cpp
-
-EXTRA_DIST = \
-       options_handlers.h
index bf52da184724285dad2a921d9d36be27751a82d5..16ee454c8b42bede99d324cc0c00d102c13f6851 100644 (file)
@@ -15,13 +15,14 @@ libexpr_la_SOURCES = \
        type.h \
        type.cpp \
        node_value.h \
+       node_value.cpp \
        node_manager.h \
+       node_manager.cpp \
+       node_manager_attributes.h \
        type_checker.h \
        attribute.h \
        attribute_internals.h \
        attribute.cpp \
-       node_manager.cpp \
-       node_value.cpp \
        command.h \
        command.cpp \
        symbol_table.h \
index 721a0940385cee2826db64e3775799ea134008a9..f9939fa90b753496b56046766c563977813fca00 100644 (file)
@@ -587,6 +587,85 @@ inline void AttributeManager::deleteAllFromTable(AttrHash<T>& table) {
 
 }/* CVC4::expr::attr namespace */
 }/* CVC4::expr namespace */
+
+template <class AttrKind>
+inline typename AttrKind::value_type
+NodeManager::getAttribute(expr::NodeValue* nv, const AttrKind&) const {
+  return d_attrManager->getAttribute(nv, AttrKind());
+}
+
+template <class AttrKind>
+inline bool NodeManager::hasAttribute(expr::NodeValue* nv,
+                                      const AttrKind&) const {
+  return d_attrManager->hasAttribute(nv, AttrKind());
+}
+
+template <class AttrKind>
+inline bool
+NodeManager::getAttribute(expr::NodeValue* nv, const AttrKind&,
+                          typename AttrKind::value_type& ret) const {
+  return d_attrManager->getAttribute(nv, AttrKind(), ret);
+}
+
+template <class AttrKind>
+inline void
+NodeManager::setAttribute(expr::NodeValue* nv, const AttrKind&,
+                          const typename AttrKind::value_type& value) {
+  d_attrManager->setAttribute(nv, AttrKind(), value);
+}
+
+template <class AttrKind>
+inline typename AttrKind::value_type
+NodeManager::getAttribute(TNode n, const AttrKind&) const {
+  return d_attrManager->getAttribute(n.d_nv, AttrKind());
+}
+
+template <class AttrKind>
+inline bool
+NodeManager::hasAttribute(TNode n, const AttrKind&) const {
+  return d_attrManager->hasAttribute(n.d_nv, AttrKind());
+}
+
+template <class AttrKind>
+inline bool
+NodeManager::getAttribute(TNode n, const AttrKind&,
+                          typename AttrKind::value_type& ret) const {
+  return d_attrManager->getAttribute(n.d_nv, AttrKind(), ret);
+}
+
+template <class AttrKind>
+inline void
+NodeManager::setAttribute(TNode n, const AttrKind&,
+                          const typename AttrKind::value_type& value) {
+  d_attrManager->setAttribute(n.d_nv, AttrKind(), value);
+}
+
+template <class AttrKind>
+inline typename AttrKind::value_type
+NodeManager::getAttribute(TypeNode n, const AttrKind&) const {
+  return d_attrManager->getAttribute(n.d_nv, AttrKind());
+}
+
+template <class AttrKind>
+inline bool
+NodeManager::hasAttribute(TypeNode n, const AttrKind&) const {
+  return d_attrManager->hasAttribute(n.d_nv, AttrKind());
+}
+
+template <class AttrKind>
+inline bool
+NodeManager::getAttribute(TypeNode n, const AttrKind&,
+                          typename AttrKind::value_type& ret) const {
+  return d_attrManager->getAttribute(n.d_nv, AttrKind(), ret);
+}
+
+template <class AttrKind>
+inline void
+NodeManager::setAttribute(TypeNode n, const AttrKind&,
+                          const typename AttrKind::value_type& value) {
+  d_attrManager->setAttribute(n.d_nv, AttrKind(), value);
+}
+
 }/* CVC4 namespace */
 
 #endif /* __CVC4__EXPR__ATTRIBUTE_H */
index ad9ec49ac5ab4b79c26cbb89d0d5add0781fed0c..32a1d73e12555de82cda6c1b06b42168e747b2d6 100644 (file)
@@ -19,6 +19,7 @@
 #include "expr/expr_manager_scope.h"
 #include "expr/variable_type_map.h"
 #include "util/cvc4_assert.h"
+#include "expr/node_manager_attributes.h"
 
 #include <vector>
 #include <iterator>
index 30f7ce8b9f118539d2ba5a58aa3d516c9144dc6e..b1614f31baef6ae4ceba61a444b7536605ed6cbb 100644 (file)
@@ -15,6 +15,7 @@
  **/
 
 #include "expr/node.h"
+#include "expr/attribute.h"
 #include "util/output.h"
 
 #include <iostream>
@@ -51,4 +52,42 @@ UnknownTypeException::UnknownTypeException(TNode n) throw() :
                                " its type cannot be computed until it is substituted away") {
 }
 
+/** Is this node constant? (and has that been computed yet?) */
+struct IsConstTag { };
+struct IsConstComputedTag { };
+typedef expr::Attribute<IsConstTag, bool> IsConstAttr;
+typedef expr::Attribute<IsConstComputedTag, bool> IsConstComputedAttr;
+
+template <bool ref_count>
+bool NodeTemplate<ref_count>::isConst() const {
+  assertTNodeNotExpired();
+  Debug("isConst") << "Node::isConst() for: " << *this << std::endl;
+  if(isNull()) {
+    return false;
+  }
+  switch(getMetaKind()) {
+  case kind::metakind::CONSTANT:
+    Debug("isConst") << "Node::isConst() returning true, it's a CONSTANT" << std::endl;
+    return true;
+  case kind::metakind::VARIABLE:
+    Debug("isConst") << "Node::isConst() returning false, it's a VARIABLE" << std::endl;
+    return false;
+  default:
+    if(getAttribute(IsConstComputedAttr())) {
+      bool bval = getAttribute(IsConstAttr());
+      Debug("isConst") << "Node::isConst() returning cached value " << (bval ? "true" : "false") << " for: " << *this << std::endl;
+      return bval;
+    } else {
+      bool bval = expr::TypeChecker::computeIsConst(NodeManager::currentNM(), *this);
+      Debug("isConst") << "Node::isConst() computed value " << (bval ? "true" : "false") << " for: " << *this << std::endl;
+      const_cast< NodeTemplate<ref_count>* >(this)->setAttribute(IsConstAttr(), bval);
+      const_cast< NodeTemplate<ref_count>* >(this)->setAttribute(IsConstComputedAttr(), true);
+      return bval;
+    }
+  }
+}
+
+template bool NodeTemplate<true>::isConst() const;
+template bool NodeTemplate<false>::isConst() const;
+
 }/* CVC4 namespace */
index e6a163a8b701086a2b818707fb55f836d3f005ab..3c058c92406676585b36d73b054a83388908ecab 100644 (file)
@@ -443,7 +443,7 @@ public:
    * Returns true if this node represents a constant
    * @return true if const
    */
-  inline bool isConst() const;
+  bool isConst() const;
 
   /**
    * Returns true if this node represents a constant
@@ -921,7 +921,7 @@ inline std::ostream& operator<<(std::ostream& out,
 
 #include <ext/hash_map>
 
-#include "expr/attribute.h"
+//#include "expr/attribute.h"
 #include "expr/node_manager.h"
 #include "expr/type_checker.h"
 
@@ -1271,42 +1271,6 @@ TypeNode NodeTemplate<ref_count>::getType(bool check) const
   return NodeManager::currentNM()->getType(*this, check);
 }
 
-/** Is this node constant? (and has that been computed yet?) */
-struct IsConstTag { };
-struct IsConstComputedTag { };
-typedef expr::Attribute<IsConstTag, bool> IsConstAttr;
-typedef expr::Attribute<IsConstComputedTag, bool> IsConstComputedAttr;
-
-template <bool ref_count>
-inline bool
-NodeTemplate<ref_count>::isConst() const {
-  assertTNodeNotExpired();
-  Debug("isConst") << "Node::isConst() for: " << *this << std::endl;
-  if(isNull()) {
-    return false;
-  }
-  switch(getMetaKind()) {
-  case kind::metakind::CONSTANT:
-    Debug("isConst") << "Node::isConst() returning true, it's a CONSTANT" << std::endl;
-    return true;
-  case kind::metakind::VARIABLE:
-    Debug("isConst") << "Node::isConst() returning false, it's a VARIABLE" << std::endl;
-    return false;
-  default:
-    if(getAttribute(IsConstComputedAttr())) {
-      bool bval = getAttribute(IsConstAttr());
-      Debug("isConst") << "Node::isConst() returning cached value " << (bval ? "true" : "false") << " for: " << *this << std::endl;
-      return bval;
-    } else {
-      bool bval = expr::TypeChecker::computeIsConst(NodeManager::currentNM(), *this);
-      Debug("isConst") << "Node::isConst() computed value " << (bval ? "true" : "false") << " for: " << *this << std::endl;
-      const_cast< NodeTemplate<ref_count>* >(this)->setAttribute(IsConstAttr(), bval);
-      const_cast< NodeTemplate<ref_count>* >(this)->setAttribute(IsConstComputedAttr(), true);
-      return bval;
-    }
-  }
-}
-
 template <bool ref_count>
 inline Node
 NodeTemplate<ref_count>::substitute(TNode node, TNode replacement) const {
index cc890b9b9a3af507d5004320124bea89d3d8611d..f6424cfe02c9fb351fbb6325315f33f2f5e82aae 100644 (file)
@@ -17,7 +17,9 @@
  **/
 
 #include "expr/node_manager.h"
+#include "expr/node_manager_attributes.h"
 
+#include "expr/attribute.h"
 #include "util/cvc4_assert.h"
 #include "options/options.h"
 #include "util/statistics_registry.h"
@@ -83,7 +85,7 @@ NodeManager::NodeManager(context::Context* ctxt,
   d_options(new Options()),
   d_statisticsRegistry(new StatisticsRegistry()),
   next_id(0),
-  d_attrManager(ctxt),
+  d_attrManager(new expr::attr::AttributeManager(ctxt)),
   d_exprManager(exprManager),
   d_nodeUnderDeletion(NULL),
   d_inReclaimZombies(false),
@@ -97,7 +99,7 @@ NodeManager::NodeManager(context::Context* ctxt,
   d_options(new Options(options)),
   d_statisticsRegistry(new StatisticsRegistry()),
   next_id(0),
-  d_attrManager(ctxt),
+  d_attrManager(new expr::attr::AttributeManager(ctxt)),
   d_exprManager(exprManager),
   d_nodeUnderDeletion(NULL),
   d_inReclaimZombies(false),
@@ -105,7 +107,7 @@ NodeManager::NodeManager(context::Context* ctxt,
   init();
 }
 
-inline void NodeManager::init() {
+void NodeManager::init() {
   poolInsert( &expr::NodeValue::s_null );
 
   for(unsigned i = 0; i < unsigned(kind::LAST_KIND); ++i) {
@@ -125,7 +127,7 @@ NodeManager::~NodeManager() {
 
   {
     ScopedBool dontGC(d_inReclaimZombies);
-    d_attrManager.deleteAllAttributes();
+    d_attrManager->deleteAllAttributes();
   }
 
   for(unsigned i = 0; i < unsigned(kind::LAST_KIND); ++i) {
@@ -153,6 +155,7 @@ NodeManager::~NodeManager() {
   }
 
   delete d_statisticsRegistry;
+  delete d_attrManager;
   delete d_options;
 }
 
@@ -216,7 +219,7 @@ void NodeManager::reclaimZombies() {
       d_nodeUnderDeletion = nv;
 
       // remove attributes
-      d_attrManager.deleteAllAttributes(nv);
+      d_attrManager->deleteAllAttributes(nv);
 
       // decr ref counts of children
       nv->decrRefCounts();
@@ -432,4 +435,155 @@ TypeNode NodeManager::getDatatypeForTupleRecord(TypeNode t) {
   return dtt;
 }
 
+TypeNode NodeManager::mkSort(uint32_t flags) {
+  NodeBuilder<1> nb(this, kind::SORT_TYPE);
+  Node sortTag = NodeBuilder<0>(this, kind::SORT_TAG);
+  nb << sortTag;
+  TypeNode tn = nb.constructTypeNode();
+  for(std::vector<NodeManagerListener*>::iterator i = d_listeners.begin(); i != d_listeners.end(); ++i) {
+    (*i)->nmNotifyNewSort(tn, flags);
+  }
+  return tn;
+}
+
+TypeNode NodeManager::mkSort(const std::string& name, uint32_t flags) {
+  NodeBuilder<1> nb(this, kind::SORT_TYPE);
+  Node sortTag = NodeBuilder<0>(this, kind::SORT_TAG);
+  nb << sortTag;
+  TypeNode tn = nb.constructTypeNode();
+  setAttribute(tn, expr::VarNameAttr(), name);
+  for(std::vector<NodeManagerListener*>::iterator i = d_listeners.begin(); i != d_listeners.end(); ++i) {
+    (*i)->nmNotifyNewSort(tn, flags);
+  }
+  return tn;
+}
+
+TypeNode NodeManager::mkSort(TypeNode constructor,
+                                    const std::vector<TypeNode>& children,
+                                    uint32_t flags) {
+  Assert(constructor.getKind() == kind::SORT_TYPE &&
+         constructor.getNumChildren() == 0,
+         "expected a sort constructor");
+  Assert(children.size() > 0, "expected non-zero # of children");
+  Assert( hasAttribute(constructor.d_nv, expr::SortArityAttr()) &&
+          hasAttribute(constructor.d_nv, expr::VarNameAttr()),
+          "expected a sort constructor" );
+  std::string name = getAttribute(constructor.d_nv, expr::VarNameAttr());
+  Assert(getAttribute(constructor.d_nv, expr::SortArityAttr()) == children.size(),
+         "arity mismatch in application of sort constructor");
+  NodeBuilder<> nb(this, kind::SORT_TYPE);
+  Node sortTag = Node(constructor.d_nv->d_children[0]);
+  nb << sortTag;
+  nb.append(children);
+  TypeNode type = nb.constructTypeNode();
+  setAttribute(type, expr::VarNameAttr(), name);
+  for(std::vector<NodeManagerListener*>::iterator i = d_listeners.begin(); i != d_listeners.end(); ++i) {
+    (*i)->nmNotifyInstantiateSortConstructor(constructor, type, flags);
+  }
+  return type;
+}
+
+TypeNode NodeManager::mkSortConstructor(const std::string& name,
+                                        size_t arity) {
+  Assert(arity > 0);
+  NodeBuilder<> nb(this, kind::SORT_TYPE);
+  Node sortTag = NodeBuilder<0>(this, kind::SORT_TAG);
+  nb << sortTag;
+  TypeNode type = nb.constructTypeNode();
+  setAttribute(type, expr::VarNameAttr(), name);
+  setAttribute(type, expr::SortArityAttr(), arity);
+  for(std::vector<NodeManagerListener*>::iterator i = d_listeners.begin(); i != d_listeners.end(); ++i) {
+    (*i)->nmNotifyNewSortConstructor(type);
+  }
+  return type;
+}
+
+Node NodeManager::mkVar(const std::string& name, const TypeNode& type, uint32_t flags) {
+  Node n = NodeBuilder<0>(this, kind::VARIABLE);
+  setAttribute(n, TypeAttr(), type);
+  setAttribute(n, TypeCheckedAttr(), true);
+  setAttribute(n, expr::VarNameAttr(), name);
+  setAttribute(n, expr::GlobalVarAttr(), flags & ExprManager::VAR_FLAG_GLOBAL);
+  for(std::vector<NodeManagerListener*>::iterator i = d_listeners.begin(); i != d_listeners.end(); ++i) {
+    (*i)->nmNotifyNewVar(n, flags);
+  }
+  return n;
+}
+
+Node* NodeManager::mkVarPtr(const std::string& name,
+                            const TypeNode& type, uint32_t flags) {
+  Node* n = NodeBuilder<0>(this, kind::VARIABLE).constructNodePtr();
+  setAttribute(*n, TypeAttr(), type);
+  setAttribute(*n, TypeCheckedAttr(), true);
+  setAttribute(*n, expr::VarNameAttr(), name);
+  setAttribute(*n, expr::GlobalVarAttr(), flags & ExprManager::VAR_FLAG_GLOBAL);
+  for(std::vector<NodeManagerListener*>::iterator i = d_listeners.begin(); i != d_listeners.end(); ++i) {
+    (*i)->nmNotifyNewVar(*n, flags);
+  }
+  return n;
+}
+
+Node NodeManager::mkBoundVar(const std::string& name, const TypeNode& type) {
+  Node n = mkBoundVar(type);
+  setAttribute(n, expr::VarNameAttr(), name);
+  return n;
+}
+
+Node* NodeManager::mkBoundVarPtr(const std::string& name,
+                                 const TypeNode& type) {
+  Node* n = mkBoundVarPtr(type);
+  setAttribute(*n, expr::VarNameAttr(), name);
+  return n;
+}
+
+Node NodeManager::mkVar(const TypeNode& type, uint32_t flags) {
+  Node n = NodeBuilder<0>(this, kind::VARIABLE);
+  setAttribute(n, TypeAttr(), type);
+  setAttribute(n, TypeCheckedAttr(), true);
+  setAttribute(n, expr::GlobalVarAttr(), flags & ExprManager::VAR_FLAG_GLOBAL);
+  for(std::vector<NodeManagerListener*>::iterator i = d_listeners.begin(); i != d_listeners.end(); ++i) {
+    (*i)->nmNotifyNewVar(n, flags);
+  }
+  return n;
+}
+
+Node* NodeManager::mkVarPtr(const TypeNode& type, uint32_t flags) {
+  Node* n = NodeBuilder<0>(this, kind::VARIABLE).constructNodePtr();
+  setAttribute(*n, TypeAttr(), type);
+  setAttribute(*n, TypeCheckedAttr(), true);
+  setAttribute(*n, expr::GlobalVarAttr(), flags & ExprManager::VAR_FLAG_GLOBAL);
+  for(std::vector<NodeManagerListener*>::iterator i = d_listeners.begin(); i != d_listeners.end(); ++i) {
+    (*i)->nmNotifyNewVar(*n, flags);
+  }
+  return n;
+}
+
+Node NodeManager::mkBoundVar(const TypeNode& type) {
+  Node n = NodeBuilder<0>(this, kind::BOUND_VARIABLE);
+  setAttribute(n, TypeAttr(), type);
+  setAttribute(n, TypeCheckedAttr(), true);
+  return n;
+}
+
+Node* NodeManager::mkBoundVarPtr(const TypeNode& type) {
+  Node* n = NodeBuilder<0>(this, kind::BOUND_VARIABLE).constructNodePtr();
+  setAttribute(*n, TypeAttr(), type);
+  setAttribute(*n, TypeCheckedAttr(), true);
+  return n;
+}
+
+Node NodeManager::mkInstConstant(const TypeNode& type) {
+  Node n = NodeBuilder<0>(this, kind::INST_CONSTANT);
+  n.setAttribute(TypeAttr(), type);
+  n.setAttribute(TypeCheckedAttr(), true);
+  return n;
+}
+
+Node NodeManager::mkAbstractValue(const TypeNode& type) {
+  Node n = mkConst(AbstractValue(++d_abstractValueCount));
+  n.setAttribute(TypeAttr(), type);
+  n.setAttribute(TypeCheckedAttr(), true);
+  return n;
+}
+
 }/* CVC4 namespace */
index 31f6d75d99fc29c5cb7e6c401c0b5c4a4185f845..51ed1f94d92ed5ed1af23848e1b2dc1add2e1014 100644 (file)
@@ -19,7 +19,7 @@
 #include "cvc4_private.h"
 
 /* circular dependency; force node.h first */
-#include "expr/attribute.h"
+//#include "expr/attribute.h"
 #include "expr/node.h"
 #include "expr/type_node.h"
 #include "expr/expr.h"
@@ -45,27 +45,11 @@ namespace CVC4 {
 class StatisticsRegistry;
 
 namespace expr {
+  namespace attr {
+    class AttributeManager;
+  }/* CVC4::expr::attr namespace */
 
-class TypeChecker;
-
-// Definition of an attribute for the variable name.
-// TODO: hide this attribute behind a NodeManager interface.
-namespace attr {
-  struct VarNameTag { };
-  struct GlobalVarTag { };
-  struct SortArityTag { };
-  struct DatatypeTupleTag { };
-  struct DatatypeRecordTag { };
-}/* CVC4::expr::attr namespace */
-
-typedef Attribute<attr::VarNameTag, std::string> VarNameAttr;
-typedef Attribute<attr::GlobalVarTag(), bool> GlobalVarAttr;
-typedef Attribute<attr::SortArityTag, uint64_t> SortArityAttr;
-/** Attribute true for datatype types that are replacements for tuple types */
-typedef expr::Attribute<expr::attr::DatatypeTupleTag, TypeNode> DatatypeTupleAttr;
-/** Attribute true for datatype types that are replacements for record types */
-typedef expr::Attribute<expr::attr::DatatypeRecordTag, TypeNode> DatatypeRecordAttr;
-
+  class TypeChecker;
 }/* CVC4::expr namespace */
 
 /**
@@ -117,7 +101,7 @@ class NodeManager {
 
   size_t next_id;
 
-  expr::attr::AttributeManager d_attrManager;
+  expr::attr::AttributeManager* d_attrManager;
 
   /** The associated ExprManager */
   ExprManager* d_exprManager;
@@ -274,15 +258,6 @@ class NodeManager {
     expr::NodeValue* child[N];
   };/* struct NodeManager::NVStorage<N> */
 
-  // attribute tags
-  struct TypeTag { };
-  struct TypeCheckedTag { };
-
-  // NodeManager's attributes.  These aren't exposed outside of this
-  // class; use the getters.
-  typedef expr::Attribute<TypeTag, TypeNode> TypeAttr;
-  typedef expr::Attribute<TypeCheckedTag, bool> TypeCheckedAttr;
-
   /* A note on isAtomic() and isAtomicFormula() (in CVC3 parlance)..
    *
    * It has been decided for now to hold off on implementations of
@@ -781,18 +756,18 @@ public:
   inline TypeNode mkTesterType(TypeNode domain);
 
   /** Make a new (anonymous) sort of arity 0. */
-  inline TypeNode mkSort(uint32_t flags = ExprManager::SORT_FLAG_NONE);
+  TypeNode mkSort(uint32_t flags = ExprManager::SORT_FLAG_NONE);
 
   /** Make a new sort with the given name of arity 0. */
-  inline TypeNode mkSort(const std::string& name, uint32_t flags = ExprManager::SORT_FLAG_NONE);
+  TypeNode mkSort(const std::string& name, uint32_t flags = ExprManager::SORT_FLAG_NONE);
 
   /** Make a new sort by parameterizing the given sort constructor. */
-  inline TypeNode mkSort(TypeNode constructor,
-                         const std::vector<TypeNode>& children,
-                         uint32_t flags = ExprManager::SORT_FLAG_NONE);
+  TypeNode mkSort(TypeNode constructor,
+                  const std::vector<TypeNode>& children,
+                  uint32_t flags = ExprManager::SORT_FLAG_NONE);
 
   /** Make a new sort with the given name and arity. */
-  inline TypeNode mkSortConstructor(const std::string& name, size_t arity);
+  TypeNode mkSortConstructor(const std::string& name, size_t arity);
 
   /**
    * Make a predicate subtype type defined by the given LAMBDA
@@ -933,86 +908,6 @@ public:
   }
 };/* class NodeManagerScope */
 
-
-template <class AttrKind>
-inline typename AttrKind::value_type
-NodeManager::getAttribute(expr::NodeValue* nv, const AttrKind&) const {
-  return d_attrManager.getAttribute(nv, AttrKind());
-}
-
-template <class AttrKind>
-inline bool NodeManager::hasAttribute(expr::NodeValue* nv,
-                                      const AttrKind&) const {
-  return d_attrManager.hasAttribute(nv, AttrKind());
-}
-
-template <class AttrKind>
-inline bool
-NodeManager::getAttribute(expr::NodeValue* nv, const AttrKind&,
-                          typename AttrKind::value_type& ret) const {
-  return d_attrManager.getAttribute(nv, AttrKind(), ret);
-}
-
-template <class AttrKind>
-inline void
-NodeManager::setAttribute(expr::NodeValue* nv, const AttrKind&,
-                          const typename AttrKind::value_type& value) {
-  d_attrManager.setAttribute(nv, AttrKind(), value);
-}
-
-template <class AttrKind>
-inline typename AttrKind::value_type
-NodeManager::getAttribute(TNode n, const AttrKind&) const {
-  return d_attrManager.getAttribute(n.d_nv, AttrKind());
-}
-
-template <class AttrKind>
-inline bool
-NodeManager::hasAttribute(TNode n, const AttrKind&) const {
-  return d_attrManager.hasAttribute(n.d_nv, AttrKind());
-}
-
-template <class AttrKind>
-inline bool
-NodeManager::getAttribute(TNode n, const AttrKind&,
-                          typename AttrKind::value_type& ret) const {
-  return d_attrManager.getAttribute(n.d_nv, AttrKind(), ret);
-}
-
-template <class AttrKind>
-inline void
-NodeManager::setAttribute(TNode n, const AttrKind&,
-                          const typename AttrKind::value_type& value) {
-  d_attrManager.setAttribute(n.d_nv, AttrKind(), value);
-}
-
-template <class AttrKind>
-inline typename AttrKind::value_type
-NodeManager::getAttribute(TypeNode n, const AttrKind&) const {
-  return d_attrManager.getAttribute(n.d_nv, AttrKind());
-}
-
-template <class AttrKind>
-inline bool
-NodeManager::hasAttribute(TypeNode n, const AttrKind&) const {
-  return d_attrManager.hasAttribute(n.d_nv, AttrKind());
-}
-
-template <class AttrKind>
-inline bool
-NodeManager::getAttribute(TypeNode n, const AttrKind&,
-                          typename AttrKind::value_type& ret) const {
-  return d_attrManager.getAttribute(n.d_nv, AttrKind(), ret);
-}
-
-template <class AttrKind>
-inline void
-NodeManager::setAttribute(TypeNode n, const AttrKind&,
-                          const typename AttrKind::value_type& value) {
-  d_attrManager.setAttribute(n.d_nv, AttrKind(), value);
-}
-
-
 /** Get the (singleton) type for booleans. */
 inline TypeNode NodeManager::booleanType() {
   return TypeNode(mkTypeConst<TypeConstant>(BOOLEAN_TYPE));
@@ -1229,69 +1124,6 @@ inline bool NodeManager::hasOperator(Kind k) {
   }
 }
 
-inline TypeNode NodeManager::mkSort(uint32_t flags) {
-  NodeBuilder<1> nb(this, kind::SORT_TYPE);
-  Node sortTag = NodeBuilder<0>(this, kind::SORT_TAG);
-  nb << sortTag;
-  TypeNode tn = nb.constructTypeNode();
-  for(std::vector<NodeManagerListener*>::iterator i = d_listeners.begin(); i != d_listeners.end(); ++i) {
-    (*i)->nmNotifyNewSort(tn, flags);
-  }
-  return tn;
-}
-
-inline TypeNode NodeManager::mkSort(const std::string& name, uint32_t flags) {
-  NodeBuilder<1> nb(this, kind::SORT_TYPE);
-  Node sortTag = NodeBuilder<0>(this, kind::SORT_TAG);
-  nb << sortTag;
-  TypeNode tn = nb.constructTypeNode();
-  setAttribute(tn, expr::VarNameAttr(), name);
-  for(std::vector<NodeManagerListener*>::iterator i = d_listeners.begin(); i != d_listeners.end(); ++i) {
-    (*i)->nmNotifyNewSort(tn, flags);
-  }
-  return tn;
-}
-
-inline TypeNode NodeManager::mkSort(TypeNode constructor,
-                                    const std::vector<TypeNode>& children,
-                                    uint32_t flags) {
-  Assert(constructor.getKind() == kind::SORT_TYPE &&
-         constructor.getNumChildren() == 0,
-         "expected a sort constructor");
-  Assert(children.size() > 0, "expected non-zero # of children");
-  Assert( hasAttribute(constructor.d_nv, expr::SortArityAttr()) &&
-          hasAttribute(constructor.d_nv, expr::VarNameAttr()),
-          "expected a sort constructor" );
-  std::string name = getAttribute(constructor.d_nv, expr::VarNameAttr());
-  Assert(getAttribute(constructor.d_nv, expr::SortArityAttr()) == children.size(),
-         "arity mismatch in application of sort constructor");
-  NodeBuilder<> nb(this, kind::SORT_TYPE);
-  Node sortTag = Node(constructor.d_nv->d_children[0]);
-  nb << sortTag;
-  nb.append(children);
-  TypeNode type = nb.constructTypeNode();
-  setAttribute(type, expr::VarNameAttr(), name);
-  for(std::vector<NodeManagerListener*>::iterator i = d_listeners.begin(); i != d_listeners.end(); ++i) {
-    (*i)->nmNotifyInstantiateSortConstructor(constructor, type, flags);
-  }
-  return type;
-}
-
-inline TypeNode NodeManager::mkSortConstructor(const std::string& name,
-                                               size_t arity) {
-  Assert(arity > 0);
-  NodeBuilder<> nb(this, kind::SORT_TYPE);
-  Node sortTag = NodeBuilder<0>(this, kind::SORT_TAG);
-  nb << sortTag;
-  TypeNode type = nb.constructTypeNode();
-  setAttribute(type, expr::VarNameAttr(), name);
-  setAttribute(type, expr::SortArityAttr(), arity);
-  for(std::vector<NodeManagerListener*>::iterator i = d_listeners.begin(); i != d_listeners.end(); ++i) {
-    (*i)->nmNotifyNewSortConstructor(type);
-  }
-  return type;
-}
-
 inline Kind NodeManager::operatorToKind(TNode n) {
   return kind::operatorToKind(n.d_nv);
 }
@@ -1540,95 +1372,6 @@ inline TypeNode NodeManager::mkTypeNode(Kind kind,
   return NodeBuilder<>(this, kind).append(children).constructTypeNode();
 }
 
-
-inline Node NodeManager::mkVar(const std::string& name, const TypeNode& type, uint32_t flags) {
-  Node n = NodeBuilder<0>(this, kind::VARIABLE);
-  setAttribute(n, TypeAttr(), type);
-  setAttribute(n, TypeCheckedAttr(), true);
-  setAttribute(n, expr::VarNameAttr(), name);
-  setAttribute(n, expr::GlobalVarAttr(), flags & ExprManager::VAR_FLAG_GLOBAL);
-  for(std::vector<NodeManagerListener*>::iterator i = d_listeners.begin(); i != d_listeners.end(); ++i) {
-    (*i)->nmNotifyNewVar(n, flags);
-  }
-  return n;
-}
-
-inline Node* NodeManager::mkVarPtr(const std::string& name,
-                                   const TypeNode& type, uint32_t flags) {
-  Node* n = NodeBuilder<0>(this, kind::VARIABLE).constructNodePtr();
-  setAttribute(*n, TypeAttr(), type);
-  setAttribute(*n, TypeCheckedAttr(), true);
-  setAttribute(*n, expr::VarNameAttr(), name);
-  setAttribute(*n, expr::GlobalVarAttr(), flags & ExprManager::VAR_FLAG_GLOBAL);
-  for(std::vector<NodeManagerListener*>::iterator i = d_listeners.begin(); i != d_listeners.end(); ++i) {
-    (*i)->nmNotifyNewVar(*n, flags);
-  }
-  return n;
-}
-
-inline Node NodeManager::mkBoundVar(const std::string& name, const TypeNode& type) {
-  Node n = mkBoundVar(type);
-  setAttribute(n, expr::VarNameAttr(), name);
-  return n;
-}
-
-inline Node* NodeManager::mkBoundVarPtr(const std::string& name,
-                                        const TypeNode& type) {
-  Node* n = mkBoundVarPtr(type);
-  setAttribute(*n, expr::VarNameAttr(), name);
-  return n;
-}
-
-inline Node NodeManager::mkVar(const TypeNode& type, uint32_t flags) {
-  Node n = NodeBuilder<0>(this, kind::VARIABLE);
-  setAttribute(n, TypeAttr(), type);
-  setAttribute(n, TypeCheckedAttr(), true);
-  setAttribute(n, expr::GlobalVarAttr(), flags & ExprManager::VAR_FLAG_GLOBAL);
-  for(std::vector<NodeManagerListener*>::iterator i = d_listeners.begin(); i != d_listeners.end(); ++i) {
-    (*i)->nmNotifyNewVar(n, flags);
-  }
-  return n;
-}
-
-inline Node* NodeManager::mkVarPtr(const TypeNode& type, uint32_t flags) {
-  Node* n = NodeBuilder<0>(this, kind::VARIABLE).constructNodePtr();
-  setAttribute(*n, TypeAttr(), type);
-  setAttribute(*n, TypeCheckedAttr(), true);
-  setAttribute(*n, expr::GlobalVarAttr(), flags & ExprManager::VAR_FLAG_GLOBAL);
-  for(std::vector<NodeManagerListener*>::iterator i = d_listeners.begin(); i != d_listeners.end(); ++i) {
-    (*i)->nmNotifyNewVar(*n, flags);
-  }
-  return n;
-}
-
-inline Node NodeManager::mkBoundVar(const TypeNode& type) {
-  Node n = NodeBuilder<0>(this, kind::BOUND_VARIABLE);
-  setAttribute(n, TypeAttr(), type);
-  setAttribute(n, TypeCheckedAttr(), true);
-  return n;
-}
-
-inline Node* NodeManager::mkBoundVarPtr(const TypeNode& type) {
-  Node* n = NodeBuilder<0>(this, kind::BOUND_VARIABLE).constructNodePtr();
-  setAttribute(*n, TypeAttr(), type);
-  setAttribute(*n, TypeCheckedAttr(), true);
-  return n;
-}
-
-inline Node NodeManager::mkInstConstant(const TypeNode& type) {
-  Node n = NodeBuilder<0>(this, kind::INST_CONSTANT);
-  n.setAttribute(TypeAttr(), type);
-  n.setAttribute(TypeCheckedAttr(), true);
-  return n;
-}
-
-inline Node NodeManager::mkAbstractValue(const TypeNode& type) {
-  Node n = mkConst(AbstractValue(++d_abstractValueCount));
-  n.setAttribute(TypeAttr(), type);
-  n.setAttribute(TypeCheckedAttr(), true);
-  return n;
-}
-
 template <class T>
 Node NodeManager::mkConst(const T& val) {
   return mkConstInternal<Node, T>(val);
diff --git a/src/expr/node_manager_attributes.h b/src/expr/node_manager_attributes.h
new file mode 100644 (file)
index 0000000..ab55baa
--- /dev/null
@@ -0,0 +1,48 @@
+/*********************                                                        */
+/*! \file node_manager_attributes.h
+ ** \verbatim
+ ** Original author: Morgan Deters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 project.
+ ** Copyright (c) 2009-2013  New York University and The University of Iowa
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
+#pragma once
+
+#include "expr/attribute.h"
+
+namespace CVC4 {
+namespace expr {
+
+// Definition of an attribute for the variable name.
+// TODO: hide this attribute behind a NodeManager interface.
+namespace attr {
+  struct VarNameTag { };
+  struct GlobalVarTag { };
+  struct SortArityTag { };
+  struct DatatypeTupleTag { };
+  struct DatatypeRecordTag { };
+  struct TypeTag { };
+  struct TypeCheckedTag { };
+}/* CVC4::expr::attr namespace */
+
+typedef Attribute<attr::VarNameTag, std::string> VarNameAttr;
+typedef Attribute<attr::GlobalVarTag(), bool> GlobalVarAttr;
+typedef Attribute<attr::SortArityTag, uint64_t> SortArityAttr;
+/** Attribute true for datatype types that are replacements for tuple types */
+typedef expr::Attribute<expr::attr::DatatypeTupleTag, TypeNode> DatatypeTupleAttr;
+/** Attribute true for datatype types that are replacements for record types */
+typedef expr::Attribute<expr::attr::DatatypeRecordTag, TypeNode> DatatypeRecordAttr;
+typedef expr::Attribute<expr::attr::TypeTag, TypeNode> TypeAttr;
+typedef expr::Attribute<expr::attr::TypeCheckedTag, bool> TypeCheckedAttr;
+
+}/* CVC4::expr namespace */
+}/* CVC4 namespace */
index f3cf992ba6ac35b427fca2068b0bd6b000b95103..672fc6aae052064515da5af4e594abb45975fbbe 100644 (file)
@@ -19,6 +19,7 @@
 #include <vector>
 
 #include "expr/node_manager.h"
+#include "expr/node_manager_attributes.h"
 #include "expr/type.h"
 #include "expr/type_node.h"
 #include "util/exception.h"
index aa7039f523ea9ea937b5b839cded2c6dc1e1909d..b2138c9a1e76e7bf64df62d4dfc3ef389538911c 100644 (file)
 
 #include "expr/type_checker.h"
 #include "expr/node_manager.h"
+#include "expr/node_manager_attributes.h"
 
 ${typechecker_includes}
 
-#line 25 "${template}"
+#line 26 "${template}"
 
 namespace CVC4 {
 namespace expr {
@@ -34,7 +35,7 @@ TypeNode TypeChecker::computeType(NodeManager* nodeManager, TNode n, bool check)
   switch(n.getKind()) {
   case kind::VARIABLE:
   case kind::SKOLEM:
-    typeNode = nodeManager->getAttribute(n, NodeManager::TypeAttr());
+    typeNode = nodeManager->getAttribute(n, TypeAttr());
     break;
   case kind::BUILTIN:
     typeNode = nodeManager->builtinOperatorType();
@@ -45,16 +46,16 @@ TypeNode TypeChecker::computeType(NodeManager* nodeManager, TNode n, bool check)
 
 ${typerules}
 
-#line 49 "${template}"
+#line 50 "${template}"
 
   default:
     Debug("getType") << "FAILURE" << std::endl;
     Unhandled(n.getKind());
   }
 
-  nodeManager->setAttribute(n, NodeManager::TypeAttr(), typeNode);
-  nodeManager->setAttribute(n, NodeManager::TypeCheckedAttr(),
-                            check || nodeManager->getAttribute(n, NodeManager::TypeCheckedAttr()));
+  nodeManager->setAttribute(n, TypeAttr(), typeNode);
+  nodeManager->setAttribute(n, TypeCheckedAttr(),
+                            check || nodeManager->getAttribute(n, TypeCheckedAttr()));
 
   return typeNode;
 
@@ -68,7 +69,7 @@ bool TypeChecker::computeIsConst(NodeManager* nodeManager, TNode n)
   switch(n.getKind()) {
 ${construles}
 
-#line 72 "${template}"
+#line 73 "${template}"
 
   default:;
   }
index 2fc38022435fc31396b5fd5fde674a12aec1f6eb..54fd2f3e855b9e04ed1a7263c840472dbef18927 100644 (file)
@@ -16,6 +16,7 @@
 
 #include <vector>
 
+#include "expr/node_manager_attributes.h"
 #include "expr/type_node.h"
 #include "expr/type_properties.h"
 
@@ -482,4 +483,15 @@ TypeNode TypeNode::leastCommonPredicateSubtype(TypeNode t0, TypeNode t1){
   }
 }
 
+/** Is this a sort kind */
+bool TypeNode::isSort() const {
+  return ( getKind() == kind::SORT_TYPE && !hasAttribute(expr::SortArityAttr()) ) ||
+    ( isPredicateSubtype() && getSubtypeParentType().isSort() );
+}
+
+/** Is this a sort constructor kind */
+bool TypeNode::isSortConstructor() const {
+  return getKind() == kind::SORT_TYPE && hasAttribute(expr::SortArityAttr());
+}
+
 }/* CVC4 namespace */
index 145ca2abab11952ee0d46ddcf38d34af407bb1d2..75d6d8063b88b3ab785707f6458e002e305d5aa2 100644 (file)
@@ -916,17 +916,6 @@ inline bool TypeNode::isSExpr() const {
     ( isPredicateSubtype() && getSubtypeParentType().isSExpr() );
 }
 
-/** Is this a sort kind */
-inline bool TypeNode::isSort() const {
-  return ( getKind() == kind::SORT_TYPE && !hasAttribute(expr::SortArityAttr()) ) ||
-    ( isPredicateSubtype() && getSubtypeParentType().isSort() );
-}
-
-/** Is this a sort constructor kind */
-inline bool TypeNode::isSortConstructor() const {
-  return getKind() == kind::SORT_TYPE && hasAttribute(expr::SortArityAttr());
-}
-
 /** Is this a predicate subtype */
 inline bool TypeNode::isPredicateSubtype() const {
   return getKind() == kind::SUBTYPE_TYPE;
index 7ead35abd5abfbe1f590d33cab8e76d5b5913ea3..a178f8dd55b0800ec9fcf62cf758f1840f24a337 100644 (file)
@@ -20,13 +20,9 @@ AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
 SUBDIRS = smt1 smt2 cvc tptp
 
 lib_LTLIBRARIES = libcvc4parser.la
-if HAVE_CXXTESTGEN
-check_LTLIBRARIES = libcvc4parser_noinst.la
-endif
 
 libcvc4parser_la_LDFLAGS = $(ANTLR_LDFLAGS) \
        -version-info $(LIBCVC4PARSER_VERSION)
-libcvc4parser_noinst_la_LDFLAGS = $(ANTLR_LDFLAGS)
 
 libcvc4parser_la_LIBADD = \
        @builddir@/smt1/libparsersmt1.la \
@@ -34,18 +30,10 @@ libcvc4parser_la_LIBADD = \
        @builddir@/tptp/libparsertptp.la \
        @builddir@/cvc/libparsercvc.la \
        -L@builddir@/.. -lcvc4
-libcvc4parser_noinst_la_LIBADD = \
-       @builddir@/smt1/libparsersmt1.la \
-       @builddir@/smt2/libparsersmt2.la \
-       @builddir@/tptp/libparsertptp.la \
-       @builddir@/cvc/libparsercvc.la \
-       @builddir@/../libcvc4_noinst.la
 
 if CVC4_NEEDS_REPLACEMENT_FUNCTIONS
 libcvc4parser_la_LIBADD += \
        @builddir@/../lib/libreplacements.la
-libcvc4parser_noinst_la_LIBADD += \
-       @builddir@/../lib/libreplacements.la
 endif
 
 libcvc4parser_la_SOURCES = \
@@ -69,27 +57,6 @@ libcvc4parser_la_SOURCES = \
        parser_exception.h \
        antlr_tracing.h
 
-libcvc4parser_noinst_la_SOURCES = \
-       antlr_input.h \
-       antlr_input.cpp \
-       antlr_input_imports.cpp \
-       antlr_line_buffered_input.h \
-       antlr_line_buffered_input.cpp \
-       bounded_token_buffer.h \
-       bounded_token_buffer.cpp \
-       bounded_token_factory.h \
-       bounded_token_factory.cpp \
-       input.h \
-       input.cpp \
-       memory_mapped_input_buffer.h \
-       memory_mapped_input_buffer.cpp \
-       parser.h \
-       parser.cpp \
-       parser_builder.h \
-       parser_builder.cpp \
-       parser_exception.h \
-       antlr_tracing.h
-
 EXTRA_DIST = \
        Makefile.antlr_tracing \
        cvc4parser.i \
diff --git a/src/printer/Makefile b/src/printer/Makefile
deleted file mode 100644 (file)
index 72baefb..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../..
-srcdir = src/printer
-
-include $(topdir)/Makefile.subdir
diff --git a/src/printer/Makefile.am b/src/printer/Makefile.am
deleted file mode 100644 (file)
index cd93808..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -I@builddir@/.. -I@srcdir@/../include -I@srcdir@/..
-AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libprinter.la
-
-libprinter_la_SOURCES = \
-       printer.h \
-       printer.cpp \
-       dagification_visitor.h \
-       dagification_visitor.cpp \
-       model_format_mode.h \
-       model_format_mode.cpp \
-       ast/ast_printer.h \
-       ast/ast_printer.cpp \
-       smt1/smt1_printer.h \
-       smt1/smt1_printer.cpp \
-       smt2/smt2_printer.h \
-       smt2/smt2_printer.cpp \
-       cvc/cvc_printer.h \
-       cvc/cvc_printer.cpp \
-       tptp/tptp_printer.h \
-       tptp/tptp_printer.cpp
-
-EXTRA_DIST = \
-       options_handlers.h
index 88c769f2661acc152b0ff1bf7d0b7340fbb7166e..8ab5c121d4c8b6e224b90dbd6e885e6b532205ae 100644 (file)
@@ -17,7 +17,7 @@
 #include "printer/ast/ast_printer.h"
 #include "expr/expr.h" // for ExprSetDepth etc..
 #include "util/language.h" // for LANG_AST
-#include "expr/node_manager.h" // for VarNameAttr
+#include "expr/node_manager_attributes.h" // for VarNameAttr
 #include "expr/command.h"
 #include "printer/dagification_visitor.h"
 #include "util/node_visitor.h"
index 513ff7276d58d0550678726c40cc8185beab8731..e0375e6e19a9fca44c6a1e2342341c4005908e33 100644 (file)
@@ -17,7 +17,7 @@
 #include "printer/cvc/cvc_printer.h"
 #include "expr/expr.h" // for ExprSetDepth etc..
 #include "util/language.h" // for LANG_AST
-#include "expr/node_manager.h" // for VarNameAttr
+#include "expr/node_manager_attributes.h" // for VarNameAttr
 #include "expr/command.h"
 #include "theory/substitutions.h"
 #include "smt/smt_engine.h"
index 756e521a67bb30caadc17eb9d0d1653f776f8d05..d086caf385f2e370f559553d37be78411abc0e9a 100644 (file)
@@ -28,6 +28,7 @@
 #include "util/language.h"
 #include "smt/smt_engine.h"
 #include "smt/options.h"
+#include "expr/node_manager_attributes.h"
 
 #include "theory/model.h"
 #include "theory/arrays/theory_arrays_rewriter.h"
diff --git a/src/proof/Makefile b/src/proof/Makefile
deleted file mode 100644 (file)
index b0985ba..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../..
-srcdir = src/proof
-
-include $(topdir)/Makefile.subdir
diff --git a/src/proof/Makefile.am b/src/proof/Makefile.am
deleted file mode 100644 (file)
index e996ddb..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -D __STDC_LIMIT_MACROS \
-       -D __STDC_FORMAT_MACROS \
-       -I@builddir@/.. -I@srcdir@/../prop/minisat -I@srcdir@/../include -I@srcdir@/..
-AM_CXXFLAGS = -Wall -Wno-parentheses -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libproof.la
-
-libproof_la_SOURCES = \
-       proof.h \
-       sat_proof.h \
-       sat_proof.cpp \
-       cnf_proof.h \
-       cnf_proof.cpp \
-       theory_proof.h \
-       theory_proof.cpp \
-       proof_manager.h \
-       proof_manager.cpp
-
-EXTRA_DIST =
diff --git a/src/prop/Makefile b/src/prop/Makefile
deleted file mode 100644 (file)
index 08f0c69..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../..
-srcdir = src/prop
-
-include $(topdir)/Makefile.subdir
diff --git a/src/prop/Makefile.am b/src/prop/Makefile.am
deleted file mode 100644 (file)
index 6b82214..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -D __STDC_LIMIT_MACROS \
-       -D __STDC_FORMAT_MACROS \
-       -I@builddir@/.. -I@srcdir@/minisat -I@srcdir@/bvminisat -I@srcdir@/../include -I@srcdir@/..
-AM_CXXFLAGS = -Wall -Wno-parentheses -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libprop.la
-
-libprop_la_SOURCES = \
-       registrar.h \
-       prop_engine.cpp \
-       prop_engine.h \
-       theory_proxy.h \
-       theory_proxy.cpp \
-       cnf_stream.h \
-       cnf_stream.cpp \
-       sat_solver.h \
-       sat_solver_types.h \
-       sat_solver_factory.h \
-       sat_solver_factory.cpp \
-       sat_solver_registry.h \
-       sat_solver_registry.cpp
-
-EXTRA_DIST = \
-       options_handlers.h
-
-SUBDIRS = minisat bvminisat
-
diff --git a/src/prop/bvminisat/Makefile b/src/prop/bvminisat/Makefile
deleted file mode 100644 (file)
index 7188801..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../../..
-srcdir = src/prop/bvminisat
-
-include $(topdir)/Makefile.subdir
diff --git a/src/prop/minisat/Makefile b/src/prop/minisat/Makefile
deleted file mode 100644 (file)
index e8b442a..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../../..
-srcdir = src/prop/minisat
-
-include $(topdir)/Makefile.subdir
diff --git a/src/smt/Makefile b/src/smt/Makefile
deleted file mode 100644 (file)
index 7103b6d..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../..
-srcdir = src/smt
-
-include $(topdir)/Makefile.subdir
diff --git a/src/smt/Makefile.am b/src/smt/Makefile.am
deleted file mode 100644 (file)
index 45c2e49..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -I@builddir@/.. -I@srcdir@/../include -I@srcdir@/..
-AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libsmt.la
-
-libsmt_la_SOURCES = \
-       smt_engine.cpp \
-       smt_engine.h \
-       model_postprocessor.cpp \
-       model_postprocessor.h \
-       smt_engine_scope.cpp \
-       smt_engine_scope.h \
-       command_list.cpp \
-       command_list.h \
-       modal_exception.h \
-       boolean_terms.h \
-       boolean_terms.cpp \
-       logic_exception.h \
-       simplification_mode.h \
-       simplification_mode.cpp
-
-nodist_libsmt_la_SOURCES = \
-       smt_options.cpp
-
-EXTRA_DIST = \
-       options_handlers.h \
-       smt_options_template.cpp \
-       modal_exception.i \
-       logic_exception.i \
-       smt_engine.i
index 9f1b9c1a66a48d56d5a8abd05a9ba6c4db91d064..1157c464edc09a3875302f8f8f06fd11272fe273 100644 (file)
@@ -22,8 +22,7 @@
 #include "theory/booleans/boolean_term_conversion_mode.h"
 #include "theory/booleans/options.h"
 #include "expr/kind.h"
-#include "util/hash.h"
-#include "util/bool.h"
+#include "expr/node_manager_attributes.h"
 #include "util/ntuple.h"
 #include <string>
 #include <algorithm>
index c61a6194001fa30a6b4376c1fbf5cf3d555c573c..686ecbbe67e79e1d8b725c993c90498264796adb 100644 (file)
@@ -16,6 +16,7 @@
 
 #include "smt/model_postprocessor.h"
 #include "smt/boolean_terms.h"
+#include "expr/node_manager_attributes.h"
 
 using namespace std;
 using namespace CVC4;
diff --git a/src/theory/Makefile b/src/theory/Makefile
deleted file mode 100644 (file)
index da7d0e6..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../..
-srcdir = src/theory
-
-include $(topdir)/Makefile.subdir
diff --git a/src/theory/Makefile.am b/src/theory/Makefile.am
deleted file mode 100644 (file)
index 860075a..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -I@builddir@/.. -I@srcdir@/../include -I@srcdir@/..
-AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-SUBDIRS = builtin booleans uf arith bv arrays datatypes quantifiers rewriterules idl strings
-DIST_SUBDIRS = $(SUBDIRS) example
-
-noinst_LTLIBRARIES = libtheory.la
-
-libtheory_la_SOURCES = \
-       decision_attributes.h \
-       logic_info.h \
-       logic_info.cpp \
-       output_channel.h \
-       interrupted.h \
-       type_enumerator.h \
-       theory_engine.h \
-       theory_engine.cpp \
-       theory_test_utils.h \
-       theory.h \
-       theory.cpp \
-       theoryof_mode.h \
-       theory_registrar.h \
-       rewriter.h \
-       rewriter_attributes.h \
-       rewriter.cpp \
-       substitutions.h \
-       substitutions.cpp \
-       valuation.h \
-       valuation.cpp \
-       shared_terms_database.h \
-       shared_terms_database.cpp \
-       term_registration_visitor.h \
-       term_registration_visitor.cpp \
-       ite_simplifier.h \
-       ite_simplifier.cpp \
-       unconstrained_simplifier.h \
-       unconstrained_simplifier.cpp \
-       quantifiers_engine.h \
-       quantifiers_engine.cpp \
-       model.h \
-       model.cpp \
-       rep_set.h \
-       rep_set.cpp \
-       atom_requests.h \
-       atom_requests.cpp
-
-nodist_libtheory_la_SOURCES = \
-       rewriter_tables.h \
-       theory_traits.h \
-       type_enumerator.cpp
-
-libtheory_la_LIBADD = \
-       @builddir@/builtin/libbuiltin.la \
-       @builddir@/booleans/libbooleans.la \
-       @builddir@/uf/libuf.la \
-       @builddir@/arith/libarith.la \
-       @builddir@/arrays/libarrays.la \
-       @builddir@/bv/libbv.la \
-       @builddir@/datatypes/libdatatypes.la \
-       @builddir@/quantifiers/libquantifiers.la \
-       @builddir@/rewriterules/librewriterules.la \
-       @builddir@/idl/libidl.la \
-       @builddir@/strings/libstrings.la
-
-EXTRA_DIST = \
-       logic_info.i \
-       options_handlers.h \
-       rewriter_tables_template.h \
-       theory_traits_template.h \
-       type_enumerator_template.cpp \
-       mktheorytraits \
-       mkrewriter \
-       Makefile.subdirs
-
-BUILT_SOURCES = \
-       rewriter_tables.h \
-       theory_traits.h \
-       type_enumerator.cpp
-
-CLEANFILES = \
-       rewriter_tables.h \
-       theory_traits.h \
-       type_enumerator.cpp
-
-include @top_srcdir@/src/theory/Makefile.subdirs
-
-rewriter_tables.h: rewriter_tables_template.h mkrewriter @top_builddir@/src/theory/.subdirs @top_srcdir@/src/theory/*/kinds
-       $(AM_V_at)chmod +x @srcdir@/mkrewriter
-       $(AM_V_at)$(am__mv) $@ $@~ 2>/dev/null || true
-       $(AM_V_GEN)(@srcdir@/mkrewriter \
-               $< \
-               `cat @top_builddir@/src/theory/.subdirs` \
-       > $@) || (rm -f $@ && exit 1)
-
-theory_traits.h: theory_traits_template.h mktheorytraits @top_builddir@/src/theory/.subdirs @top_srcdir@/src/theory/*/kinds
-       $(AM_V_at)chmod +x @srcdir@/mktheorytraits
-       $(AM_V_at)$(am__mv) $@ $@~ 2>/dev/null || true
-       $(AM_V_GEN)(@srcdir@/mktheorytraits \
-               $< \
-               `cat @top_builddir@/src/theory/.subdirs` \
-       > $@) || (rm -f $@ && exit 1)
-
-type_enumerator.cpp: type_enumerator_template.cpp mktheorytraits @top_builddir@/src/theory/.subdirs @top_srcdir@/src/theory/*/kinds
-       $(AM_V_at)chmod +x @srcdir@/mktheorytraits
-       $(AM_V_at)$(am__mv) $@ $@~ 2>/dev/null || true
-       $(AM_V_GEN)(@srcdir@/mktheorytraits \
-               $< \
-               `cat @top_builddir@/src/theory/.subdirs` \
-       > $@) || (rm -f $@ && exit 1)
index 99adc7d0ddab90cd14e55ff460b3992841a428d8..9dbe458dfdc70263618b4d261a67163c0c556429 100644 (file)
@@ -1,5 +1,5 @@
-$(top_builddir)/src/theory/.subdirs: $(top_srcdir)/src/theory/Makefile.am
-       $(AM_V_at)grep '^SUBDIRS = ' $(top_srcdir)/src/theory/Makefile.am | cut -d' ' -f3- | tr ' ' "\n" | xargs -I__D__ echo $(top_srcdir)/src/theory/__D__/kinds >$(top_builddir)/src/theory/.subdirs.tmp
+$(top_builddir)/src/theory/.subdirs: $(top_srcdir)/src/Makefile.am
+       $(AM_V_at)grep '^THEORIES = ' $(top_srcdir)/src/Makefile.am | cut -d' ' -f3- | tr ' ' "\n" | xargs -I__D__ echo $(top_srcdir)/src/theory/__D__/kinds >$(top_builddir)/src/theory/.subdirs.tmp
        @if ! diff -q $(top_builddir)/src/theory/.subdirs $(top_builddir)/src/theory/.subdirs.tmp &>/dev/null; then \
                echo "  GEN   " $@; \
                $(am__mv) $(top_builddir)/src/theory/.subdirs.tmp $(top_builddir)/src/theory/.subdirs; \
diff --git a/src/theory/arith/Makefile b/src/theory/arith/Makefile
deleted file mode 100644 (file)
index 5016522..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../../..
-srcdir = src/theory/arith
-
-include $(topdir)/Makefile.subdir
diff --git a/src/theory/arith/Makefile.am b/src/theory/arith/Makefile.am
deleted file mode 100644 (file)
index 620b8a1..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -I@builddir@/../.. -I@srcdir@/../../include -I@srcdir@/../..
-AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libarith.la
-
-libarith_la_SOURCES = \
-       theory_arith_type_rules.h \
-       type_enumerator.h \
-       arithvar.h \
-       arithvar.cpp \
-       bound_counts.h \
-       arith_rewriter.h \
-       arith_rewriter.cpp \
-       arith_static_learner.h \
-       arith_static_learner.cpp \
-       constraint_forward.h \
-       constraint.h \
-       constraint.cpp \
-       congruence_manager.h \
-       congruence_manager.cpp \
-       normal_form.h\
-       normal_form.cpp \
-       arith_utilities.h \
-       delta_rational.h \
-       delta_rational.cpp \
-       partial_model.h \
-       partial_model.cpp \
-       linear_equality.h \
-       linear_equality.cpp \
-       simplex_update.h \
-       simplex_update.cpp \
-       callbacks.h \
-       callbacks.cpp \
-       matrix.h \
-       matrix.cpp \
-       tableau.h \
-       tableau.cpp \
-       tableau_sizes.h \
-       tableau_sizes.cpp \
-       error_set.h \
-       error_set.cpp \
-       simplex.h \
-       simplex.cpp \
-       dual_simplex.h \
-       dual_simplex.cpp \
-       fc_simplex.h \
-       fc_simplex.cpp \
-       soi_simplex.h \
-       soi_simplex.cpp \
-       approx_simplex.h \
-       approx_simplex.cpp \
-       attempt_solution_simplex.h \
-       attempt_solution_simplex.cpp \
-       theory_arith.h \
-       theory_arith.cpp \
-       theory_arith_private_forward.h \
-       theory_arith_private.h \
-       theory_arith_private.cpp \
-       dio_solver.h \
-       dio_solver.cpp \
-       arith_heuristic_pivot_rule.h \
-       arith_heuristic_pivot_rule.cpp \
-       arith_unate_lemma_mode.h \
-       arith_unate_lemma_mode.cpp \
-       arith_propagation_mode.h \
-       arith_propagation_mode.cpp
-
-EXTRA_DIST = \
-       kinds \
-       options_handlers.h
diff --git a/src/theory/arrays/Makefile b/src/theory/arrays/Makefile
deleted file mode 100644 (file)
index bce529d..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../../..
-srcdir = src/theory/arrays
-
-include $(topdir)/Makefile.subdir
diff --git a/src/theory/arrays/Makefile.am b/src/theory/arrays/Makefile.am
deleted file mode 100644 (file)
index 77f102c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -I@builddir@/../.. -I@srcdir@/../../include -I@srcdir@/../..
-AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libarrays.la
-
-libarrays_la_SOURCES = \
-       theory_arrays_type_rules.h \
-       type_enumerator.h \
-       theory_arrays_rewriter.h \
-       theory_arrays.h \
-       theory_arrays.cpp \
-       union_find.h \
-       union_find.cpp \
-       array_info.h \
-       array_info.cpp \
-       static_fact_manager.h \
-       static_fact_manager.cpp
-
-EXTRA_DIST = \
-       kinds
diff --git a/src/theory/arrays/theory_arrays_rewriter.cpp b/src/theory/arrays/theory_arrays_rewriter.cpp
new file mode 100644 (file)
index 0000000..d926cd7
--- /dev/null
@@ -0,0 +1,49 @@
+/*********************                                                        */
+/*! \file theory_arrays_rewriter.cpp
+ ** \verbatim
+ ** Original author: Morgan Deters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 project.
+ ** Copyright (c) 2009-2013  New York University and The University of Iowa
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
+#include "expr/attribute.h"
+#include "theory/arrays/theory_arrays_rewriter.h"
+
+namespace CVC4 {
+namespace theory {
+namespace arrays {
+
+namespace attr {
+  struct ArrayConstantMostFrequentValueTag { };
+  struct ArrayConstantMostFrequentValueCountTag { };
+}/* CVC4::theory::arrays::attr namespace */
+
+typedef expr::Attribute<attr::ArrayConstantMostFrequentValueCountTag, uint64_t> ArrayConstantMostFrequentValueCountAttr;
+typedef expr::Attribute<attr::ArrayConstantMostFrequentValueTag, Node> ArrayConstantMostFrequentValueAttr;
+
+Node getMostFrequentValue(TNode store) {
+  return store.getAttribute(ArrayConstantMostFrequentValueAttr());
+}
+uint64_t getMostFrequentValueCount(TNode store) {
+  return store.getAttribute(ArrayConstantMostFrequentValueCountAttr());
+}
+
+void setMostFrequentValue(TNode store, TNode value) {
+  return store.setAttribute(ArrayConstantMostFrequentValueAttr(), value);
+}
+void setMostFrequentValueCount(TNode store, uint64_t count) {
+  return store.setAttribute(ArrayConstantMostFrequentValueCountAttr(), count);
+}
+
+}/* CVC4::theory::arrays namespace */
+}/* CVC4::theory namespace */
+}/* CVC4 namespace */
index 5df06bda889b1eab492291cce59c70420b6f31bb..388769412cdfc5ed4b4bc0deb593d0e22443cf17 100644 (file)
 
 #include "theory/rewriter.h"
 #include "theory/type_enumerator.h"
-#include "expr/attribute.h"
 
 namespace CVC4 {
 namespace theory {
 namespace arrays {
 
-namespace attr {
-  struct ArrayConstantMostFrequentValueTag { };
-  struct ArrayConstantMostFrequentValueCountTag { };
-}/* CVC4::theory::arrays::attr namespace */
-
-typedef expr::Attribute<attr::ArrayConstantMostFrequentValueCountTag, uint64_t> ArrayConstantMostFrequentValueCountAttr;
-typedef expr::Attribute<attr::ArrayConstantMostFrequentValueTag, Node> ArrayConstantMostFrequentValueAttr;
+Node getMostFrequentValue(TNode store);
+uint64_t getMostFrequentValueCount(TNode store);
+void setMostFrequentValue(TNode store, TNode value);
+void setMostFrequentValueCount(TNode store, uint64_t count);
 
 static inline Node mkEqNode(Node a, Node b) {
   return a.getType().isBoolean() ? a.iffNode(b) : a.eqNode(b);
@@ -132,8 +128,8 @@ public:
     unsigned mostFrequentValueCount = 0;
     store = node[0];
     if (store.getKind() == kind::STORE) {
-      mostFrequentValue = store.getAttribute(ArrayConstantMostFrequentValueAttr());
-      mostFrequentValueCount = store.getAttribute(ArrayConstantMostFrequentValueCountAttr());
+      mostFrequentValue = getMostFrequentValue(store);
+      mostFrequentValueCount = getMostFrequentValueCount(store);
     }
 
     // Compute the most frequently written value for n
index b16b62f69c0e76fef3763b047293efe881445e90..9f7bdfd4a75db0159fbbfdaf2e77ac6b0599b0cc 100644 (file)
@@ -127,8 +127,8 @@ struct ArrayStoreTypeRule {
     unsigned mostFrequentValueCount = 0;
     store = n[0];
     if (store.getKind() == kind::STORE) {
-      mostFrequentValue = store.getAttribute(ArrayConstantMostFrequentValueAttr());
-      mostFrequentValueCount = store.getAttribute(ArrayConstantMostFrequentValueCountAttr());
+      mostFrequentValue = getMostFrequentValue(store);
+      mostFrequentValueCount = getMostFrequentValueCount(store);
     }
 
     // Compute the most frequently written value for n
@@ -145,8 +145,8 @@ struct ArrayStoreTypeRule {
         (compare == Cardinality::EQUAL && (!(defaultValue < mostFrequentValue)))) {
       return false;
     }
-    n.setAttribute(ArrayConstantMostFrequentValueAttr(), mostFrequentValue);
-    n.setAttribute(ArrayConstantMostFrequentValueCountAttr(), mostFrequentValueCount);
+    setMostFrequentValue(n, mostFrequentValue);
+    setMostFrequentValueCount(n, mostFrequentValueCount);
     return true;
   }
 
diff --git a/src/theory/booleans/Makefile b/src/theory/booleans/Makefile
deleted file mode 100644 (file)
index a74a72d..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../../..
-srcdir = src/theory/bool
-
-include $(topdir)/Makefile.subdir
diff --git a/src/theory/booleans/Makefile.am b/src/theory/booleans/Makefile.am
deleted file mode 100644 (file)
index 9d58ffa..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -I@builddir@/../.. -I@srcdir@/../../include -I@srcdir@/../..
-AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libbooleans.la
-
-libbooleans_la_SOURCES = \
-       type_enumerator.h \
-       theory_bool.h \
-       theory_bool.cpp \
-       theory_bool_type_rules.h \
-       theory_bool_rewriter.h \
-       theory_bool_rewriter.cpp \
-       circuit_propagator.h \
-       circuit_propagator.cpp \
-       boolean_term_conversion_mode.h \
-       boolean_term_conversion_mode.cpp
-
-EXTRA_DIST = \
-       kinds \
-       options_handlers.h
diff --git a/src/theory/builtin/Makefile b/src/theory/builtin/Makefile
deleted file mode 100644 (file)
index 1dfd8a1..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../../..
-srcdir = src/theory/builtin
-
-include $(topdir)/Makefile.subdir
diff --git a/src/theory/builtin/Makefile.am b/src/theory/builtin/Makefile.am
deleted file mode 100644 (file)
index 6ff00fe..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -I@builddir@/../.. -I@srcdir@/../../include -I@srcdir@/../..
-AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libbuiltin.la
-
-libbuiltin_la_SOURCES = \
-       theory_builtin_type_rules.h \
-       type_enumerator.h \
-       theory_builtin_rewriter.h \
-       theory_builtin_rewriter.cpp \
-       theory_builtin.h \
-       theory_builtin.cpp
-
-EXTRA_DIST = \
-       kinds
diff --git a/src/theory/bv/Makefile b/src/theory/bv/Makefile
deleted file mode 100644 (file)
index 7974083..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../../..
-srcdir = src/theory/bv
-
-include $(topdir)/Makefile.subdir
diff --git a/src/theory/bv/Makefile.am b/src/theory/bv/Makefile.am
deleted file mode 100644 (file)
index 8651f28..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -D __STDC_LIMIT_MACROS \
-       -D __STDC_FORMAT_MACROS \
-       -I@builddir@/../.. -I@srcdir@/../../include -I@srcdir@/../..
-AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libbv.la
-
-libbv_la_SOURCES = \
-       theory_bv_utils.h \
-       type_enumerator.h \
-       bitblaster.h \
-       bitblaster.cpp \
-       bv_to_bool.h \
-       bv_to_bool.cpp \
-       bv_subtheory.h \
-       bv_subtheory_core.h \
-       bv_subtheory_core.cpp \
-       bv_subtheory_bitblast.h \
-       bv_subtheory_bitblast.cpp \
-       bv_subtheory_inequality.h \
-       bv_subtheory_inequality.cpp \
-       bv_inequality_graph.h \
-       bv_inequality_graph.cpp \
-       bitblast_strategies.h \
-       bitblast_strategies.cpp \
-       slicer.h \
-       slicer.cpp \
-       theory_bv.h \
-       theory_bv.cpp \
-       theory_bv_rewrite_rules.h \
-       theory_bv_rewrite_rules_core.h \
-       theory_bv_rewrite_rules_operator_elimination.h \
-       theory_bv_rewrite_rules_constant_evaluation.h \
-       theory_bv_rewrite_rules_normalization.h \
-       theory_bv_rewrite_rules_simplification.h \
-       theory_bv_type_rules.h \
-       theory_bv_rewriter.h \
-       theory_bv_rewriter.cpp \
-       cd_set_collection.h
-
-EXTRA_DIST = \
-       kinds
diff --git a/src/theory/datatypes/Makefile b/src/theory/datatypes/Makefile
deleted file mode 100644 (file)
index cb3da4b..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../../..
-srcdir = src/theory/datatypes
-
-include $(topdir)/Makefile.subdir
diff --git a/src/theory/datatypes/Makefile.am b/src/theory/datatypes/Makefile.am
deleted file mode 100644 (file)
index 8b788b7..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -I@builddir@/../.. -I@srcdir@/../../include -I@srcdir@/../..
-AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libdatatypes.la
-
-libdatatypes_la_SOURCES = \
-       theory_datatypes_type_rules.h \
-       type_enumerator.h \
-       theory_datatypes.h \
-       datatypes_rewriter.h \
-       theory_datatypes.cpp 
-       
-EXTRA_DIST = \
-       kinds
index 0bbef16014a37df2db46a00870a887c72f85936c..37a656555ce6428bcbce9db2dd5881b3f5520a2c 100644 (file)
@@ -22,6 +22,7 @@
 #include "theory/rewriter.h"
 #include "theory/datatypes/options.h"
 #include "theory/type_enumerator.h"
+#include "expr/node_manager_attributes.h"
 
 namespace CVC4 {
 namespace theory {
index d3efc636fe17597020aaea50369db83abde0b2c2..527d110e0e9109417e787946b5944860387f399f 100644 (file)
@@ -20,7 +20,7 @@
 #define __CVC4__THEORY__DATATYPES__THEORY_DATATYPES_TYPE_RULES_H
 
 #include "util/matcher.h"
-#include "expr/attribute.h"
+//#include "expr/attribute.h"
 
 namespace CVC4 {
 
diff --git a/src/theory/example/Makefile b/src/theory/example/Makefile
deleted file mode 100644 (file)
index be6721f..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../../..
-srcdir = src/theory/example
-
-include $(topdir)/Makefile.subdir
diff --git a/src/theory/example/Makefile.am b/src/theory/example/Makefile.am
deleted file mode 100644 (file)
index 801a048..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -I@builddir@/../.. -I@srcdir@/../../include -I@srcdir@/../..
-AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libexample.la
-
-libexample_la_SOURCES = \
-       ecdata.h \
-       ecdata.cpp \
-       theory_uf_tim.h \
-       theory_uf_tim.cpp
-
-EXTRA_DIST =
diff --git a/src/theory/idl/Makefile b/src/theory/idl/Makefile
deleted file mode 100644 (file)
index 75ae33c..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../../..
-srcdir = src/theory/idl
-
-include $(topdir)/Makefile.subdir
diff --git a/src/theory/idl/Makefile.am b/src/theory/idl/Makefile.am
deleted file mode 100644 (file)
index 4297e3b..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -I@builddir@/../.. -I@srcdir@/../../include -I@srcdir@/../..
-AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libidl.la
-
-libidl_la_SOURCES = \
-       idl_model.h \
-       idl_model.cpp \
-       idl_assertion.h \
-       idl_assertion.cpp \
-       idl_assertion_db.h \
-       idl_assertion_db.cpp \
-       theory_idl.h \
-       theory_idl.cpp
-
-EXTRA_DIST = \
-       kinds 
diff --git a/src/theory/quantifiers/Makefile b/src/theory/quantifiers/Makefile
deleted file mode 100644 (file)
index 8ffdfb5..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../../..
-srcdir = src/theory/quantifiers
-
-include $(topdir)/Makefile.subdir
diff --git a/src/theory/quantifiers/Makefile.am b/src/theory/quantifiers/Makefile.am
deleted file mode 100644 (file)
index be24d6c..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -I@builddir@/../.. -I@srcdir@/../../include -I@srcdir@/../..
-AM_CXXFLAGS = -Wall $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libquantifiers.la
-
-libquantifiers_la_SOURCES = \
-       theory_quantifiers_type_rules.h \
-       theory_quantifiers.h \
-       quantifiers_rewriter.h \
-       quantifiers_rewriter.cpp \
-       theory_quantifiers.cpp \
-       instantiation_engine.h \
-       instantiation_engine.cpp \
-       trigger.h \
-       trigger.cpp \
-       candidate_generator.h \
-       candidate_generator.cpp \
-       inst_match.h \
-       inst_match.cpp \
-       model_engine.h \
-       model_engine.cpp \
-       modes.cpp \
-       modes.h \
-       term_database.h \
-       term_database.cpp \
-       first_order_model.h \
-       first_order_model.cpp \
-       model_builder.h \
-       model_builder.cpp \
-       quantifiers_attributes.h \
-       quantifiers_attributes.cpp \
-       inst_gen.h \
-       inst_gen.cpp \
-       quant_util.h \
-       quant_util.cpp \
-       inst_match_generator.h \
-       inst_match_generator.cpp \
-       macros.h \
-       macros.cpp \
-       inst_strategy_e_matching.h \
-       inst_strategy_e_matching.cpp \
-       inst_strategy_cbqi.h \
-       inst_strategy_cbqi.cpp \
-       full_model_check.h \
-       full_model_check.cpp \
-       bounded_integers.h \
-       bounded_integers.cpp \
-       first_order_reasoning.h \
-       first_order_reasoning.cpp \
-       rewrite_engine.h \
-       rewrite_engine.cpp \
-       relevant_domain.h \
-       relevant_domain.cpp \
-       symmetry_breaking.h \
-       symmetry_breaking.cpp
-
-
-EXTRA_DIST = \
-       kinds \
-       options_handlers.h
index 05461d37855afe02a6051c456317ff4d854b4d86..7f6855feace820e06b69d4bde4247c210915eca9 100755 (executable)
@@ -29,6 +29,7 @@
 #include "util/sort_inference.h"
 #include "context/context.h"
 #include "context/context_mm.h"
+#include "context/cdhashmap.h"
 #include "context/cdchunk_list.h"
 
 namespace CVC4 {
index 1688479f3d61f85bcb2ba4195d2440eaa5babe8e..177d8b230e2c0766a5d8afe1aecfacae00679c07 100644 (file)
@@ -17,6 +17,7 @@
 #ifndef __CVC4__THEORY__QUANTIFIERS__TERM_DATABASE_H
 #define __CVC4__THEORY__QUANTIFIERS__TERM_DATABASE_H
 
+#include "expr/attribute.h"
 #include "theory/theory.h"
 
 #include <map>
index fb599e2a0af391bc2173cf2f5472ce5e41046fd1..8ebde136d1e5dc3b711ff585347a31c2f912ca90 100644 (file)
@@ -19,6 +19,7 @@
 #ifndef __CVC4__THEORY__QUANTIFIERS__THEORY_QUANTIFIERS_H
 #define __CVC4__THEORY__QUANTIFIERS__THEORY_QUANTIFIERS_H
 
+#include "context/cdhashmap.h"
 #include "theory/theory.h"
 #include "util/hash.h"
 #include "util/statistics_registry.h"
index 4245ad6f96abd2c3827dc4b5f3223f27c2b81f68..e05d97c055eb4a77e33550341911e3e6b0c813ef 100644 (file)
@@ -19,7 +19,7 @@
 #pragma once
 
 #include "expr/node.h"
-#include "expr/attribute.h"
+//#include "expr/attribute.h"
 
 namespace CVC4 {
 namespace theory {
index 45e83aa63baefcfa3a72f5faab0c43bf25fd48ab..4c4e33fc63edcbd46de9e85d60ffa553c4e2b2bc 100644 (file)
@@ -18,6 +18,8 @@
 
 #pragma once
 
+#include "expr/attribute.h"
+
 namespace CVC4 {
 namespace theory {
 
diff --git a/src/theory/rewriterules/Makefile b/src/theory/rewriterules/Makefile
deleted file mode 100644 (file)
index 4b1d4fc..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../../..
-srcdir = src/theory/rewriterules
-
-include $(topdir)/Makefile.subdir
diff --git a/src/theory/rewriterules/Makefile.am b/src/theory/rewriterules/Makefile.am
deleted file mode 100644 (file)
index a1e5771..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -I@builddir@/../.. -I@srcdir@/../../include -I@srcdir@/../..
-AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = librewriterules.la
-
-librewriterules_la_SOURCES = \
-       theory_rewriterules_rules.h \
-       theory_rewriterules_rules.cpp \
-       theory_rewriterules.h \
-       theory_rewriterules.cpp \
-       theory_rewriterules_rewriter.h \
-       theory_rewriterules_type_rules.h \
-       theory_rewriterules_preprocess.h \
-       theory_rewriterules_params.h \
-       rr_inst_match.h \
-       rr_inst_match_impl.h \
-       rr_inst_match.cpp \
-       rr_trigger.h \
-       rr_trigger.cpp \
-       rr_candidate_generator.h \
-       rr_candidate_generator.cpp \
-       efficient_e_matching.h \
-       efficient_e_matching.cpp
-
-EXTRA_DIST = \
-       kinds
diff --git a/src/theory/strings/Makefile b/src/theory/strings/Makefile
deleted file mode 100644 (file)
index e92c24a..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../../..
-srcdir = src/theory/strings
-
-include $(topdir)/Makefile.subdir
diff --git a/src/theory/strings/Makefile.am b/src/theory/strings/Makefile.am
deleted file mode 100644 (file)
index d5e5d1a..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -I@srcdir@/../../include -I@srcdir@/../.. -I@builddir@/../..
-AM_CXXFLAGS = -Wall $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libstrings.la
-
-libstrings_la_SOURCES = \
-       theory_strings.h \
-       theory_strings.cpp \
-       theory_strings_rewriter.h \
-       theory_strings_rewriter.cpp \
-       theory_strings_type_rules.h \
-       type_enumerator.h \
-       theory_strings_preprocess.h \
-       theory_strings_preprocess.cpp \
-       regexp_operation.h \
-       regexp_operation.cpp
-
-EXTRA_DIST = \
-       kinds
index 21a5aacf59850ff899bd4305f4361ae763fba0be..fdd2d05185c8987f3c9ca31020ab257c601d144d 100644 (file)
@@ -20,7 +20,7 @@
 #define __CVC4__THEORY__THEORY_H
 
 #include "expr/node.h"
-#include "expr/attribute.h"
+//#include "expr/attribute.h"
 #include "expr/command.h"
 #include "theory/valuation.h"
 #include "theory/output_channel.h"
diff --git a/src/theory/uf/Makefile b/src/theory/uf/Makefile
deleted file mode 100644 (file)
index c3c6413..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-topdir = ../../..
-srcdir = src/theory/uf
-
-include $(topdir)/Makefile.subdir
diff --git a/src/theory/uf/Makefile.am b/src/theory/uf/Makefile.am
deleted file mode 100644 (file)
index 50c5080..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-AM_CPPFLAGS = \
-       -D__BUILDING_CVC4LIB \
-       -I@builddir@/../.. -I@srcdir@/../../include -I@srcdir@/../..
-AM_CXXFLAGS = -Wall -Wno-unknown-pragmas $(FLAG_VISIBILITY_HIDDEN)
-
-noinst_LTLIBRARIES = libuf.la
-
-libuf_la_SOURCES = \
-       theory_uf.h \
-       theory_uf.cpp \
-       theory_uf_type_rules.h \
-       theory_uf_rewriter.h \
-       equality_engine.h \
-       equality_engine_types.h \
-       equality_engine.cpp \
-       symmetry_breaker.h \
-       symmetry_breaker.cpp \
-       theory_uf_strong_solver.h \
-       theory_uf_strong_solver.cpp \
-       theory_uf_model.h \
-       theory_uf_model.cpp 
-
-EXTRA_DIST = \
-       kinds \
-       options_handlers.h
index 8d1b6f1d9bf15938ae625aca0a3879ddca50ba2f..a9294dc696d6e1bc22aaf21651bc0ccfb80b1afc 100644 (file)
@@ -27,6 +27,7 @@
 #include "expr/node.h"
 #include "expr/kind_map.h"
 #include "context/cdo.h"
+#include "context/cdhashmap.h"
 #include "util/output.h"
 #include "util/statistics_registry.h"
 #include "theory/rewriter.h"
index 9ca146bdeb2585f0cb277fcef7c7bba87d6a0449..2c9b4b7d5fbc7c5cf718c2f6e237f36d88b0da2b 100644 (file)
@@ -21,7 +21,7 @@
 #define __CVC4__THEORY__UF__THEORY_UF_H
 
 #include "expr/node.h"
-#include "expr/attribute.h"
+//#include "expr/attribute.h"
 
 #include "theory/theory.h"
 #include "theory/uf/equality_engine.h"
index 284212ba97bac2de44945bb89b590313443b3dbe..bf41a256de7c4aaaea7aa0a962b852a7b5d6fc14 100644 (file)
@@ -12,6 +12,7 @@
  ** \brief Implementation of Theory UF Model
  **/
 
+#include "expr/attribute.h"
 #include "theory/theory_engine.h"
 #include "theory/uf/theory_uf_model.h"
 #include "theory/uf/equality_engine.h"
index 9111ec6a72d5da86382da1a1de46f897a134a8fe..079a03c36bf787b8fa033ad17e5ffac095d6bde9 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "context/context.h"
 #include "context/context_mm.h"
+#include "context/cdhashmap.h"
 #include "context/cdchunk_list.h"
 
 #include "util/statistics_registry.h"
index 8db91da69c466573568891bc306e1a7a3e615187..1c5dd3e0795bc97dd50e5dabf0f7e5c93ff6f627 100644 (file)
@@ -24,6 +24,7 @@
 #include "expr/expr_manager_scope.h"
 #include "expr/node_manager.h"
 #include "expr/node.h"
+#include "expr/attribute.h"
 #include "util/recursion_breaker.h"
 #include "util/matcher.h"
 #include "util/cvc4_assert.h"
index a5530ab6d103cea66da3fc0d971ec466fa31cdb7..937a4e8c83108e93eb2aa8b9cb77655ad436cb2a 100644 (file)
@@ -1,5 +1,11 @@
 # All unit tests
 UNIT_TESTS = \
+       expr/expr_public \
+       expr/expr_manager_public \
+       expr/type_cardinality_public \
+       util/cardinality_public
+if WHITE_AND_BLACK_TESTS
+UNIT_TESTS += \
        theory/logic_info_white \
        theory/theory_engine_white \
        theory/theory_black \
@@ -7,8 +13,6 @@ UNIT_TESTS = \
        theory/theory_arith_white \
        theory/theory_bv_white \
        theory/type_enumerator_white \
-       expr/expr_public \
-       expr/expr_manager_public \
        expr/node_white \
        expr/node_black \
        expr/kind_black \
@@ -20,7 +24,6 @@ UNIT_TESTS = \
        expr/attribute_black \
        expr/symbol_table_black \
        expr/node_self_iterator_black \
-       expr/type_cardinality_public \
        expr/type_node_white \
        parser/parser_black \
        parser/parser_builder_black \
@@ -51,9 +54,9 @@ UNIT_TESTS = \
        util/trans_closure_black \
        util/boolean_simplification_black \
        util/subrange_bound_white \
-       util/cardinality_public \
        util/recursion_breaker_black \
        main/interactive_shell_black
+endif
 
 export VERBOSE = 1
 
@@ -88,12 +91,12 @@ AM_LDFLAGS_BLACK =
 AM_LDFLAGS_PUBLIC =
 AM_LIBADD_WHITE = \
        @abs_top_builddir@/src/main/libmain.a \
-       @abs_top_builddir@/src/parser/libcvc4parser_noinst.la \
-       @abs_top_builddir@/src/libcvc4_noinst.la
+       @abs_top_builddir@/src/parser/libcvc4parser.la \
+       @abs_top_builddir@/src/libcvc4.la
 AM_LIBADD_BLACK = \
        @abs_top_builddir@/src/main/libmain.a \
-       @abs_top_builddir@/src/parser/libcvc4parser_noinst.la \
-       @abs_top_builddir@/src/libcvc4_noinst.la
+       @abs_top_builddir@/src/parser/libcvc4parser.la \
+       @abs_top_builddir@/src/libcvc4.la
 AM_LIBADD_PUBLIC = \
        @abs_top_builddir@/src/parser/libcvc4parser.la \
        @abs_top_builddir@/src/libcvc4.la
index 5ce5badd012d4b2c7e173bc80f14f864fa7c68f4..f5d1af5cda6705e7dd6e1feedc2c6d29bc583e07 100644 (file)
@@ -23,6 +23,7 @@
 #include "expr/node_builder.h"
 #include "expr/node_manager.h"
 #include "expr/attribute.h"
+#include "expr/node_manager_attributes.h"
 #include "expr/node.h"
 #include "theory/theory.h"
 #include "theory/theory_engine.h"
@@ -143,7 +144,7 @@ public:
 //    TS_ASSERT_DIFFERS(theory::PreRewriteCacheTop::s_id, theory::PostRewriteCacheTop::s_id);
 
     lastId = attr::LastAttributeId<TypeNode, false>::getId();
-    TS_ASSERT_LESS_THAN(NodeManager::TypeAttr::s_id, lastId);
+    TS_ASSERT_LESS_THAN(TypeAttr::s_id, lastId);
 
   }
 
index 8c70dfdcfe777a154124b5e4d00508a17fcfbcb9..860dfb1a9993345e8ce15da7616967e0dae4734b 100644 (file)
@@ -20,6 +20,7 @@
 #include <vector>
 
 #include "expr/node_manager.h"
+#include "expr/node_manager_attributes.h"
 #include "context/context.h"
 
 #include "util/rational.h"