[alpha] Wolfram Summer School 2019
Pre-release
Pre-release
This release contains the unmodified changes implemented during the Wolfram Summer School 2019 (which is a hackaton-like event). Thus, it is significantly less stable than a normal release, and is incomplete, as argument checks, unit tests, usage messages, etc. are missing. Only guaranteed to work with the final project file of the summer school as a proof of concept.
New features
- New symbol
SetSubstitutionSymbol
is implemented, which performs an entire layer of replacements at a time (likeSubstitutionSystem
), and yields aSetSubstitutionEvolution
object as an output. SetSubstitutionEvolution
stores the data about the entire evolution of the system, its causal network, and some other metadata.- Sets of different generations can be accessed with
SetSubstitutionEvolution[...][k]
, wherek = 0
corresponds to initial condition,k = 1
to applying substitution once to every non-overlapping network in the initial condition, etc. - Causal network can be obtained as
SetSubstitutionEvolution[...]["CausalNetwork"]
. - If causal network is a tree graph that is a good sufficient condition for the system to be in complexity class 1 or 2 (nesting or simpler). Thus,
SetSubstitutionEvolution[...]["NestingQ"]
will check for that. - If
SetSubstitutionSystem
is supplied with option"CheckConfluence" -> False
, then evaluatingSetSubstitutionEvolution[...]["ConfluentQ"]
will either yieldFalse
if the evolution is not confluent, orMissing[...]
otherwise. Sufficient condition for confluence is not implemented. - New symbol
SetCases
which returns all subsets matching a particular pattern.
Breaking changes
SetReplace
now evaluates substitution events in a different order. Specifically, it applies replacements generation-by-generation instead of prioritizing earlier rules, so for instance,
In[] := SetReplace[{0, 1, 2}, {{0, 2} -> x, {1} -> y}]
Out[] = {0, 2, y}
- Only macOS version is available at the moment. Windows and Linux version can probably be built from the source code possibly with minor changes to C++ code.