CHAPTER II

Preliminaries


Before starting on the main body of this thesis a brief review is given of common definitions and known results relevant to this work.


2.1 Star-Free Regular Events

Regular events and regular expressions are well known for their usefulness in describing the behaviour of sequential circuits [1, 2, 3]. Since this thesis is concerned with a subclass of regular events we require some concepts from the theory of regular events.

Consider sets of finite sequences of symbols from a finite alphabet A={a1, a2, ..., an}. These sets will be called events or languages. Each finite sequence of symbols is called a word. The empty set of words is called the empty event φ. The word consisting of no symbols is called the empty word λ. If P and Q are any two events, then the following operations are defined:

  1. union (+), a binary operation such that event P+Q={w|w∈P or w∈Q or both},
  2. concatenation (⋅), a binary operation such that event P⋅Q={w|w=uv, u∈P, v∈Q},
    (the dot is usually omitted for convenience,)
  3. complement ('), a unary operation such that event P'={w|w∉P},
  4. star (*), a unary operation such that event P*=Σn=0Pn, where Pn=PPP...P, n times when n>0, and P0={λ}.

It is easily shown that union is associative and commutative, that concatenation is associative, and that concatenation distributes over union. The following special relationships can also be shown:

λP=Pλ=P
φP=Pφ=φ
P+φ=φ+P=P

A regular expression over alphabet A={a1, a2, ..., an} is defined inductively. Let λ and φ be two distinct symbols not in A. Let (+) and (⋅) be binary operations and let (') and (*) be unary operations. The inductive definition of a regular expression is:

  1. a1, a2, ..., an, λ and φ are regular expressions,
  2. if P and Q are regular expressions then so are P+Q, PQ, P' and P*,
  3. nothing else is a regular expression.

Regular expressions denote events according to the mapping from regular expressions to events:

|ai|⇒{ai} for i=1, 2, ..., n;
|λ|⇒{λ};
|φ|⇒{φ};
|P+Q|⇒|P|+|Q|;
|PQ|⇒|P|⋅|Q|;
|P'|⇒|P|';
|P*|⇒|P|*.

An event P is regular if, and only if, there exists a regular expression R such that |R|⇒P.

Star-free events are those regular events which can be denoted by a regular expression without using the star operation. The class of star-free events will be denoted by the abbreviation SF. Obviously, the class of star-free events is contained in the class of regular events. It will be shown later by counter example that the containment is proper. Considering an alphabet A={0, 1}, the following are examples of regular expressions:

(λ+0)(λ+1) = λλ+λ1+0λ+01 = λ+0+1+01
(01)*
(0+1)*

The last example is a very useful one as 0+1 is the union of all the symbols in the alphabet and may be represented by A=0+1. Taking the star operation of the alphabet gives us all the possible words over the alphabet. For this reason this is also given a special symbol I=A*=(0+1)*. Now we have I, the set of all possible words over alphabet A and φ the empty set. We can see that although I was initially defined as a star expression I=A*, it can also be represented as a star-free expression I=φ'. Other examples of such identities are:

1*= (I0I)'
(10+1)*11I = ((1I)'+((I00I)'11I)')'

Consider the first example. 1* denotes the event consisting of the empty word λ and every word containing only ones. I0I denotes the event consisting of all words which start with any word, are followed by a zero and end with any word. Since I denotes all words, including λ, it can be seen that I0I denotes all words containing at least one zero. Since the alphabet A = {0, 1} contains only zero and one, it is obvious that the two expressions 1* and I0I are complementary, hence 1* = (I0I)'. Since the event denoted by 1* can be expressed without using a star it is a star-free event. For events denoted by more complex expressions with stars it is more difficult to determine whether there exists an equivalent star-free expression or not. A simple test for the star-free property will be given later.


2.2 Non-Counting Regular Events

Papert and McNaughton have defined a class of events called non-counting events [4]. These are basically events for which the membership of a word in the event may be tested without counting beyond some finite threshold. It is obvious that even counting modulo some integer is excluded from these events. The formal definition of a non-counting event is as follows:

A regular event R is non-counting if and only if for any v, w, x in A* there exists a finite k such that vwkx is in R if and only if vwk+1x is in R.

The class of non-counting events is denoted by NC. It can be shown [8] that every star-free event is a non-counting event, that is SF⊆NC.


2.3 Automata and Monoids

The definition of automata given below is based on Rabin and Scott [5].

A (finite state) automaton is a quintuple M={A,S,T,s1,F} where:

A is a finite set of inputs {a1, a2, ..., an}, the input alphabet,
S is a finite set of states {s1, s2, ..., sn},
T is a transition function T: SxA=S such that the successor or next state of a state si under input aj is T(s1,aj).
s1 is an element of the set S called the starting state.
F is a subset of the set S called the set of final states.

The transition mapping T can be extended recursively over A* so that for all a in A and x in A*,

T(si,λ)=si and T(si,xa)=T(T(si,x),a).

A reduced automaton is an automaton such that for every pair of states si, sj in S, i≠j, there is some x in A* such that one but not both of T(si,x and T(sj,x) is in F. An input sequence x in A* is accepted by automaton M if and only if T(s1,x) is in F. An automaton M realizes an event R if and only if the set of sequences accepted by M is exactly R. It has been shown that the class of events realized by (finite state) automata is exactly the class of regular events, and algorithms exist for finding automata that realize any regular event and for finding regular events that are realized by any automaton [6, Appendix B]. For example consider an automaton that realizes the regular event R=(01)*:

M={A={0,1},S={A,B,C},T,s1=A,F={A}}

Where T is defined as:

T(A,0)=B T(A,1)=C
T(B,0)=C T(B,1)=A
T(C,0)=C T(C,1)=C

T may be depicted in tabular form as in figure 2.3.1a or in graphic form as in figure 2.3.1b.

Figure 2.3.1a
State Table - Event (01)*
  0 1
A B C
B C A
C C C
Figure 2.3.1b
Flow Graph - Event (01)*
Flow Graph - Event (01)*

The successor of si under input aj is T(si,aj).

Note that the mapping T may be extended so that T(si,am) is the ordered successor set Sj of Si under am. In conjunction with the previous extension this defines T(Si,xa)=T(T(Si,x),a). When T(S,u)=T(S,v) for u, v in A* then u and v are said to be congruent modulo M, written as

u≡v mod M.

It is clear then that this congruence relation defines a partition on A* and since the set A* of words is closed under concatenation, the set of congruence classes is also closed under concatenation. The empty input string λ acts as the unit for concatenation of words in A* and hence its congruence class will act as the unit for multiplication of the congruence classes. It is clear then that the congruence classes form a monoid under concatenation. This monoid is called the syntactic monoid of the automaton M. By finding all the ordered successor sets up to congruence mod M of the automaton M we can find the congruence classes. Taking the automaton from figure 2.3.1a we obtain the extended transition table shown in figure 2.3.2a.

Figure 2.3.2a
Extended State Table - Event (01)*
   0  1  00 01  10  11 000001010011100101
A BCCACC CCBCCC
B CACCBC CCCCCA
C CCCCCC CCCCCC

By letting the first encountered member of a congruence class stand for its class we get a reduced table shown in figure 2.3.2b.

Figure 2.3.2b
Congruence Classes - Event (01)*
 λ  0  1 00 01 10
A B C C A C
B C A C C B
C C C C C C

We introduce a convention here to distinguish between the congruence classes and the words they contain. Let w represent the congruence class containing the word w. We can now construct the multiplication table for the syntactic monoid, for this example shown in figure 2.3.2c.

Figure 2.3.2c
Multiplication Table - Event (01)*
   λ  0  1 00 01 10
 λ λ 0 1 00 01 10
 0 0 00 01 00 00 0
 1 1 10 00 00 1 00
00 00 00 00 00 00 00
01 01 0 00 00 01 00
10 10 00 1 00 00 10

2.4 Group-Free Monoids, Automata and Events

Schutzenberger [7] has developed the study of subgroups of a monoid. A subgroup of a monoid is a submonoid of that monoid whose elements form a group under the monoid operation. A monoid is said to be group-free if and only if all its subgroups are trivial, that is, have only one element. An automaton is group-free if and only if its syntactic monoid is group-free. An event is called group-free if and only if it is realized by a group-free automaton. The class of group-free events will be denoted by GF. The following theorem due to Meyer [8] defines a test for the group-free property.

As an example consider the monoid of figure 2.3.2. By looking down the diagonal of the multiplication table in figure 2.4.1 we find that λ, 00, 01 and 10 satisfy wk=wk+1 for k=1.

Figure 2.4.1
Monoid Multiplication Table - Event (01)*
   λ  0  1 00 01 10
 λ λ 0 1 00 01 10
 0 0 00 01 00 00 0
 1 1 10 00 00 1 00
00 00 00 00 00 00 00
01 01 0 00 00 01 00
10 10 00 1 00 00 10

These are called idempotents. We need now only test 0 and 1. We find 02=03 and 12=13, hence the automaton of figure 2.3.2 is group-free and (01)* is in GF.

To take another example consider R=(11)*, realized by M={A={0,1},S={A,B,C},T,s1=A,F={A}. Figure 2.4.2 shows (a) the state table representing the transition function T, (b) the congruence classes and (c) the monoid multiplication table.

Figure 2.4.2a
State Table - Event (11)*
  0 1
A C B
B C A
C C C
Figure 2.4.2b
Congruence Classes - Event (11)*
 λ  0  1
A C B
B C A
C C C
Figure 2.4.2c
Monoid Multiplication Table - Event (11)*
   λ  0  1
λ λ 0 1
0 0 0 0
1 1 0 λ

It can readily be seen that there is a non-trivial group {1 , λ} around idempotent λ, because 11=1, 12=λ, 13=1, 14=λ, etc. Note that Papert and McNaughton [4] have shown in a theorem that we need not go beyond the order of the monoid for a suitable k, that is beyond k=3 in this case. Even without that we can see in this case that there is no k such that 1k=1k+1. Hence (11)* is not in GF.


Valid XHTML 1.0! Valid CSS!