simplify mkSkolem naming system: don't use $$
authorKshitij Bansal <kshitij@cs.nyu.edu>
Thu, 17 Apr 2014 17:03:30 +0000 (13:03 -0400)
committerKshitij Bansal <kshitij@cs.nyu.edu>
Thu, 17 Apr 2014 17:40:15 +0000 (13:40 -0400)
commitf26477575d4328104ee6882c5d7d55740964543d
tree8dc248031d8cc213762f0fa30ff13a7b8f851984
parent4b02944c70522de78713f9870d2eccbf348bfcf6
simplify mkSkolem naming system: don't use $$

Short summary: By default NODEID is appeneded, just continue doing what you
were, just don't add the _$$ at the end.

Long summary:

Before this commit there were four (yes!) ways to specify the names for new
skolems, which result in names as given below

1) mkSkolem("name", ..., SKOLEM_FLAG_DEFAULT)  -> "name_NODEID"
2) mkSkolem("name", ..., SKOLEM_EXACT_NAME)  -> "name"
3) mkSkolem("name_$$", ..., SKOLEM_FLAG_DEFAULT) -> "name_NODEID"
4) mkSkolem("na_$$_me", ..., SKOLEM_FLAG_DEFAULT) -> "na_NODEID_me"

After this commit, only 1) and 2) stay.

90% usage is of 1) or 3), which results in exact same behavior (and
looking at the source code it doesn't look like everyone realized that
the _$$ is just redundant).

Almost no one used 4), which is the only reason to even have $$. Post this
commit if you really want a number in the middle, manually construct the
name and use the SKOLEM_EXACT_NAME flag.
22 files changed:
src/expr/node_manager.cpp
src/expr/node_manager.h
src/theory/arith/arith_ite_utils.cpp
src/theory/arith/theory_arith_private.cpp
src/theory/arrays/theory_arrays.cpp
src/theory/builtin/theory_builtin_type_rules.h
src/theory/bv/theory_bv_utils.h
src/theory/datatypes/theory_datatypes.cpp
src/theory/ite_utilities.cpp
src/theory/quantifiers/bounded_integers.cpp
src/theory/quantifiers/first_order_model.cpp
src/theory/quantifiers/full_model_check.cpp
src/theory/quantifiers/macros.cpp
src/theory/quantifiers/quantifiers_rewriter.cpp
src/theory/quantifiers/term_database.cpp
src/theory/rep_set.cpp
src/theory/strings/regexp_operation.cpp
src/theory/strings/theory_strings.cpp
src/theory/strings/theory_strings_preprocess.cpp
src/theory/unconstrained_simplifier.cpp
src/util/ite_removal.cpp
src/util/sort_inference.cpp