  We propose an automaton model which is a combination of symbolic and register
automata, i.e., we enrich symbolic automata with memory. We call such automata
Symbolic Register Automata (SRA). SRA extend the expressive power of symbolic
automata, by allowing Boolean formulas to be applied not only to the last
element read from the input string, but to multiple elements, stored in their
registers. SRA also extend register automata, by allowing arbitrary Boolean
formulas, besides equality predicates. We study the closure properties of SRA
under union, intersection, concatenation, Kleene closure, complement and
determinization and show that SRA, contrary to symbolic automata, are not in
general closed under complement and they are not determinizable. However, they
are closed under these operations when a window operator, quintessential in
Complex Event Recognition, is used. We show how SRA can be used in Complex
Event Recognition in order to detect patterns upon streams of events, using our
framework that provides declarative and compositional semantics, and that
allows for a systematic treatment of such automata. We also show how the
behavior of SRA, as they consume streams of events, can be given a
probabilistic description with the help of prediction suffix trees. This allows
us to go one step beyond Complex Event Recognition to Complex Event
Forecasting, where, besides detecting complex patterns, we can also efficiently
forecast their occurrence.
