36.2.6 Name Auto-Generation

There are two cases when a name is automatically generated.

  1. When a name is assigned to a compound term by the user, each variable appearing in it is assigned a so called derived name, which is created by appending a variant of the selector of the variable to the original name. For example, the call:
              fdbg_assign_name(bar(A, [B, C], foobar(D, E)), foo)
         

    will create the following name/term entries:

    Name Term/Variable Selector
    foo bar(A, [B, C], foobar(D, E)) []
    foo_1 A [1]
    foo_2_1 B [2,#1]
    foo_2_2 C [2,#2]
    foo_3_1 D [3,1]
    foo_3_2 E [3,2]

    See FDBG Naming Terms.

  2. If, during the annotation of a term (see FDBG Annotation) an unnamed constraint variable is found, it is assigned a unique “anonymous” name. This name consists of the prefix `fdvar', an underscore character, and an integer. The integer is automatically incremented when necessary.