Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!samsung!munnari.oz.au!goanna!ok From: ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) Newsgroups: comp.lang.prolog Subject: Re: origin of "arity" Message-ID: <6402@goanna.cs.rmit.oz.au> Date: 20 Jun 91 11:06:32 GMT References: <3405@shodha.enet.dec.com> Organization: Comp Sci, RMIT, Melbourne, Australia Lines: 44 In article <3405@shodha.enet.dec.com>, wahl@shodha.enet.dec.com (David Wahl) writes: > The word "arity" came up during lunch today in our group and our > resident mathematician asked whether the word was invented by > logic programming people or whether it was borrowed from another > field. We looked it up in both a standard college English dictionary > and in a scientific and technical English dictionary and couldn't > find the word "arity" in either of them. > Does anyone know where the origin of the word "arity"? I _wonder_ what field your resident mathematician works in, and I suggest that you look around for another dictionary. Neither ``arity'' nor ``functor'' was invented by logic programmers. You can find ``functor'' in Robinson's book. On p16 of Gallier's "Logic for Computer Science" we find A ranked alphabet is a set \Sigma together with a rank function r: \Sigma -> N. Every symbol f \in \Sigma has a rank (or arity) r(f) indicating the fixed number of arguments of f. ^^^^^ Symbols of arity 0 are also called constants. On p96 of Boyer & Moore's "A Computational Logic Handbook", we find Associated with every function symbol is a nonnegative integer called the arity of the symbol. The arity indicates how many arguments must follow each application of the function symbol. Buchberge & Loos, in a paper on Algebraic Simplification, write A signature (or arity-function) is a family of non-negative integers (i.e. a function a: Def(a) -> N_0.) The index set of a (i.e. Def(a)) may be called the set of function symbols of a, in short F(a). Furthermore, F(a,n) := {f\in F(a)|a(f)=n} (a set of n-ary function symbols). The word comes from mathematical logic and ``higher algebra''. It comes from talking about un-ary, bin-ary, tern-ary, ... n-ary functions. The point is that (Edinburgh) Prolog borrowed its *entire* set of data structures from mathematical logic, in which a _term_ is a _variable_ or a _function symbol_ together with 0 or more _arguments_ each of which is a term, function symbols of arity 0 being identified with constants. Prolog borrowed much of its vocabulary from the same source. -- I agree with Jim Giles about many of the deficiencies of present UNIX.