Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Graphical scheduling of rewrite rules #15

Merged
merged 43 commits into from
Jun 21, 2023
Merged

Graphical scheduling of rewrite rules #15

merged 43 commits into from
Jun 21, 2023

Conversation

kris-brown
Copy link
Collaborator

@kris-brown kris-brown commented Dec 13, 2022

This PR implements a traced monoidal category which formalizes schedules of rewrite rules as wiring diagrams. The semantics is that, at any point in time, the world state lives on a wire in the diagram. Boxes have a general form, but for scheduling we consider a handful of primitive boxes, such as the application of a rewrite rule, a control flow function (e.g. flip a coin to go down one path vs another), a query box (for each match in the query, run a schedule focused on the result).

Not only does this let us construct large schedules compositionally and implement the scheduler in a modular manner, but we also visualize where we are in the schedule in lockstep with the trajectory of world states that results from a simulation, which adds helpful context.

This PR also adapts to the incorporations of variables into ACSet attributes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant