1.8 KiB
A (finite non-deterministic) automaton is a quintuple M = (Q,Act,q0,F,T), where:
- Q is the set of states
- Act is the set of actions
- q0 is the starting state
- F is the set of final states
- T is the transition relation (T ⊆ Q × Act × Q)
Automata Behaviour: language equivalence (where L(M) is the set of all the sequences of input characters that bring the automaton M from its starting state to a final one)
[!note] Language equivalence M1 and M2 are language equivalent if and only if L(M1)=L(M2)
By considering the starting states as also final, they both generate the same language, i.e.:
(20.(tea + 20.coffee))∗ = (20.tea + 20.20.coffee)∗
But, do they behave the same from the point of view of an external observer??
The essence of the difference is WHEN the decision to branch is taken
- language equivalence gets rid of branching points
- it is too coarse for our purposes!
LTSs
In concurrency theory, we don’t use finite automata but Labeled Transition System (LTS). The main differences between the two formalisms are:
- automata usually rely on a finite number of states, whereas states of an LTS can be infinite
- automata fix one starting state, whereas in an LTS every state can be considered as initial (this corresponds to different possible behaviors of the process)
- automata rely on final states for describing the language accepted, whereas in LTS this notion is not very informative
[!note] LTS formal definition Fix a set of action names (or, simply, actions), written N.
A Labeled Transition System (LTS) is a pair (Q, T), where Q is the set of states and T is the transition relation (T ⊆ Q × N × Q).
We shall usually write s –a–> s′ instead of ⟨s,a,s′⟩ ∈ T.