maxitg / SetReplace

C++/Wolfram Language package for exploring set and graph rewriting systems
MIT License
219 stars 44 forks source link

MultisetSubstitutionSystem #624

Closed maxitg closed 3 years ago

maxitg commented 3 years ago

Changes

Comments

Examples

In[] := multihistory = GenerateMultihistory[
  MultisetSubstitutionSystem[{a_, b_} :> {a + b}],
  <|"MaxDestroyerEvents" -> 2, "MaxEventInputs" -> 2|>,
  None,
  {"InputCount", "SortedInputExpressions", "UnsortedInputExpressions", "RuleIndex"},
  <||>] @ {3, 8, 8, 8, 2, 10, 0, 9, 7}
image
In[] := wolframModelEvolution = SetReplaceTypeConvert[{WolframModelEvolutionObject, 2}] @ multihistory
image
In[] := wolframModelEvolution["ExpressionsEventsGraph", VertexLabels -> Automatic]
image

This change is Reviewable

maxitg commented 3 years ago

I did not quite finish the tests yet. I have half of the separation matching file remaining. Also, there is no documentation yet. I will make another PR with documentation for both GenerateMultihistory and MultisetSubstitutionSystem. Otherwise, this PR is going to exceed 1000 lines.

maxitg commented 3 years ago

@taliesinb, could you give me an estimate of when will you need this PR for the sequence system so that I know what my deadline is to finish this?

maxitg commented 3 years ago

@taliesinb, tests are done. The only thing remaining is figuring out the naming for spacelike/timelike/branchlike. I think the names I came up with, compatible/past/future/inconsistent are too confusing.

maxitg commented 3 years ago

Well, tests are almost done. Just need to fix a few things.

maxitg commented 3 years ago

I have finished everything here except for documentation (which will be in a separate PR together with GenerateMultihistory). Also, I went back to using spacelike/timelike/branchlike for now until/unless we come up with a better name. Since these are not public, they will be easy to change at any point.