Similarly to variable selection strategies, Grace also provides a number of value selection strategies and it allows the user to define new ones. They can be accessed by pressing the VALUE... menubutton:
The default strategies are:
This labelling strategy usually does not instantiate the variable.
Each value selection predicate has the format
select_value(?Var, +List, -NewList)
where Var is the variable which should be labelled, List is the current list of all variables and NewList is the new list of variables to be labelled after applying the value selection on the variable Var. NewList is normally equal to List without the variable Var if the labelling instantiated Var. Otherwise, if the labelling step did not instantiate Var, the variable must be labelled again and so List and NewList are equal. For example, the Smallest Element strategy is defined as
smallest_element(Var, List, NewList) :- delete_var(Var, List, NewList), indomain(Var).
Value selection strategies can be selected either using the VALUE... menu or using the value_selection option. The items in the VALUE... menu itself can be modified with the value_selections option.