Add std::hash overloads for Node, TNode and TypeNode. (#6534)
authorMathias Preiner <mathias.preiner@gmail.com>
Thu, 13 May 2021 06:33:00 +0000 (23:33 -0700)
committerGitHub <noreply@github.com>
Thu, 13 May 2021 06:33:00 +0000 (06:33 +0000)
commit31242de4b423d7225174dd1672edb2dacb68f5b8
tree657a453475affc67628b1391909af92f3346b411
parentffd7bb2069df08c31fd9d8a03d786f1e9fc7147c
Add std::hash overloads for Node, TNode and TypeNode. (#6534)

Eliminates NodeHashFunction, TNodeHashFunction and TypeNodeHashFunction.
323 files changed:
src/api/cpp/cvc5.cpp
src/context/cdhashset.h
src/decision/assertion_list.cpp
src/decision/assertion_list.h
src/decision/justification_heuristic.h
src/expr/array_store_all.cpp
src/expr/ascription_type.cpp
src/expr/bound_var_manager.h
src/expr/buffered_proof_generator.h
src/expr/dtype.cpp
src/expr/dtype.h
src/expr/emptybag.cpp
src/expr/emptyset.cpp
src/expr/lazy_proof.h
src/expr/lazy_proof_chain.cpp
src/expr/lazy_proof_chain.h
src/expr/node.cpp
src/expr/node.h
src/expr/node_algorithm.cpp
src/expr/node_algorithm.h
src/expr/node_traversal.h
src/expr/proof.h
src/expr/proof_node_algorithm.cpp
src/expr/proof_node_manager.cpp
src/expr/sequence.cpp
src/expr/skolem_manager.cpp
src/expr/tconv_seq_proof_generator.h
src/expr/term_conversion_proof_generator.cpp
src/expr/term_conversion_proof_generator.h
src/expr/type_node.cpp
src/expr/type_node.h
src/expr/uninterpreted_constant.cpp
src/preprocessing/passes/ackermann.cpp
src/preprocessing/passes/ackermann.h
src/preprocessing/passes/bool_to_bv.cpp
src/preprocessing/passes/bool_to_bv.h
src/preprocessing/passes/bv_gauss.cpp
src/preprocessing/passes/bv_gauss.h
src/preprocessing/passes/bv_intro_pow2.cpp
src/preprocessing/passes/bv_to_bool.h
src/preprocessing/passes/bv_to_int.h
src/preprocessing/passes/foreign_theory_rewrite.h
src/preprocessing/passes/global_negate.cpp
src/preprocessing/passes/ho_elim.cpp
src/preprocessing/passes/ho_elim.h
src/preprocessing/passes/int_to_bv.cpp
src/preprocessing/passes/miplib_trick.cpp
src/preprocessing/passes/nl_ext_purify.cpp
src/preprocessing/passes/nl_ext_purify.h
src/preprocessing/passes/non_clausal_simp.cpp
src/preprocessing/passes/pseudo_boolean_processor.h
src/preprocessing/passes/real_to_int.h
src/preprocessing/passes/sygus_inference.cpp
src/preprocessing/passes/synth_rew_rules.cpp
src/preprocessing/passes/theory_rewrite_eq.cpp
src/preprocessing/passes/unconstrained_simplifier.h
src/preprocessing/preprocessing_pass_context.cpp
src/preprocessing/preprocessing_pass_context.h
src/preprocessing/util/ite_utilities.cpp
src/preprocessing/util/ite_utilities.h
src/printer/let_binding.cpp
src/printer/let_binding.h
src/proof/cnf_proof.h
src/proof/proof_manager.h
src/prop/cnf_stream.h
src/prop/sat_proof_manager.cpp
src/prop/sat_proof_manager.h
src/prop/skolem_def_manager.cpp
src/prop/skolem_def_manager.h
src/prop/theory_proxy.cpp
src/prop/theory_proxy.h
src/smt/abstract_values.h
src/smt/check_models.cpp
src/smt/expand_definitions.cpp
src/smt/expand_definitions.h
src/smt/model_blocker.cpp
src/smt/model_core_builder.cpp
src/smt/preprocess_proof_generator.cpp
src/smt/preprocess_proof_generator.h
src/smt/preprocessor.cpp
src/smt/preprocessor.h
src/smt/process_assertions.h
src/smt/proof_post_processor.cpp
src/smt/smt_engine.cpp
src/smt/smt_engine.h
src/smt/sygus_solver.cpp
src/smt/term_formula_removal.cpp
src/smt/term_formula_removal.h
src/smt/witness_form.cpp
src/smt/witness_form.h
src/smt_util/nary_builder.h
src/theory/arith/arith_ite_utils.h
src/theory/arith/arith_preprocess.cpp
src/theory/arith/arith_preprocess.h
src/theory/arith/arith_static_learner.h
src/theory/arith/arith_utilities.cpp
src/theory/arith/arith_utilities.h
src/theory/arith/congruence_manager.h
src/theory/arith/constraint.h
src/theory/arith/dio_solver.cpp
src/theory/arith/dio_solver.h
src/theory/arith/inference_manager.h
src/theory/arith/nl/ext/ext_state.h
src/theory/arith/nl/ext/monomial_check.cpp
src/theory/arith/nl/ext/split_zero_check.h
src/theory/arith/nl/iand_solver.h
src/theory/arith/nl/icp/icp_solver.cpp
src/theory/arith/nl/nl_model.cpp
src/theory/arith/nl/nl_model.h
src/theory/arith/nl/nonlinear_extension.cpp
src/theory/arith/nl/nonlinear_extension.h
src/theory/arith/nl/transcendental/transcendental_solver.cpp
src/theory/arith/nl/transcendental/transcendental_state.h
src/theory/arith/theory_arith_private.cpp
src/theory/arith/theory_arith_private.h
src/theory/arrays/array_info.h
src/theory/arrays/theory_arrays.cpp
src/theory/arrays/theory_arrays.h
src/theory/arrays/theory_arrays_rewriter.cpp
src/theory/arrays/union_find.cpp
src/theory/atom_requests.h
src/theory/bags/inference_manager.h
src/theory/bags/make_bag_op.cpp
src/theory/bags/term_registry.h
src/theory/booleans/circuit_propagator.h
src/theory/booleans/proof_checker.cpp
src/theory/booleans/theory_bool_rewriter.cpp
src/theory/builtin/theory_builtin_rewriter.cpp
src/theory/builtin/theory_builtin_rewriter.h
src/theory/bv/abstraction.h
src/theory/bv/bitblast/aig_bitblaster.h
src/theory/bv/bitblast/bitblaster.h
src/theory/bv/bitblast/eager_bitblaster.h
src/theory/bv/bitblast/proof_bitblaster.cpp
src/theory/bv/bitblast/proof_bitblaster.h
src/theory/bv/bitblast/simple_bitblaster.h
src/theory/bv/bv_eager_solver.h
src/theory/bv/bv_inequality_graph.h
src/theory/bv/bv_quick_check.h
src/theory/bv/bv_solver_bitblast.cpp
src/theory/bv/bv_solver_bitblast.h
src/theory/bv/bv_solver_lazy.h
src/theory/bv/bv_solver_simple.cpp
src/theory/bv/bv_subtheory_algebraic.cpp
src/theory/bv/bv_subtheory_algebraic.h
src/theory/bv/bv_subtheory_bitblast.h
src/theory/bv/bv_subtheory_core.h
src/theory/bv/bv_subtheory_inequality.h
src/theory/bv/int_blaster.h
src/theory/bv/theory_bv_rewrite_rules_normalization.h
src/theory/bv/theory_bv_utils.cpp
src/theory/bv/theory_bv_utils.h
src/theory/datatypes/infer_proof_cons.h
src/theory/datatypes/sygus_datatype_utils.cpp
src/theory/datatypes/sygus_datatype_utils.h
src/theory/datatypes/sygus_extension.cpp
src/theory/datatypes/sygus_extension.h
src/theory/datatypes/theory_datatypes.h
src/theory/datatypes/theory_datatypes_type_rules.cpp
src/theory/eager_proof_generator.h
src/theory/evaluator.cpp
src/theory/evaluator.h
src/theory/ext_theory.h
src/theory/fp/fp_converter.h
src/theory/fp/fp_expand_defs.h
src/theory/fp/theory_fp.cpp
src/theory/fp/theory_fp.h
src/theory/quantifiers/bv_inverter.cpp
src/theory/quantifiers/bv_inverter.h
src/theory/quantifiers/candidate_rewrite_database.cpp
src/theory/quantifiers/candidate_rewrite_database.h
src/theory/quantifiers/candidate_rewrite_filter.cpp
src/theory/quantifiers/candidate_rewrite_filter.h
src/theory/quantifiers/cegqi/ceg_bv_instantiator.cpp
src/theory/quantifiers/cegqi/ceg_bv_instantiator.h
src/theory/quantifiers/cegqi/ceg_bv_instantiator_utils.cpp
src/theory/quantifiers/cegqi/ceg_bv_instantiator_utils.h
src/theory/quantifiers/cegqi/ceg_instantiator.cpp
src/theory/quantifiers/cegqi/ceg_instantiator.h
src/theory/quantifiers/cegqi/inst_strategy_cegqi.h
src/theory/quantifiers/cegqi/nested_qe.cpp
src/theory/quantifiers/cegqi/nested_qe.h
src/theory/quantifiers/conjecture_generator.h
src/theory/quantifiers/ematching/ho_trigger.cpp
src/theory/quantifiers/ematching/ho_trigger.h
src/theory/quantifiers/ematching/pattern_term_selector.cpp
src/theory/quantifiers/ematching/trigger.cpp
src/theory/quantifiers/equality_query.cpp
src/theory/quantifiers/equality_query.h
src/theory/quantifiers/extended_rewrite.cpp
src/theory/quantifiers/fmf/bounded_integers.h
src/theory/quantifiers/fmf/full_model_check.cpp
src/theory/quantifiers/fmf/full_model_check.h
src/theory/quantifiers/fun_def_evaluator.cpp
src/theory/quantifiers/instantiate.h
src/theory/quantifiers/proof_checker.cpp
src/theory/quantifiers/quant_bound_inference.cpp
src/theory/quantifiers/quant_bound_inference.h
src/theory/quantifiers/quant_conflict_find.cpp
src/theory/quantifiers/quant_conflict_find.h
src/theory/quantifiers/quant_split.h
src/theory/quantifiers/quantifiers_macros.cpp
src/theory/quantifiers/quantifiers_rewriter.cpp
src/theory/quantifiers/quantifiers_rewriter.h
src/theory/quantifiers/query_generator.h
src/theory/quantifiers/single_inv_partition.cpp
src/theory/quantifiers/single_inv_partition.h
src/theory/quantifiers/skolemize.cpp
src/theory/quantifiers/skolemize.h
src/theory/quantifiers/sygus/cegis.cpp
src/theory/quantifiers/sygus/cegis.h
src/theory/quantifiers/sygus/cegis_core_connective.cpp
src/theory/quantifiers/sygus/cegis_core_connective.h
src/theory/quantifiers/sygus/enum_stream_substitution.cpp
src/theory/quantifiers/sygus/enum_stream_substitution.h
src/theory/quantifiers/sygus/example_infer.cpp
src/theory/quantifiers/sygus/example_infer.h
src/theory/quantifiers/sygus/example_min_eval.cpp
src/theory/quantifiers/sygus/rcons_obligation_info.cpp
src/theory/quantifiers/sygus/rcons_obligation_info.h
src/theory/quantifiers/sygus/rcons_type_info.h
src/theory/quantifiers/sygus/sygus_abduct.cpp
src/theory/quantifiers/sygus/sygus_enumerator.cpp
src/theory/quantifiers/sygus/sygus_enumerator.h
src/theory/quantifiers/sygus/sygus_enumerator_basic.h
src/theory/quantifiers/sygus/sygus_eval_unfold.cpp
src/theory/quantifiers/sygus/sygus_eval_unfold.h
src/theory/quantifiers/sygus/sygus_grammar_cons.cpp
src/theory/quantifiers/sygus/sygus_grammar_cons.h
src/theory/quantifiers/sygus/sygus_interpol.cpp
src/theory/quantifiers/sygus/sygus_interpol.h
src/theory/quantifiers/sygus/sygus_invariance.cpp
src/theory/quantifiers/sygus/sygus_invariance.h
src/theory/quantifiers/sygus/sygus_process_conj.cpp
src/theory/quantifiers/sygus/sygus_process_conj.h
src/theory/quantifiers/sygus/sygus_reconstruct.cpp
src/theory/quantifiers/sygus/sygus_reconstruct.h
src/theory/quantifiers/sygus/sygus_repair_const.cpp
src/theory/quantifiers/sygus/sygus_repair_const.h
src/theory/quantifiers/sygus/sygus_unif_io.cpp
src/theory/quantifiers/sygus/sygus_unif_io.h
src/theory/quantifiers/sygus/sygus_unif_rl.h
src/theory/quantifiers/sygus/synth_engine.h
src/theory/quantifiers/sygus/term_database_sygus.cpp
src/theory/quantifiers/sygus/term_database_sygus.h
src/theory/quantifiers/sygus_inst.cpp
src/theory/quantifiers/sygus_inst.h
src/theory/quantifiers/sygus_sampler.cpp
src/theory/quantifiers/term_database.cpp
src/theory/quantifiers/term_database.h
src/theory/quantifiers/term_enumeration.cpp
src/theory/quantifiers/term_enumeration.h
src/theory/quantifiers/term_pools.cpp
src/theory/quantifiers/term_registry.h
src/theory/quantifiers/term_util.cpp
src/theory/quantifiers_engine.h
src/theory/relevance_manager.cpp
src/theory/relevance_manager.h
src/theory/rep_set.cpp
src/theory/rewriter.cpp
src/theory/rewriter.h
src/theory/sep/theory_sep.h
src/theory/sets/cardinality_extension.h
src/theory/sets/inference_manager.h
src/theory/sets/singleton_op.cpp
src/theory/sets/skolem_cache.h
src/theory/sets/solver_state.h
src/theory/sets/term_registry.h
src/theory/sets/theory_sets_private.h
src/theory/sets/theory_sets_rels.cpp
src/theory/sets/theory_sets_rels.h
src/theory/shared_terms_database.h
src/theory/strings/arith_entail.cpp
src/theory/strings/base_solver.h
src/theory/strings/core_solver.cpp
src/theory/strings/core_solver.h
src/theory/strings/extf_solver.cpp
src/theory/strings/extf_solver.h
src/theory/strings/infer_proof_cons.h
src/theory/strings/inference_manager.h
src/theory/strings/regexp_operation.cpp
src/theory/strings/regexp_operation.h
src/theory/strings/regexp_solver.cpp
src/theory/strings/regexp_solver.h
src/theory/strings/skolem_cache.h
src/theory/strings/strings_fmf.h
src/theory/strings/term_registry.cpp
src/theory/strings/term_registry.h
src/theory/strings/theory_strings.cpp
src/theory/strings/theory_strings.h
src/theory/strings/theory_strings_utils.cpp
src/theory/subs_minimize.cpp
src/theory/substitutions.h
src/theory/term_registration_visitor.h
src/theory/theory.cpp
src/theory/theory.h
src/theory/theory_engine.cpp
src/theory/theory_engine.h
src/theory/theory_engine_proof_generator.h
src/theory/theory_inference_manager.h
src/theory/theory_model.cpp
src/theory/theory_model.h
src/theory/theory_model_builder.cpp
src/theory/theory_model_builder.h
src/theory/theory_preprocessor.h
src/theory/theory_proof_step_buffer.cpp
src/theory/trust_substitutions.h
src/theory/type_set.cpp
src/theory/type_set.h
src/theory/uf/cardinality_extension.h
src/theory/uf/eq_proof.cpp
src/theory/uf/eq_proof.h
src/theory/uf/equality_engine.h
src/theory/uf/ho_extension.cpp
src/theory/uf/ho_extension.h
src/theory/uf/proof_equality_engine.h
src/theory/uf/symmetry_breaker.cpp
src/theory/uf/symmetry_breaker.h
src/theory/uf/theory_uf.cpp
test/unit/node/node_algorithm_black.cpp
test/unit/preprocessing/pass_bv_gauss_white.cpp
test/unit/theory/theory_quantifiers_bv_instantiator_white.cpp
test/unit/theory/type_enumerator_white.cpp