This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Products in a Category with Only One Object

Rick Statman Carnegie Mellon University rs31@webmail.math.cmu.edu
Abstract

We consider certain decision problems for the free model of the theory of Cartesian monoids. We introduce a model of computation based on the notion of a single stack one-way PDA due to Ginsburg, Greibach and Harrison. This model allows us to solve problems such as:

  1. (1)

    Given a finite set B of elements and an element F, is F a product of members of B?

  2. (2)

    Is the submonoid generated by the finite set B infinite?

for certain fragments of the free Cartesian monoid. These fragments include the submonoid of right invertible elements and so our results apply to the Thompson-Higman groups.

1 INTRODUCTION AND PRELIMINARIES

The notion of a Cartesian monoid has been rediscovered many times. A list of those just known to me would include Jonsson-Tarski Algebras [7], Vagabond Groups [13], Cantor algebras [10], FP [2], Cartesian Monoids [8], Freyd-Heller Monoids [4], TOPS [12], Thompson-Higman Monoids [3], and CP Monoids [6]. The title of this paper has been pirated from Gray & Pardue; the reason for this will become apparent presently.

The notion of Cartesian Monoid axiomatizes the idea of a monoid of functions on a set SS supporting a surjective pairing function S×SSS\times S\to S lifted pointwise to (SS)×(SS)(SS)(S\to S)\times(S\to S)\to(S\to S). So a Cartesian Monoid C=(M,,I,L,R,)C=(M,*,I,L,R,\langle-\rangle) is a monoid (M,,I)(M,*,I) together with elements L,R:ML,R:M and a map :M×MM\langle-\rangle:M\times M\to M satisfying:

LF,G\displaystyle L*\langle F,G\rangle =F\displaystyle=F (left projection)
RF,G\displaystyle R*\langle F,G\rangle =G\displaystyle=G (right projection)
F,GH\displaystyle\langle F,G\rangle*H =FH,GH\displaystyle=\langle F*H,G*H\rangle (pointwise lifting)
L,R\displaystyle\langle L,R\rangle =I\displaystyle=I (surjectivity)

More generally, one could consider pairing functions which might not be surjective. In this case, the fourth condition would be omitted. The authors of the most recent rediscovery call such structures Categorical Quasiproduct Monoids (CQP) [5, Section 2.4]. We are happy to credit them with directing our attention to them.

Here it will be useful to review some properties of the free Cartesian Monoid CM. The four conditions have the equivalent rewrite system

  1. (1)

    LX,YXL*\langle X,Y\rangle\mathrel{\leavevmode\hbox to8.43pt{\vbox to4.16pt{\pgfpicture\makeatletter\hbox{\hskip 1.19998pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{{ {\pgfsys@beginscope\pgfsys@setlinewidth{0.32pt}\pgfsys@setdash{}{0.0pt}\pgfsys@roundcap\pgfsys@roundjoin{} {}{}{} {}{}{} \pgfsys@moveto{-1.19998pt}{1.59998pt}\pgfsys@curveto{-1.09998pt}{0.99998pt}{0.0pt}{0.09999pt}{0.29999pt}{0.0pt}\pgfsys@curveto{0.0pt}{-0.09999pt}{-1.09998pt}{-0.99998pt}{-1.19998pt}{-1.59998pt}\pgfsys@stroke\pgfsys@endscope}} }{}{}{{}}{{ {\pgfsys@beginscope{{}}\pgfsys@setlinewidth{0.32pt}\pgfsys@setdash{}{0.0pt}\pgfsys@roundcap\pgfsys@roundjoin{} {}{}{} {}{}{} \pgfsys@moveto{1.19998pt}{1.59998pt}\pgfsys@curveto{1.09998pt}{0.99998pt}{0.0pt}{0.09999pt}{-0.29999pt}{0.0pt}\pgfsys@curveto{0.0pt}{-0.09999pt}{1.09998pt}{-0.99998pt}{1.19998pt}{-1.59998pt}\pgfsys@stroke\pgfsys@endscope}} }{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}X

  2. (2)

    RX,YYR*\langle X,Y\rangle\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}Y

  3. (3)

    X,YZXZ,YZ\langle X,Y\rangle*Z\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}\langle X*Z,Y*Z\rangle

  4. (4)

    IXXI*X\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}X

  5. (5)

    XIXX*I\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}X

  6. (6)

    LX,RXX\langle L*X,R*X\rangle\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}X

  7. (7)

    L,RI\langle L,R\rangle\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}I

modulo the associativity axioms. This rewrite system is equivalent to the conditions in the sense that the smallest associative congruence containing the rules as identities is the congruence generated by the conditions (axioms). We denote the monotone, reflexive, transitive closure of \mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}} by \mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}. Here monotone means replacing subexpressions by their rewrites.

Theorem 1 (See [12]).
  1. (1)

    Every pair of equivalent expressions have a common rewrite.

  2. (2)

    Every sequence of rewrites eventually terminates in a unique normal form.

  3. (3)

    All of the last three rewrites can be done at the end.

Corollary.

The word problem for CM is solvable.

The normal forms of Cartesian monoid expressions have a pleasing shape. They can be described as binary trees built up from \langle-\rangle with strings of LL’s and RR’s at the leaves. These strings are built up by * with II as the empty string. We call these strings the shifts of the normal form. Normal forms that use only the rewrites (1)–(5) have a similar shape.

Now in [12] we proved the following.

Theorem 2.

If FF and GG have distinct normal forms then there exist HH and KK s.t. HFK=LH*F*K=L and HGK=RH*G*K=R in CM.

This is the “simplicity” rediscovered in Birget [3].

2 CQ IS ALMOST SIMPLE

Let CQ be the free Categorical Quasiproduct Monoid. Clearly there exists a homomorphism from CQ onto the free Cartesian Monoid. First, we add to Theorem 2 for the case of CQ.

Lemma 1.

If F_0=F_1F_{\_}{0}=F_{\_}{1} in CM but the (1)–(5) normal forms of F_0F_{\_}{0} and F_1F_{\_}{1} are distinct, say U_0,U_1U_{\_}{0},U_{\_}{1} resp., then there exist H, K such that for i=0i=0 or i=1i=1 we have:

HU_iK\displaystyle H*U_{\_}{i}*K _5,6,7I\displaystyle\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}_{\_}{5,6,7}I
HU_1iK\displaystyle H*U_{\_}{1-i}*K _5,6,7L,R\displaystyle\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}_{\_}{5,6,7}\langle L,R\rangle
Proof.

By induction on the sum of the lengths of U_0U_{\_}{0} and U_1U_{\_}{1}.

Basis. since the U_iU_{\_}{i} are both in (1)–(5) normal form, they cannot both be shifts. Thus the shortest case has the form U_i=IU_{\_}{i}=I and U_1i=U,VU_{\_}{1-i}=\langle U,V\rangle. Now U,V_5,6,7I\langle U,V\rangle\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}_{\_}{5,6,7}I. Thus U_5,6,7LU\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}_{\_}{5,6,7}L and V_5,6,7RV\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}_{\_}{5,6,7}R, and we are done, or U_5,6,7LXU\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}_{\_}{5,6,7}LX and V_5,6,7RXV\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}_{\_}{5,6,7}RX where XX must be a shift since U_1iU_{\_}{1-i} is normal w.r.t. (1)–(5). But then X=IX=I and we are done again.

Induction Step. In case that one of the U_iU_{\_}{i} is a shift is as in the basis case. Thus we can assume both U_iU_{\_}{i} begin with \langle-\rangle. Let U_0=V_0,V_1U_{\_}{0}=\langle V_{\_}{0},V_{\_}{1}\rangle and U_1=W_0,W_1U_{\_}{1}=\langle W_{\_}{0},W_{\_}{1}\rangle. Then there exists a jj s.t. V_jW_jV_{\_}{j}\not=W_{\_}{j}. In case j=0j=0 we have LU_0(1)V_0L*U_{\_}{0}\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}(1)\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}V_{\_}{0} and LU_1(1)W_0L*U_{\_}{1}\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}(1)\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}W_{\_}{0} and the induction hypothesis can be applied to V_0V_{\_}{0} and W_0W_{\_}{0}. The case j=1j=1 is similar. ∎

Proposition 1.

The homomorphism from CQ onto the free Cartesian Monoid is unique and the only non-trivial homomorphism of CQ.

Proof.

If FF and GG are not equivalent in CM then there exist HH and KK as in Theorem 2. By Theorem 1 there exists a common rewrite which can be obtained by rewriting with all of the (5)–(7) rewrites at the end. Thus there exist U, V s.t.:

HFH_1,2,3,4U_5,6,7L\displaystyle H*F*H\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}_{\_}{1,2,3,4}U\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}_{\_}{5,6,7}L
HGH_1,2,3,4V_5,6,7R\displaystyle H*G*H\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}_{\_}{1,2,3,4}V\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}_{\_}{5,6,7}R

Now if XIX*I occur in either UU or VV it can be eliminated by XIXX*I\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}X, since XX cannot contain \langle-\rangle. Now, neither UU nor VV can contain X,I\langle X,I\rangle, I,X\langle I,X\rangle or L,R\langle L,R\rangle since this would prevent rewriting to LL or RR. This holds for any rewrite of UU or VV by (6). Thus only the rewrite (6) is used. Hence there exist X,YX,Y such that U=XLU=X*L and V=YRV=Y*R (reverse rewrite (3) multiple times). But then I=LI,I=UI,I=XI=L*\langle I,I\rangle=U*\langle I,I\rangle=X and I=RI,I=VI,I=YI=R*\langle I,I\rangle=V*\langle I,I\rangle=Y. So if FF and GG are identified by a homomorphism of CQ then so are XX and YY. But then by Lemma 1 the homomorphism identifies II and L,R\langle L,R\rangle. Thus the homomorphism is a homomorphism of CM. This is impossible by [12, Section 3]. ∎

3 G.G.H. PDA’S

Now we would like to introduce a model for computing with CQ expressions which will allow us to prove many questions about CQ multiplication decidable. We cannot expect too much since it is obvious that the existential theory of CQ is undecidable [12, Section 9]. For what follows we shall refer to (1)–(5) normal form as CQ normal form.

If FF is in CQ normal form, then the shift SS which when read from left to right describes the position of the leaf of the tree of FF where the shift SS^{\prime} resides, then the CQ normal form of SFS*F is SS^{\prime}, but for no initial segment S′′S^{\prime\prime} of SS is the normal form of S′′FS^{\prime\prime}*F a shift. Our model is the G.G.H. notion [5] of a one-way single stack pushdown automata. These are non-deterministic PDAs which can scan the current stack by a two way NDFA before reading the top most stack symbol, executing a stack operation, changing state and reading the next input. The input alphabet consists of CQ expressions FF in normal form taken from a given finite set, and input from left to right.

When the initial contents of the stack are the string SS, with top-to-bottom corresponding to right-to-left, and the input is F_1,F_tF_{\_}{1},F_{\_}{t}, then we want the contents of the stack to be the normal form of F_1F_tF_{\_}{1}*\cdots*F_{\_}{t}. However, this may not be a shift. In this case we terminate the computation in failure. The PDA operates as follows:

  1. (1)

    It reads the input FF.

  2. (2)

    It reads the stack to determine if it has the form SSS^{\prime}*S where the normal form of SFS*F is a shift S′′S^{\prime\prime}. If not the computation fails.

  3. (3)

    If (2) succeeds it pops SS from the stack and pushes S′′S^{\prime\prime} onto the stack.

Here we note that in (2) there are only finitely many SS to check so this can be implemented in a deterministic G.G.H. Now G.G.H. proved that the sets accepted by G.G.H. PDAs are closed under intersection and union but not complement. The deterministic one are closed under complement but not intersection.

Theorem 3.

Let BB be a finite set of CQ expressions. Then it is decidable if FF is a product of members of BB.

Proof.

We assume that all expression is in CQ normal form. First, let S_1,,S_nS_{\_}{1},\ldots,S_{\_}{n} be the complete list of shifts s.t. S_iFS_{\_}{i}*F equals a shift S_iS_{\_}{i}, but no initial segment of S_iS_{\_}{i} (right to left) does.

We construct deterministic G.G.H. machines M_i,N_iM_{\_}{i},N_{\_}{i}, for i=1,,ni=1,\ldots,n, so that M_iM_{\_}{i} accepts all inputs F_1,,F_kF_{\_}{1},\ldots,F_{\_}{k} s.t. S_iF_1F_k=S_iS_{\_}{i}*F_{\_}{1}*\ldots*F_{\_}{k}=S_{\_}{i}. For each i=1,,ni=1,\ldots,n let S_′′iS^{\prime\prime}_{\_}{i} be S_iS_{\_}{i} with its last LL or RR (from right to left) deleted. Then N_iN_{\_}{i} is constructed to accept all inputs F_1,,F_kF_{\_}{1},\ldots,F_{\_}{k} s.t. the CQ normal form of S_′′iF_1F_kS^{\prime\prime}_{\_}{i}*F_{\_}{1}*...*F_{\_}{k} is not a shift. Here we use closure of deterministic machines under complements. Now by the work of G.G.H. [5] there exists a non-deterministic G.G.H. machine MM which accepts the intersection of the sets of inputs accepted by the all machines M_iM_{\_}{i} and N_iN_{\_}{i} for i=1,,ni=1,\ldots,n. Now the decision theorems of G.G.H. do not apply to non-deterministic G.G.H. PDAs. However, the method of La Torre [14] does apply. The machine M can be represented in Rabin’s theory WS2S [9] and tested for emptiness. ∎

Many CQ decision problems can be solved with this method. For example, it is decidable whether the set of CQ distinct products of members of BB is infinite. This will be seen in the next section.

4 MORE APPLICATIONS OF G.G.H. PDA’S

There is a well-known duality between rooted binary trees with nn leaves and triangulations of an nn-gon. In the CQ case the leaves come equipped with shifts. These shifts control the results of further composition. The nice geometrical questions about tiling the plane with nn-gons are analogous to questions about covering Cantor Space by normal CQ expressions.

Definition 1.

Let BB be a finite set of CQ normal forms. We say that BB covers Cantor space if there exists an infinite sequence F_1,,F_n,F_{\_}1,\ldots,F_{\_}{n},\ldots of members of BB s.t. for each shift SS there exists an nn s.t. the normal form of SF_1F_nS*F_{\_}{1}*\ldots*F_{\_}{n} is not a shift.

As an example, the set {I,I}\{\langle I,I\rangle\} covers Cantor space but {R,L}\{\langle R,L\rangle\} does not.

Definition 2.

A shift SS is said to be bad for B if for any sequence F_1,,F_nF_{\_}{1},\ldots,F_{\_}{n} of members of BB the CQ normal form of SF_1F_nS*F_{\_}{1}*...*F_{\_}{n} is a shift.

For example, RRR*R is bad for {L,RR}\{\langle L,R*R\rangle\}. First we observe that the set of bad B shifts is recursive uniformly in B. This can be seen by constructing a deterministic G.G.H. one-way stack machine which, if started with SS in its stack, accepts all inputs if and only if SS is bad. The construction of the machine is uniform in SS, so that the set of SS which are bad is definable in Rabin’s theory WS2S by LaTorre’s method. To recall, the input alphabet is the set BB and the machine runs as follows. With input symbol FF the machine reads the top of the current stack looking for a minimal SS s.t. the normal form of SFS*F is a shift. This can be done by a DFSA. Having found such an SS, the machine pops SS and pushes the normal form of SFS*F. Otherwise, the machine rejects the entire input.

Before considering coverings, we settle an algebraic question.

Theorem 4.

It is decidable whether the submonoid generated by BB is infinite.

Proof.

Of course, if BB contains a shift then the submonoid generated by BB is infinite, so we can assume this is not the case. First, we say that an SS bad for BB is extenuative if for each nn there exists F_1,,F_kF_{\_}{1},\ldots,F_{\_}{k} in BB s.t. the CQ normal form of SF_1F_kS*F_{\_}{1}*...*F_{\_}{k} has length at least nn. Now it is decidable whether SS is extenuative. First decide whether SS is bad for BB. Now consider the set of natural numbers encoded as strings of LLs and the input language B+{L}B+\{L\}.

Design a deterministic G.G.H. PDA with SS initially in its stack and which accepts an input WW if and only if WW has the form F_1F_kLLF_{\_}{1}\ldots F_{\_}{k}L\ldots L (with nn occurrences of LL), and where after reading F_1F_kF_{\_}{1}\ldots F_{\_}{k} the stack has length at least nn.

Now the set of words LLL...L s.t. F_1,,F_kLLF_{\_}{1},\ldots,F_{\_}{k}L...L is accepted by the machine is the result of applying a sequential transducer to the set of words F_1,,F_kLLF_{\_}{1},\ldots,F_{\_}{k}L\ldots L accepted. Thus by [5, Theorem 2.4] we can construct a non-deterministic G.G.H PDA which accepts exactly this set of words LLL...L. Thus by La Torre’s method we can decide if this set is all strings of LLs.

Next pick an initial member FF of BB and one of its shifts SS. We construct a G.G.H. nondeterministic PDA as follows. The input alphabet consists of BB plus a new letter @@ (we could have used LL as above). On inputs of the form F_1F_k@_mF_{\_}{1}...F_{\_}{k}@_{\_}{m} the machine proceeds as above except when the current stack is @_pS@_{\_}pS^{\prime} and the input is F_iF_{\_}{i} s.t. the CQ normal form of SF_iS^{\prime}*F_{\_}{i} is not a shift. In this case, the machine guesses a minimal length shift S′′S^{\prime\prime} s.t. the normal form S′′SF_iS^{\prime\prime}*S^{\prime}*F_{\_}{i} is a shift, say S+S+, and updates the stack to @_p+1S+@_{\_}{p+1}S+. The machine accepts if in the final stack the number of @@ is not less than mm.

By G.G.H. Theorem 2.4 the set of @_m@_{\_}{m} s.t. there is a F_1,,F_k@_mF_{\_}{1},\ldots,F_{\_}{k}@_{\_}m accepted by the machine is accepted by a non-deterministic G.G.H PDA. Now it is decidable if this set is all @_m@_{\_}{m}. We distinguish two cases.

Case 1. The set is all @_m@_{\_}{m}. Then there are arbitrarily large CQ normal form generated by BB and submonoid generated by BB is infinite.

Case 2. The set of all @_m@_{\_}{m} is finite for all FF in BB and SS. Then every infinite sequence F_1,,F_n,F_{\_}{1},\ldots,F_{\_}{n},\ldots of members of BB must have an initial segments F_1,,F_kF_{\_}{1},\ldots,F_{\_}{k} s.t. all the shifts of the CQ normal form of F_1F_kF_{\_}{1}*\ldots*F_{\_}{k} are bad. So by Konig’s lemma there exists a finite tree of such finite sequences s.t. every path has an initial segment in this tree. Now search until such a finite tree TT is found. Now suppose that the CQ normal form of F_1F_kF_{\_}{1}*...*F_{\_}{k} has a bad shift S which is extenuative. Now F_1,,F_kF_{\_}{1},\ldots,F_{\_}{k} has an initial segment in TT say F_1,,F_pF_{\_}{1},\ldots,F_{\_}{p}. So F_1F_pF_{\_}{1}*\ldots*F_{\_}{p} has a bad shift with the same property. Now the submonoid generated by B will be finite if and only if no such extenuative shift exists. Thus it suffices to test all the shifts of products in the tree for extenuativeness. ∎

Theorem 5.

It is decidable whether BB covers Cantor space.

Proof.

Given BB it is impossible to cover Cantor space if there is a bad shift i.e. a shift s.t. for all F_1F_n:BF_{\_}{1}\ldots F_{\_}{n}:B the normal form of SF_1F_nS*F_{\_}{1}*\ldots*F_{\_}{n} is a shift. This is decidable by previous argument. Now if no bad shift exists then for every shift SS there exits F_1F_n:BF_{\_}{1}...F_{\_}{n}:B s.t. the normal form of SF_1F_nS*F_{\_}{1}*\ldots*F_{\_}{n} is not a shift. Thus BB can cover Cantor space by repeatedly applying the F_1F_nF_{\_}{1}*...*F_{\_}{n} as shifts SS appear in the normal form of previous applications. ∎

We conclude with an amusing observation.

5 GIGSAW PUZZLES

A gigsaw puzzle is a patern matching problem where each variable occurs at most once and solutions come from a fixed set of CQ expressions all of which must be used. Here we show the problem is NP complete.

We encode the satisfiability problem. We assume that we are given a conjunctive normal form (conjunction of disjunctions; we regard xxyx\vee x\vee y as distinct from xyx\vee y). We suppose that the variables are x_1,,x_nx_{\_}{1},\ldots,x_{\_}{n}. For each variable x_ix_{\_}{i} we construct two gadgets G_iG_{\_}{i} and H_iH_{\_}{i} by

G_i\displaystyle G_{\_}{i} =I,I,I,I,L,I,I,I,I,I\displaystyle=\langle\underbrace{\langle I,I\rangle,\langle\langle I,I\rangle,\langle...}\langle L,\langle\langle\underbrace{I,I\rangle,\langle...\langle\langle I,I\rangle},I\rangle...\rangle\rangle\rangle...\rangle\rangle\rangle
i1i-1 occurrencesni+1n-i+1 occurrences
H_i\displaystyle H_{\_}{i} =I,I,I,I,R,I,I,I,I,I\displaystyle=\langle\underbrace{\langle I,I\rangle,\langle\langle I,I\rangle,\langle...}\langle R,\langle\langle\underbrace{I,I\rangle,\langle...\langle\langle I,I\rangle},I\rangle...\rangle\rangle\rangle...\rangle\rangle\rangle
i1i-1 occurrencesni+1n-i+1 occurrences

Now suppose that we have a conjunct C of the form

x_a(1)x_a(k)¬x_b(1)¬x_b(m)x_{\_}{a(1)}\bigvee\ldots\bigvee x_{\_}{a(k)}\bigvee\neg x_{\_}{b(1)}\bigvee...\bigvee\neg x_{\_}{b(m)}

We replace each of the k+mk+m variable occurrences by a new variable y_iy_{\_}{i} and we construct a product C#C\# of terms

LRa(i)y_iI,I,I\displaystyle L*R^{a(i)}*y_{\_}{i}*\langle I,\langle I,I\rangle\rangle if i<k+1i<k+1
LRb(ki)y_iI,I,I\displaystyle L*R^{b(k-i)}*y_{\_}{i}*\langle\langle I,I\rangle,I\rangle if k<ik<i

and the identity C#=IC\#=I. Now assume that x_ix_{\_}{i} occurs mm times. We introduce mm new variables z_1,,z_mz_{\_}{1},\ldots,z_{\_}{m} and define the term BB in mm stages as follows

B_1\displaystyle B_{\_}{1} =Lz_1\displaystyle=L*z_{\_}{1}
B_j+1\displaystyle B_{\_}{j+1} =B_jz_jL,I,I,I,I,R\displaystyle=B_{\_}{j}*z_{\_}{j}*\langle\langle L,\langle I,I\rangle\rangle,\langle\langle I,I\rangle,R\rangle\rangle
B\displaystyle B =B_m\displaystyle=B_{\_}{m}

and we add the identity BI,I=IB*\langle I,I\rangle=I. This is a total number of identities equal to the number of conjuncts plus the number of variables. Then the identities are solvable using the gadgets if and only if the original conjunction is satisfiable.

6 WHAT NEXT?

It is interesting to see if these methods can be extended to the free Cartesian monoid. The questions one wants to ask about the corresponding non-deterministic G.G.H. machines do not seem to be answerable in any straightforward manner. However, we can make some direct applications. Let RI be the submonoid of right invertible elements of CM. Here, we let BB be a finite subset of RI and FF an element of RI, all in (1)–(7) normal form.

Lemma 2.

If FF is in the submonoid generated by BB then there exists F_1,,F_nF_{\_}{1},\ldots,F_{\_}{n} in B s.t.

F_1F_n_1,2,3,4,5FF_{\_}{1}*\cdots*F_{\_}{n}\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}_{\_}{1,2,3,4,5}F

except for F=IF=I.

Proof.

First recall the characterization of the elements in RI given in [12]. FF is in RI if and only if no shift of FF is a final segment (left to right) of another shift of FF. Now suppose that F_1F_n_1,2,3,4,5,6,7FF_{\_}{1}*...*F_{\_}{n}\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}_{\_}{1,2,3,4,5,6,7}F. By Theorem 1 (3) there exists GG s.t. F_1F_n_1,2,3,4,5G_5,6,7FF_{\_}{1}*...*F_{\_}{n}\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}_{\_}{1,2,3,4,5}G\mathrel{\leavevmode\hbox to8.36pt{\vbox to2.85pt{\pgfpicture\makeatletter\hbox{\hskip 1.13791pt\lower-2.56064pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{ {}{{}}{} {}{{}}{}{}{}{}{{}}{} {}{{}}{}{{}{}} {}{}{}{}{}{}{}{{}}{}{}{}{{}}\pgfsys@moveto{0.79082pt}{0.0pt}\pgfsys@lineto{6.53944pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ }{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{-1.0}{0.0}{0.0}{-1.0}{0.79082pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{4.71947pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{6.53944pt}{0.0pt}\pgfsys@invoke{ }\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}{{}}}} } \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}}_{\_}{5,6,7}F. Note that in the rewrite from GG to FF all the applications of (6) are to cancel a shift. Now let JJ be the kernel of the unique homomorphism of CQ on CM. JJ is precisely the set of all HH in CQ s.t. H=IH=I in CM. Now consider the shape of GG. The binary tree of GG begins with the tree of FF but where a shift SS of FF would occur is the CQ normal form of a member of JSJ*S. Note that such an SS is not II since FF is in RI, but there is the trivial case when the member of JJ is II.

Now each member HH of JJ has the following structure. Each leaf of the binary tree of HH can be described by a sequence of LLs and RRs read from right to left. The corresponding shift SS has the property that the normal form of SHS*H is precisely SS, and no final segment (left to right) S′′S^{\prime\prime} of SS^{\prime} has the property that S′′HS^{\prime\prime}*H equals a shift in CQ. Now let HH be the member of JJ for SS a shift of FF. We have for each shift SS^{\prime} of HH s.t. if SS is in position S′′S^{\prime\prime}, then SS′′G=SSS^{\prime}*S^{\prime\prime}*G=S^{\prime}*S in CQ. Now, for each i=1,,ni=1,...,n, S′′SF_1F_iS^{\prime\prime}*S^{\prime}*F_{\_}{1}*...*F_{\_}{i} equals a shift in CQ. However, since all the F_jF_{\_}{j} are in RI there is a unique shortest SSS^{\prime}*S with this property s.t. SS′′G=SSS^{\prime}*S^{\prime\prime}*G=S^{\prime}*S in CQ. But if HH is not trivial then there are at least two such. Thus HH is trivial. Hence G=FG=F. ∎

Corollary.

Theorems 3, 4 and 5 apply to RI, and thus to the Thompson-Higman groups.

References

  • [1]
  • [2] J. Backus (1978): Can programming be liberated from the von Neumann style? Communications of the ACM 21(21), 10.1007/978-3-662-09507-210.
  • [3] J.-C. Birget (2009): Monoid generalization of the Richard Thompson groups. Journal of Pure and Applied Algebra 13, pp. 264–278, 10.1016/j.jpaa.2008.06.012.
  • [4] P. Freyd & A. Heller (1993): Splitting homotopy idempotents II. Journal of Pure and Applied Algebra 89, pp. 93–195, 10.1016/0022-4049(93)90088-b.
  • [5] S. Ginsburg, S. Greibach & M. Harrison (1967): One-way stack automata. Journal of the ACM 14, pp. 389–418, 10.1145/321386.321403.
  • [6] A. Gray & K. Pardue (2016): Products in a category with one object. arXiv:1604.03999.
  • [7] B. Jonsson & A. Tarski (1961): On two properties of free algebras. Mathematica Scandinavica 9, pp. 95–101, 10.7146/math.scand.a-10627.
  • [8] J. Lambek (1980): H. B. Curry, Essays in Combinatory Logic. Academic Press.
  • [9] M. Rabin (1969): Decidability of second order theories and automata on finite trees. Transactions of the American Mathematical Society 141, pp. 1–35, 10.2307/2272788.
  • [10] D. Smirnov (1971): Cantor algebras with one generator. Algebra and Logic 10, pp. 40–49, 10.1007/bf02217801.
  • [11] R. Statman (1992): Simply typed lambda calculus with surjective pairing. CMU Department of Mathematics Research Report, pp. 92–164.
  • [12] R. Statman (1996): On Cartesian monoids. Springer Lecture Notes in Computer Science 1258, pp. 446–459, 10.1007/3-540-63172-055.
  • [13] R. Thompson (1980): Word Problems, chapter Embeddings into finitely generated simple groups which preserve the word problem, pp. 401–444. North Holland, 10.1016/S0049-237X(08)71348-X.
  • [14] S. La Torre, P. Manhusadan & G. Parlato (2007): A robust class of context sensitive languages. Proceedings of 22nd IEEE Symposium on Logic in Computer Science, 10.1109/lics.2007.9.