vault backup: 2025-04-08 09:37:21

This commit is contained in:
Marco Realacci 2025-04-08 09:37:21 +02:00
parent 05c144a5d1
commit 7f58845b20
2 changed files with 9 additions and 6 deletions

View file

@ -0,0 +1,39 @@
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)
![](../../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??
![](../../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 dont 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