In[]:=
StringReplaceList[{"ABABAB"},{"AB""","ABA""ABBAB","ABABBB""AAAAABA"},5]
Out[]=
{{ABAB,ABBABBAB,ABAB,ABABBABB,ABAB}}
In[]:=
MWStep[rule_List,slist_List]:=Union[Flatten[Map[Function[s,Map[MWStep1[#,s]&,rule]],slist]]]
In[]:=
MWStep1[p_Stringq_String,s_String]:=Map[StringReplacePart[s,q,#]&,StringPosition[s,p]]
In[]:=
MWEvolveList[rule_,init_List,t_Integer]:=NestList[MWStep[rule,#]&,init,t]
In[]:=
MWEvolveList[{"AAB""BB","BA""ABB"},{"ABBAAB"},5]
Out[]=
{{ABBAAB},{ABABBAB,ABBBB},{AABBBBAB,ABABABBB},{AABBBABBB,ABAABBBBB,BBBBBAB},{AABBABBBBB,ABBBBBBB,BBBBABBB},{AABABBBBBBB,BBBABBBBB}}
Need to track events (i.e which string led to which string), and also track dependency of updates.
In[]:=
RandomChoice/@MWEvolveList[{"AAB""BB","BA""ABB"},{"ABBAAB"},5]
Out[]=
{ABBAAB,ABABBAB,ABABABBB,AABBBABBB,ABBBBBBB,BBBABBBBB}
At each step, we should know the rule applied, and to which elements.

Multiway network: network of successive states

A particular “states list” evolution is a path through this network

Multiway causal network: hypergraph of all possible causal connections

Possibly: one type of edge connects states that are reached by an update
Every microscopic update is a hyper-hyperedge, that connects the set of nodes involved in the input to the set of nodes involved in the output.
Given state, an update is associated with a hyperedge that contains all the nodes involved in the update.
Assuming each edge in the multiway system corresponds to an individual update event .... that edge should really join the hyperedges that were involved in the update in each state
For strings, the nodes in the multiway network are string states. The edges are labelled by pairs that show where the update was.
Then we need to join the edges that have causal dependence. This will generate a causal multiway network. To get a particular causal network, we prune for only those states reached on a particular path corresponding to a certain sequence of states.

The Jonathan Theory of Measurement

One is adding critical pair equivalences which define equivalences between microstates, where some of the microstates are not accessible by the physical universe. But by positing the existence of these microstates we get a simpler theory.