Quando lavori con macchine a stati finiti, c'è o può esserci un concetto ben definito di "prima" e "dopo".
L'ordinamento, ad esempio, mi dirà che uno stato viene sempre considerato come "prima" di un altro stato, nel senso che qualsiasi sequenza di transizioni attraverso una macchina a stati da uno stato di avvio a uno stato finale deve sempre incontrare uno stato particolare prima di un altro stato.
Penso che si tratterebbe di ordini parziali sugli stati della macchina. A volte due stati non sarebbero né prima né dopo l'altro.
Il problema particolare che sto cercando di risolvere è la convalida dei campi sugli articoli passati attraverso un flusso di lavoro, definito come macchina a stati. Se alcuni campi devono essere presenti in uno stato particolare, devono essere presenti anche in stati considerati "dopo" quello stato.
È possibile nei flussi di lavoro che gli oggetti possano essere spostati indietro in stati precedenti. Ad esempio, un articolo può passare attraverso un flusso di lavoro ed essere "pubblicato", ma in seguito non pubblicato per essere rielaborato, e quindi ripassato attraverso un flusso di lavoro per essere nuovamente pubblicato. Ci sono dei bordi nella macchina a stati che si muovono in avanti verso gli stati finali, ma anche i bordi che si muovono all'indietro verso gli stati iniziali. Detto questo, posso ancora definire delle relazioni "prima" e "dopo" sensibili tra stati?
Quello che sto cercando di fare è, nella teoria delle macchine a stati, c'è una definizione standard di cosa "prima" e "dopo" significano che posso usare per implementare queste funzioni?