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) ![](images/Pasted%20image%2020250408091924.png) 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?? ![](images/Pasted%20image%2020250408092853.png) 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. ### Bisimulation Intuitively, two states are equivalent if they can perform the same actions that lead them in states where this property still holds ![](images/Pasted%20image%2020250408093840.png) P0 and Q0 are different because, after an a, the former can decide to do b or c, whereas the latter must decide this before performing a. Let (Q,T) be an LTS. A binary relation S ⊆ Q×Q is a simulation if and only if ∀(p,q) ∈ S∀p –a–> p′∃q –a–> q′ s.t. (p′,q′) ∈ S We say that p is simulated by q if there exists a simulation S such that $$(p,q) ∈ S$$ We say that S is a bisimulation if both S and S−1 are simulations (where $$S^{-1} = \{(p,q) : (q,p) ∈ S\}$$) Two states q and p are bisimulation equivalent (or, simply, bisimilar) if there exists a bisimulation S such that (p, q) ∈ S; we shall then write p ∼ q. ![](images/Pasted%20image%2020250408094749.png) q0 is simulated by p0; this is shown by the following simulation relation: $$S = \{(q0,p0), (q1,p1), (q2,p1), (q3,p2), (q4,p3)\}$$ To let p0 be simulated by q0, we should have that p1 is simulated by q1 or q2. If S contained one among (p1,q1) or (p1,q2), then it would not be a simulation: indeed, p1 can perform both a c (whereas q1 cannot) and a b (whereas q2 cannot). **Remark:** for proving equivalence, it is NOT enough to find a simulation of p by q and a simulation of q by p ![](../../Pasted%20image%2020250414082824.png) p0 is simulated by q0: $$S = {(p0, q0), (p1, q2), (p2, q3)}$$ q0 is simulated by p0: $$S′ ={(q0,p0),(q1,p1),(q2,p1),(q3,p2)}$$ However, p0 and q0 are not bisimilar: the transition q0 -> a -> q1 is not bisimulable by any transition from p0