.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/schedule_demo.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_schedule_demo.py: Schedule demo ============= .. GENERATED FROM PYTHON SOURCE LINES 5-34 .. raw:: html
%3 outer_cluster_left-3377577844511369682-value cluster_left-3377577844511369682-value outer_cluster_right-16783941965674463102-value cluster_right-16783941965674463102-value outer_cluster_left-11743562013128004906-value cluster_left-11743562013128004906-value outer_cluster_right-15952540911656918845-value cluster_right-15952540911656918845-value outer_cluster_left-5871781006564002453-value cluster_left-5871781006564002453-value outer_cluster_left-4208978898528913939-value cluster_left-4208978898528913939-value outer_cluster_right-0-value cluster_right-0-value outer_cluster_right-5871781006564002453-value cluster_right-5871781006564002453-value outer_cluster_left-10912160959110460649-value cluster_left-10912160959110460649-value outer_cluster_left-17615343019692007359-value cluster_left-17615343019692007359-value outer_cluster_right-4208978898528913939-value cluster_right-4208978898528913939-value outer_cluster_right-17615343019692007359-value cluster_right-17615343019692007359-value outer_cluster_right-5040379952546458196-value cluster_right-5040379952546458196-value outer_cluster_left-5040379952546458196-value cluster_left-5040379952546458196-value outer_cluster_left-16783941965674463102-value cluster_left-16783941965674463102-value outer_cluster_right-10080759905092916392-value cluster_right-10080759905092916392-value outer_cluster_left-10080759905092916392-value cluster_left-10080759905092916392-value outer_cluster_left-0-value cluster_left-0-value outer_cluster_right-10912160959110460649-value cluster_right-10912160959110460649-value outer_cluster_left-15952540911656918845-value cluster_left-15952540911656918845-value outer_cluster_right-11743562013128004906-value cluster_right-11743562013128004906-value outer_cluster_i64-15952540911656918845 cluster_i64-15952540911656918845 outer_cluster_i64-4208978898528913939 cluster_i64-4208978898528913939 outer_cluster_i64-5040379952546458196 cluster_i64-5040379952546458196 outer_cluster_i64-3377577844511369682 cluster_i64-3377577844511369682 outer_cluster_i64-11743562013128004906 cluster_i64-11743562013128004906 outer_cluster_i64-10080759905092916392 cluster_i64-10080759905092916392 outer_cluster_i64-0 cluster_i64-0 outer_cluster_i64-5871781006564002453 cluster_i64-5871781006564002453 outer_cluster_i64-17615343019692007359 cluster_i64-17615343019692007359 outer_cluster_i64-16783941965674463102 cluster_i64-16783941965674463102 outer_cluster_i64-10912160959110460649 cluster_i64-10912160959110460649 left-3377577844511369682:s->i64-3377577844511369682 right-16783941965674463102:s->i64-16783941965674463102 left-11743562013128004906:s->i64-11743562013128004906 right-15952540911656918845:s->i64-15952540911656918845 left-5871781006564002453:s->i64-5871781006564002453 left-4208978898528913939:s->i64-4208978898528913939 right-0:s->i64-0 right-5871781006564002453:s->i64-5871781006564002453 left-10912160959110460649:s->i64-10912160959110460649 left-17615343019692007359:s->i64-17615343019692007359 right-4208978898528913939:s->i64-4208978898528913939 right-17615343019692007359:s->i64-17615343019692007359 right-5040379952546458196:s->i64-5040379952546458196 left-5040379952546458196:s->i64-5040379952546458196 left-16783941965674463102:s->i64-16783941965674463102 right-10080759905092916392:s->i64-10080759905092916392 left-10080759905092916392:s->i64-10080759905092916392 left-0:s->i64-0 right-10912160959110460649:s->i64-10912160959110460649 left-15952540911656918845:s->i64-15952540911656918845 right-11743562013128004906:s->i64-11743562013128004906 left-3377577844511369682 left i64-3377577844511369682 10 left-3377577844511369682-value () right-16783941965674463102 right i64-16783941965674463102 6 right-16783941965674463102-value () left-11743562013128004906 left i64-11743562013128004906 2 left-11743562013128004906-value () right-15952540911656918845 right i64-15952540911656918845 9 right-15952540911656918845-value () left-5871781006564002453 left i64-5871781006564002453 1 left-5871781006564002453-value () left-4208978898528913939 left i64-4208978898528913939 7 left-4208978898528913939-value () right-0 right i64-0 0 right-0-value () right-5871781006564002453 right right-5871781006564002453-value () left-10912160959110460649 left i64-10912160959110460649 5 left-10912160959110460649-value () left-17615343019692007359 left i64-17615343019692007359 3 left-17615343019692007359-value () right-4208978898528913939 right right-4208978898528913939-value () right-17615343019692007359 right right-17615343019692007359-value () right-5040379952546458196 right i64-5040379952546458196 4 right-5040379952546458196-value () left-5040379952546458196 left left-5040379952546458196-value () left-16783941965674463102 left left-16783941965674463102-value () right-10080759905092916392 right i64-10080759905092916392 8 right-10080759905092916392-value () left-10080759905092916392 left left-10080759905092916392-value () left-0 left left-0-value () right-10912160959110460649 right right-10912160959110460649-value () left-15952540911656918845 left left-15952540911656918845-value () right-11743562013128004906 right right-11743562013128004906-value ()


.. code-block:: Python from __future__ import annotations from egglog import * egraph = EGraph() left = egraph.relation("left", i64) right = egraph.relation("right", i64) egraph.register(left(i64(0)), right(i64(0))) x, y = vars_("x y", i64) step_left = egraph.ruleset("step-left") egraph.register(rule(left(x), right(x), ruleset=step_left).then(left(x + 1))) step_right = egraph.ruleset("step-right") egraph.register(rule(left(x), right(y), eq(x).to(y + 1), ruleset=step_right).then(right(x))) egraph.run( seq( run(step_right).saturate(), run(step_left).saturate(), ) * 10 ) egraph.check(left(i64(10)), right(i64(9))) egraph.check_fail(left(i64(11)), right(i64(10))) egraph .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.051 seconds) .. _sphx_glr_download_auto_examples_schedule_demo.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: schedule_demo.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: schedule_demo.py ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_