13 lines
357 B
Python
13 lines
357 B
Python
|
from .core import exhaust, multiplex
|
||
|
from .traverse import top_down
|
||
|
|
||
|
|
||
|
def canon(*rules):
|
||
|
""" Strategy for canonicalization
|
||
|
|
||
|
Apply each branching rule in a top-down fashion through the tree.
|
||
|
Multiplex through all branching rule traversals
|
||
|
Keep doing this until there is no change.
|
||
|
"""
|
||
|
return exhaust(multiplex(*map(top_down, rules)))
|