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.