Some suggested renamings for the merge-and-shrink options:
* abstraction_max_size => max_states
* abstraction_nr => count
* collapsing => shrink_strategy
* composition => merge_strategy
Suggested reordering of options:
1. max_states
2. bound_is_for_product
3. count
4. merge_strategy
5. shrink_strategy
Additional changes:
* The values 5 for both options are invalid; the respective enum values are
meant as markers for the "last plus one" value so that the cmd-line options
can be tested against this with "<". So these should not be accepted in the
code (if they currently are), and the corresponding TODO: invalid entries
should be removed from the documentation page.
In a later step, I suggest to change the meaning of the "max_states" and
"bound_is_for_product" options. The latter should be replaced with an integer
"max_states_before_merge" option and the meaning of the options should be
changed so that neither of these has a default value, either of them is
optional, but at least one of the two has been specified.
The call
mas(max_states=1000)
would then be equivalent to the old
mas(max_states=1000, bound_is_for_product=false)
The call
mas(max_states_before_merge=100)
would then be equivalent to the old
mas(max_states=100, bound_is_for_product=true)
And the call
mas(max_states=1000, max_states_before_merge=100)
would express something which could not be expressed with the old option set.
|