# Re: numerics, roles, and naming

```On Sun, 14 Mar 2010, Jon Lang wrote:
> Ruud H.G. van Tol wrote:
> > Did you consider "discrete"?
>
> I think that "Discrete" could work quite well as the role that
> encapsulates the ways in which Integer and Gauss are alike.  It may
> even be genralizable beyond that, although there might be some discord
> between theory and practice.```
```
Discrete sounds good to me.

Carl Friedrich Gauß was a very significant figure in the development of
number theory and many other areas of mathematics; to use his name to label
one of his a relatively minor developments doesn't really do him justice.
Not that I have a better label in mind though.

> (In theory, Boolean is every bit as discrete as Integer is; but in
> practice, it has no use for most if not all of the methods in Integer that
> pertain to discreteness (factors, remainders, primes, etc.)

George Boole also worked in several areas of mathematics. One of those was
what he termed "algebra of logic", hence "Boolean algebra" as mathematicians
know it now.

But what we (programmers) call "Boolean", although in line with his original
concept, is a pale shadow of where Boolean Algebra has developed since. In
particular there are things call power sets, and a field using set
intersection and union over those has the same algebraic properties as the
original "algebra of logic", but not with just two "true" and "false"
values.

So mathematically a "Boolean" value doesn't necessarily behave the same way
as a bit, rather it behaves like a structured collection of bits. Treating
an integer value as a vector of bits is certainly one such structure.

Things like primes over Z(2) are not very interesting, but a field or ring
over Z(2)^n does have interesting behaviour that depends on n.

So I'm in favour of a "Boolean" role including things such as a vector of
bits.

I suggest "Predicate" as the name of the role which implements a single
true-or-false value (as distinct from a bit, which implements a 0-or-1
value).

-Martin
```