I have been developing an algorithm to compute the congruence defined by a finite set of "generators" and a finite set of equations (in the sense of equational theories). The algorithm terminates if the free algebra defined by the generators and the function symbols used by the equations is finite. (Its carrier is finite.) Now the following question arises: are the "generators" values, constants, or variables ?
This simply is a question of terminology.
My method uses a data structure representing large families of ground terms and the generators are considered as constants in those terms. On the other hand, the generators are elements of the free algebra. And, finally, the generators of the free algebra are generally considered as variables in the equations. So I am faced with a problem of terminology. Note also that, in my method, nothing prevents me from using the generators in the equations. But then I consider them as constants. In a sense, in my method, I combine the equations and the generators to generate ground equations. Since the free algebra is finite, only a finite number of equations needs to be generated. However, in the end, when the free algebra is computed, it represents (a huge number of) equalities wherein the generators can be interpreted as universally quantified variables. Thus, my question: are the generators constants or variables? Should I call them constant or variable. Similarly, the equalities represented by the free algebra : are they equalities between ground or non-ground terms?