Skip to content

[alpha] Wolfram Summer School 2019

Pre-release
Pre-release
Compare
Choose a tag to compare
@maxitg maxitg released this 09 Jul 15:37

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 (like SubstitutionSystem), and yields a SetSubstitutionEvolution 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], where k = 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 evaluating SetSubstitutionEvolution[...]["ConfluentQ"] will either yield False if the evolution is not confluent, or Missing[...] 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.