<?xml version="1.0" encoding="UTF-8"?>

<record version="31" id="430">
 <title>category of automata</title>
 <name>CategoryOfAutomata</name>
 <created>2009-01-25 18:15:35</created>
 <modified>2009-03-04 12:23:25</modified>
 <type>Topic</type>
 <creator id="441" name="bci1"/>
 <modifier id="441" name="bci1"/>
 <author id="441" name="bci1"/>
 <classification>
	<category scheme="msc" code="00."/>
	<category scheme="msc" code="02."/>
	<category scheme="msc" code="03."/>
 </classification>
 <defines>
	<concept>automaton</concept>
	<concept>sequential machine</concept>
	<concept>categorical automaton</concept>
	<concept>automata homomorphism</concept>
	<concept>automaton configuration</concept>
	<concept>sequential machine</concept>
	<concept>fuzzy automaton</concept>
	<concept>computer simulations</concept>
	<concept>Universal Turing (UT) machines</concept>
	<concept>UT</concept>
	<concept>abstract automata theory (AAT)</concept>
	<concept>AAT</concept>
	<concept>abstract computer programming theory (ACPT)</concept>
	<concept>automaton square diagram</concept>
	<concept>automata homomorphism as  natural transformation</concept>
 </defines>
 <synonyms>
	<synonym concept="category of automata" alias="Universal Turing (UT) machines"/>
	<synonym concept="category of automata" alias="UTs"/>
 </synonyms>
 <related>
	<object name="Supercomputer"/>
	<object name="Automaton2"/>
	<object name="CategoriesOfQuantumAutomataAndQuantumComputers"/>
 </related>
 <keywords>
	<term>categories of automata and their transformations</term>
	<term>algebraic theories</term>
	<term>structure and semantics</term>
	<term>universal Turing machines</term>
	<term>variable automata</term>
	<term>fuzzy automata</term>
	<term>semigroups</term>
	<term>semigroup homomorphisms</term>
	<term>automata homomorphisms</term>
	<term>Cartesian closed category</term>
 </keywords>
 <preamble>% this is the default PlanetMath preamble. as your knowledge
% almost certainly you want these
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsfonts}

% define commands here
\usepackage{amsmath, amssymb, amsfonts, amsthm, amscd, enumerate}
\usepackage{xypic, xspace}
\usepackage[mathscr]{eucal}
\usepackage[dvips]{graphicx}
\usepackage[curve]{xy}
\theoremstyle{plain}
\newtheorem{lemma}{Lemma}[section]
\newtheorem{proposition}{Proposition}[section]
\newtheorem{theorem}{Theorem}[section]
\newtheorem{corollary}{Corollary}[section]
\theoremstyle{definition}
\newtheorem{definition}{Definition}[section]
\newtheorem{example}{Example}[section]
\newtheorem{remark}{Remark}[section]
\newtheorem*{notation}{Notation}
\newtheorem*{claim}{Claim}
\renewcommand{\thefootnote}{\ensuremath{\fnsymbol{footnote}}}
\numberwithin{equation}{section}
\newcommand{\Ad}{{\rm Ad}}
\newcommand{\Aut}{{\rm Aut}}
\newcommand{\Cl}{{\rm Cl}}
\newcommand{\Co}{{\rm Co}}
\newcommand{\DES}{{\rm DES}}
\newcommand{\Diff}{{\rm Diff}}
\newcommand{\Dom}{{\rm Dom}}
\newcommand{\Hol}{{\rm Hol}}
\newcommand{\Mon}{{\rm Mon}}
\newcommand{\Hom}{{\rm Hom}}
\newcommand{\Ker}{{\rm Ker}}
\newcommand{\Ind}{{\rm Ind}}
\newcommand{\IM}{{\rm Im}}
\newcommand{\Is}{{\rm Is}}
\newcommand{\ID}{{\rm id}}
\newcommand{\grpL}{{\rm GL}}
\newcommand{\Iso}{{\rm Iso}}
\newcommand{\rO}{{\rm O}}
\newcommand{\Sem}{{\rm Sem}}
\newcommand{\SL}{{\rm Sl}}
\newcommand{\St}{{\rm St}}
\newcommand{\Sym}{{\rm Sym}}
\newcommand{\Symb}{{\rm Symb}}
\newcommand{\SU}{{\rm SU}}
\newcommand{\Tor}{{\rm Tor}}
\newcommand{\U}{{\rm U}}
\newcommand{\A}{\mathcal A}
\newcommand{\Ce}{\mathcal C}
\newcommand{\E}{\mathcal E}
\newcommand{\F}{\mathcal F}
%\newcommand{\grp}{\mathcal G}
\renewcommand{\H}{\mathcal H}
\renewcommand{\cL}{\mathcal L}
\newcommand{\Q}{\mathcal Q}
\newcommand{\R}{\mathcal R}
\newcommand{\cS}{\mathcal S}
\newcommand{\cU}{\mathcal U}
\newcommand{\W}{\mathcal W}
\newcommand{\bA}{\mathbb{A}}
\newcommand{\bB}{\mathbb{B}}
\newcommand{\bC}{\mathbb{C}}
\newcommand{\bD}{\mathbb{D}}
\newcommand{\bE}{\mathbb{E}}
\newcommand{\bF}{\mathbb{F}}
\newcommand{\bG}{\mathbb{G}}
\newcommand{\bK}{\mathbb{K}}
\newcommand{\bM}{\mathbb{M}}
\newcommand{\bN}{\mathbb{N}}
\newcommand{\bO}{\mathbb{O}}
\newcommand{\bP}{\mathbb{P}}
\newcommand{\bR}{\mathbb{R}}
\newcommand{\bV}{\mathbb{V}}
\newcommand{\bZ}{\mathbb{Z}}
\newcommand{\bfE}{\mathbf{E}}
\newcommand{\bfX}{\mathbf{X}}
\newcommand{\bfY}{\mathbf{Y}}
\newcommand{\bfZ}{\mathbf{Z}}
\renewcommand{\O}{\Omega}
\renewcommand{\o}{\omega}
\newcommand{\vp}{\varphi}
\newcommand{\vep}{\varepsilon}
\newcommand{\diag}{{\rm diag}}
\newcommand{\grp}{\mathcal G}
\newcommand{\dgrp}{{\mathsf{D}}}
\newcommand{\desp}{{\mathsf{D}^{\rm{es}}}}
\newcommand{\hgr}{{\mathsf{H}}}
\newcommand{\mgr}{{\mathsf{M}}}
\newcommand{\ob}{{\rm Ob}}
\newcommand{\obg}{{\rm Ob(\mathsf{G)}}}
\newcommand{\obgp}{{\rm Ob(\mathsf{G}')}}
\newcommand{\obh}{{\rm Ob(\mathsf{H})}}
\newcommand{\Osmooth}{{\Omega^{\infty}(X,*)}}
\newcommand{\grphomotop}{{\rho_2^{\square}}}
\newcommand{\grpcalp}{{\mathsf{G}(\mathcal P)}}
\newcommand{\rf}{{R_{\mathcal F}}}
\newcommand{\grplob}{{\rm glob}}
\newcommand{\loc}{{\rm loc}}
\newcommand{\TOP}{{\rm TOP}}
\newcommand{\wti}{\widetilde}
\newcommand{\what}{\widehat}
\renewcommand{\a}{\alpha}
\newcommand{\be}{\beta}
\newcommand{\de}{\delta}
\newcommand{\del}{\partial}
\newcommand{\ka}{\kappa}
\newcommand{\si}{\sigma}
\newcommand{\ta}{\tau}
\newcommand{\lra}{{\longrightarrow}}
\newcommand{\ra}{{\rightarrow}}
\newcommand{\rat}{{\rightarrowtail}}
\newcommand{\ovset}[1]{\overset {#1}{\ra}}
\newcommand{\ovsetl}[1]{\overset {#1}{\lra}}</preamble>
 <content>\begin{definition}
A {\em classical automaton} $\A$, (or simply {\em automaton}, or 
{\em sequential machine}, is defined as a quintuple of sets, $I,O$ and $S$, and set-theoretical mappings,

$$(I, O, S, \delta: I \times S \rightarrow S; \lambda: S \times S \rightarrow O),$$

with $\delta$ being called the {\em transition function} and $\lambda$ being called the {\em output function}.
\end{definition}

\begin{definition}  A {\em categorical automaton} $\A_C$ or {\em discrete and finite/countable, categorical dynamic system} is defined by a commutative square diagram containing all of the above components and assuming that $S_A$ is either a countable or finite set of discrete states:

$$\xymatrix{
{I \times S }\ar[r]^{\delta}\ar[d]_{t}&amp;{S}\ar[d]^{o}\\
{S \times S}\ar[r]_{\lambda}&amp;{O}
}
$$

\end{definition}

With the above definition one can now define morphisms between automata and their composition. If the automata are defined by square diagrams such as
the one shown above, and diagrams are defined by their associated functors, then automata homomorphisms are in fact defined as natural transformations
between diagram functors. One also has a consistent, simpler definition
as follows. 

\begin{definition} A \emph{homomorphism of automata} is a morphism of automata quintuples that preserves commutativity of the set-theoretical mapping compositions of both the transition function $\delta$ and the output function $\lambda$.
\end{definition}

With the above two definitions now we have sufficient data to define the category of automata and automaton homomorphisms.

\begin{definition}
The \emph{category of automata} is a category of automata quintuples
$(I_X, O_X, X, {\delta}_X: I_X \times X \rightarrow X; {\lambda}_X: X \times X \rightarrow O)$ and automata homomorphisms $h:{\A}_i \rightarrow {\A}_j$,
such that these homomorphisms commute with both the transition and the output functions of any automata ${\A}_i$ and ${\A}_j$.
\end{definition}

\textbf{Remarks:}
\begin{enumerate}
\item Automata homomorphisms can be considered also as automata {\em transformations} or as semigroup homomorphisms, when the state space, $X$, of the automaton is defined as a \emph{semigroup} $\mathcal{S}$.
\item Abstract automata have numerous realizations in the real world as : machines, robots, devices, computers, supercomputers, always considered as \emph{discrete} state space sequential machines.
\item Fuzzy or analog devices are not included as standard automata.
\item Similarly, \emph{variable (transition function)} automata are not included, but Universal Turing (UT) machines are.
\end{enumerate}

\begin{definition} An alternative definition of an automaton is also in use:
as a five-tuple $(S, \Sigma, \delta, I, F)$, where $\Sigma$ is a non-empty set of symbols
$\alpha$ such that one can define a {\em configuration} of the automaton as a couple
$(s,\alpha)$ of a state $s \in S $ and a symbol $\alpha \in \Sigma $. Then $\delta$
defines a ``next-state relation, or a transition relation'' which associates to each configuration
$(s, \alpha)$ a subset $\delta (s,\alpha)$ of S- the state space of the automaton.
With this formal automaton definition, the \emph{category of abstract automata} can be defined by specifying automata homomorphisms in terms of the morphisms between five-tuples representing such abstract automata.
\end{definition}


\begin{example} 
 A special case of automaton is when all its transitions are {\em reversible}; then its state space is a groupoid. The {\em category of reversible automata} is then a 2-category, and also a subcategory of the 2-category of groupoids, or the groupoid category.  
\end{example}</content>
</record>
