From crocker%la.tis.com Fri, 02 Jun 89
To: info-hol@clover.ucdavis.edu
Subject: Stumbling over empty bit vectors
Date: Fri, 02 Jun 89 09:39:57 PDT
From: crocker%la.tis.com
Status: RO

I had suggested that the following might be a theorem and might be
useful in building up a theory of bitstrings that hides its development.

        Let f be any function over bitstrings which meets the
        following conditions:

        a) f("0") = a0
        b) f("1") = a1
        c) f(APPEND(x,y)) = op(f(x),f(y)), where op is associative

        Then f exists and is uniquely (and fully) determined.

In discussing this theorem, Tom Melham noted that it "seems at first
sight to be true only if the empty bit-vector is not allowed.
Otherwise, I don't think that f would be unique.  I could, however, be
mistaken."


I think Tom is right.  One way to fix this problem is by adding f("")
= ae to give a value to f when it's applied to the empty string.
Another approach is to limit the theorem to monoids (semigroups with
identity).  This is more in keeping with the intuition I was trying to
capture, and all of the examples I showed meet this constraint.  I
don't know of any nice ("nice" = elegant and useful) examples where op
is the operator in a semigroup that is not a monoid.

It might be possible to have this both ways.  Is it possible to set
this up as one theorem that applies to all semigroups, and in
addition, if the semigroup is also a monoid, then the value of f when
applied to zero length bitstrings is automatically determined?













