Details and Options
Rules can be specified in the following ways:
{"lhs1"->"rhs1",…} | string substitution system |
{{l11,l12,…}->{r11,r12,..},…} | list substitution system |
SubstitutionSystem[rules] | string or list substitution system |
CellularAutomaton[rules] | cellular automaton system |
"type"→rules | system of the specified type |
assoc | system with properties defined by assoc |
Supported rule types include:
"StringSubstitutionSystem" | rules given as replacements on strings |
"ListSubstitutionSystem" | rules given as replacements on lists |
"CellularAutomaton" | rules given as a list of CellularAutomaton rule specifications |
"WolframModel" | rules given as replacements on hypergraphs |
When rules are specified by an explicit association, the following elements can be included:
"StateEvolutionFunction" | gives the list of successors to a given state |
"StateEquivalenceFunction" | determines whether two states should be considered equivalent |
"StateEventFunction" | gives the list of events applicable to a given state |
"EventApplicationFunction" | applies an event to a given state |
"EventDecompositionFunction" | decomposes an event into creator and destroyer events for individual elements |
"SystemType" | system type name |
"EventSelectionFunction" | determines which events should be applied to a given state |
The event selection function sel in ResourceFunction["CausalInvariantQ"][rules→sel,…] can have the following special forms:
"Sequential" | applies the first possible replacement (sequential substitution system) |
"Random" | applies a random replacement |
{"Random",n} | applies n randomly chosen replacements |
"MaxScan" | applies the maximal set of spatially-separated replacements (strings only) |
The initial condition for ResourceFunction["CausalInvariantQ"] is a list of states appropriate for the type of system used.
ResourceFunction["CausalInvariantQ"][rules,"string",…] is interpreted as ResourceFunction["CausalInvariantQ"][rules,{"string"},…].
ResourceFunction["CausalInvariantQ"] accepts both individual rules and lists of rules, and likewise for initial conditions.
Options for ResourceFunction["CausalInvariantQ"] include:
"IncludeStepNumber" | False | whether to label states and events with their respective step numbers |
"IncludeStateID" | False | whether to label states and events with unique IDs |
Causal invariance is a property of multiway systems in which all branches of evolution history yield causal networks that are isomorphic as acyclic graphs.
In the case of an abstract rewrite system it is a sufficient condition for confluence (or the Church-Rosser property), and in the case of a WolframModel it is equivalent to Lorentz covariance.