This is an old revision of the document!
Regular Expressions and Automata with Parallel Inputs
Given an alphabet
, we consider a larger (but still finite) alphabet
for some
. Keep in mind that
is just one symbol; we often write it as
\[\left(
\begin{array}{l}
a_1 \\
\ldots \\
a_n
\end{array}
\right)
\]
We can consider
- regular expression
- automata
on such alphabets.
Using Propositional Formulas to Denote Finite Sets of Symbols
Suppose
.
Let
.
.
Language representing that the third coordinate is the logical and of the first two is: \[
\left(
\left(
\begin{array}{l}
0 \\
0 \\
0 \\
\end{array}
\right)
+
\left(
\begin{array}{l}
0 \\
1 \\
0 \\
\end{array}
\right)
+
\left(
\begin{array}{l}
1 \\
0 \\
0 \\
\end{array}
\right)
+
\left(
\begin{array}{l}
1 \\
1 \\
1 \\
\end{array}
\right)
\right)^*
\]
Instead of considering
, we can consider
where
are three names of variables.
We then use propositional formulas to denote possible values of bits. For example,
denotes the regular expression
\[
\left(
\begin{array}{l}
1 \\
1 \\
0 \\
\end{array}
\right)
+
\left(
\begin{array}{l}
1 \\
1 \\
1 \\
\end{array}
\right)
\] The bitwise and relation, shown above, is given by \[
[z \leftrightarrow (x \land y)]^*
\]
In general
where
is a propositional formula and
for
are all tuples of values of propositional variables for which
is true.
Notational advantage: the set of variables can be larger, the expression is still the same.