```CS E6831  04f   S. H. Unger   9/21/04

NOTES ON MACHINE STRUCTURE AND STATE ASSIGNMENTS.

1. INTRODUCTION
An objective here is to learn how to generate state assignments such
that the output and next-state functions are independent of some of
the input- and/or state-variables.  This is likely to result in
simpler logic.  Another objective is to develop methods for
decomposing sequential machines into interconnections of smaller
machines.

Partition
Given a set of n elements, a partition is a collection of subsets of
that set, such that every member of the set is in EXACTLY one of the
subsets (i.e., no two subsets overlap, and the union of all the
subsets is the complete set of elements).  The subsets of a partition
are called blocks.

Example 1.  given the set of integers from 1 thru 7, we could define a
partition, (14, 235, 67).

A partition corresponds to an equivalence class, since we can consider
that elements in the same block of a partition are equivalent.  In the
example, 1=4, 2=3=5, 6=7.

We will consider partitions of the states of a finite-state sequential machine.

Partitions can be related to partial state assignments, in that a
subset of state variables can be used to distinguish among the blocks
of the partition.
Example 2.  For the flow table below, consider the partition (124, 35, 6).

X

0     1     y1   y2

----------

1   3,0   6,1    0    0

2   5,0   4,1    0    0

3   2,1   5,0    0    1

4   1,0   3,1    0    0

5   1,1   3,0    0    1

6   2,1   5,0    1    1

---------
We can associate the pair of y-variables y1, y2 with this partition, by assigning states of y1y2 to partition blocks as shown below.

00: 124,

01:  35

11:  6

Look back now at the flow table to observe the y-columns, which
correspond to this (partial) assignment.  So, given the values of y1
and y2, we can determine which block of the partition the state is in.

2. OUTPUT CONSISTENT PARTITION
An output consistent partition is one such that, given the block of
the partition and the input state, the output state is determined.
For the flow table of Example 2 (above), note that the partition (124,
35, 6) meets this specification.  For example, if a state is in the
124 block, and the input is 0, then the output is 0.  If the input is
changed to 1, then the output will change to 1.

3. CLOSED PARTITIONS
A partition p is closed if the block containing the next state is a
function only of the block containing the present state and the input.

Example 3: For the flow table below, (12,34) is closed.  For example,
if the present state is in the 12-block and A=B=1, then the next state
is in the 12-block.  If the block containing the present state is 12
and either A or B =0, then the next-state is in the 34-block.

AB

00   01  11  10

----------------

1   3    4    1    4

2   4    4    2    3

3   2    1    1    4

4   1    2    2    4

----------------

4. INPUT CONSISTENT PARTITION
A partition p is input consistent if the block of p containing the
next state is independent of the input state.  A partition is
partially input consistent if the block containing the next state is
independent of a proper subset of the input variables.

Example 4;

For the table below, (12, 34) is input consistent.  Given the present
state, the block of (12, 34) containing the next state can be
determined without knowing the input.  If the present state is state-1,
the next state will be in block 34 (regardless of the value of
X), and if the present state is 3, the next state will be in 12.
Note that (12, 34) is also CLOSED, so we need only know the BLOCK of
the current state to determine the BLOCK of the next state.

X

0   1

------

1   3   4

2   4   3

3   1   1

4   2   1

-----
Example 5: For the table below, the partition (12, 34) is NOT closed,
but it IS input consistent.  Depending only on the present state, the
next state will be in either 12 or 34, regardless of the input.

X

0   1

------

1   3   4

2   1   2

3   3   4

4   1   1
-----

Example 6: For the table below, the closed partition (12, 34) is
partially input consistent, since the block containing the next state
is independent of B.  For example, if the present block is in 12, the
next state is in 34 if A=0 and in 12 if A=1, independent of B.

AB

00   01  11  10

----------------

1   3    4    1    2

2   4    4    2    2

3   2    1    1    1

4   1    2    2    2

----------------

5. Operations on partitions
A partition p is greater than or equal to a partition q, p>=q (>= is a
crude symbol for "greater than or equal to".), if every block of q is
included in a block of p.  For example, (1234, 56, 78)>=(13, 24, 5, 6,
78), but (1234, 56, 78) is NOT greater or equal to (124, 356, 78).

The largest partition w such that p>=w and q>=w is referred to as the
greatest lower bound (glb) of p and q, and is written as pxq (as in
ordinary multiplication we omit the x-sign where no confusion would
result and write the glb of p and q as simply pq).  It is not hard to
prove that elements e and f are in the same block of pq iff (if, and
only if) they are in the same block of p AND in the same block of q.
For example, (1234, 56, 78)(13, 245677, 8)=(13, 24, 56, 7, 8).

Given two partitions p and q, p+q is the smallest partition r such
that r>=p and r>=q.  That is, if there is any other partition w such
that w>=p and w>=q, the w>=r.  We also refer to r as the least upper
bound (lub) of p and q.  For example, if p=(12, 34, 56, 78) and

q=(13, 25, 4, 6, 7, 8),  then p+q=(123456, 78).

It can be shown that i and j are equated under p+q (i.e., i and j are
in the same block of p+q) iff there is a chain of equalities, each
being under p or q, of the form i=i1=i2=...=j

In the preceding example, 1 and 6 are equated by the partition
(123456, 78), even tho neither p nor q equates them.  The chain
involved is 1=2 (under p), 2=5 (q), and 5=6 (p).

REFERENCES

Hartmanis, J., & R. E. Stearns, "Algebraic Structure Theory of
Sequential Machines", Prentice Hall, 1966

Kohavi, Zvi, "Switching and Finite Automata Theory", McGraw-Hill, 2nd
Ed., 1978.
```