[Next] [up] [Previous]
Next: 3. Transition rules Up: EVOLVING ALGEBRAS:AN ATTEMPT TO Previous: 1. Another computation

2. Static algebras

Q: Please explain to me what static algebras are exactly.

A: Gladly. Let me start at the very beginning. The term signature will be used to mean a finite collection of function names. It is supposed that each function name comes with an indication of its arity, i.e., the number of arguments. A static algebra of a signature sigma is a nonempty set S, called the superuniverse, together with interpretations on S of function names in sigma . A function name of arity r is interpreted as an r-ary function from S to S, i.e., a function from S^r to S, and is called a basic function of the algebra. A basic function of arity zero is called a distinguished element.

Q: I thought a function is always a function of something so that the arity of a function is at least one.

A: Stretching notions is not new to science; recall the notion of zero-speed motion in physics for example. One may insist that zero-speed motion is no motion at all, but it is more convenient1< to view zero-speed motion as a special case of motion. By the way, in standard terminology, the term ``universe'', rather than ``superuniverse'', is used. We reserve the term ``universe'' for other purposes.

Here is an example of a static algebra (which I will have to modify). Suppose that a signature sigma contains zero-ary function names 0, 1 and binary function names + and *. One static algebra of signature sigma is obtained as follows: Take the superuniverse to be the set of integers and interpret the function names in the obvious way. There are other natural static algebras of signature sigma , but in general a static algebra need not be natural; it may be very arbitrary.

Q: I understand that static algebras will represent snapshots of computational processes. Isn't your definition too restrictive? For example, you may want to extend that arithmetical static algebra by the division operation but the division operation is partial.

A: Instead of generalizing the notion of a static algebra by permitting partial functions, we will restrict attention to algebras with a distinguished element undef. In particular, that arithmetical algebra above should be modified by adding a new element undef. It can be further extended by adding the division function; we will have a / b = undef unless both a and b are integers and b divides a. Formally, every r-ary basic function f is defined on every r-tuple [a] of elements of the superuniverse, but we will say that f is undefined at f([a]) if f([a]) = undef; the set of tuples [a] with f([a]) <> undef will be called the domain of f.

Q: Still, your static algebras seem too restrictive to me. How do you deal with different data types?

A: One possibility would be to generalize the notion of a static algebra and to consider many-sorted algebras; such algebras are widely used. But this is not necessary. We will suppose that every static algebra contains distinguished elements true and false. A basic function U, defined on the whole superuniverse, with values in {true, false}will be viewed as the set of elements a such that U(a) = true and called a universe. We will say that a belongs to U if U(a) = true.

Further, we will suppose that every static algebra has the equality relation, a universe Bool, comprising two elements true and false, and the usual boolean operations; the result of any boolean operation is undef if at least one of the arguments is outside Bool. Thus the arithmetical algebra should be modified again; a universe Integer comprising the integers can be declared as well. A relation R on a particular universe U will be represented by (and identified with) the characteristic function of R which is undefined (i.e. equal to undef) if at least one of the arguments is outside of U . Now we may further augment the twice modified arithmetic algebra by the standard ordering of integers.

Q: You can dispense with one of the two boolean values as it is done in Lisp. For example, true may be dropped and then any element different from false, with the possible exception of undef, will represent boolean truth.

A: Sure, but I prefer to distinguish between boolean truth and, say, numbers.

Q: Why do you need the trick of coding relations as functions? Why can't a signature contain relation names?

A: The reason is to make updates, introduced below, applicable to relations as well. By the way, ever-present basic functions with predetermined domains and values are called logical constants. Logical constants may be omitted when a static algebra is described. For example, the thrice modified arithmetical algebra can be described as follows. It has (1) a universe Integer comprising the integer numbers, (2) distinguished integers 0 and 1, (3) the usual total binary operations + and *, the usual partial operation / and the usual ordering < on Integer.

Q: Did we finish with logical constants?

A: Almost. Sometimes it is necessary to suppose that there is auxiliary infinite (or sufficiently large finite) universe Reserve disjoint from other universes and a special function that selects an element of Reserve. The role of Reserve will be clear soon.

Q: I am confused. I thought that we will be dealing with finite feasible static algebras reflecting snapshots of real computer computations. If this is the case, then there is no room for infinite universes.

A: In principle it is possible to keep everything finite and feasible. For example, the Reserve can reflect real computational resources. However, it is much more practical to divide concerns. You permit whatever universes and basic functions are convenient and, if necessary, you keep track of various resources.

Finally, let me recall the definition of closed terms of a given signature (the first clause is superfluous but it seems to make comprehension easier):

We will use the usual abbreviations and conventions in order to increase readability. Here are some terms in the arithmetical signature mentioned above: 0, 1+1, (1+1)*(1+1).


[Next] [up] [Previous]
Next: 3. Transition rules Up: EVOLVING ALGEBRAS:AN ATTEMPT TO Previous: 1. Another computation


huggins@acm.org
Fri Dec 9 14:18:02 EST 1994